com php-src: Deprecated PDO::PGSQL_ATTR_DISABLE_NATIV E_PREPARED_STATEMENT: ext/pdo_pgsql/pgsql_driver. c ext/pdo_pgsql/php_pdo_pgsql_int.h
ext/pdo_pgs ql/tests/bug48764.phpt ext/pdo_pgsql/tests/bug _33876.phpt
| From: | Matteo Beccati | Date: | Tue, 11 Mar 2014 22:10:48 +0000 |
| Subject: | com php-src: Deprecated PDO::PGSQL_ATTR_DISABLE_NATIV E_PREPARED_STATEMENT: ext/pdo_pgsql/pgsql_driver. c ext/pdo_pgsql/php_pdo_pgsql_int.h ext/pdo_pgs ql/tests/bug48764.phpt ext/pdo_pgsql/tests/bug _33876.phpt |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-76447@lists.php.net to get a copy of this message | ||
Commit: d72621ab9e8a6cc89fe1005a83c16249fdc02810
Author: Matteo Beccati <mbeccati@php.net> Sun, 9 Mar 2014 12:14:23 +0100
Parents: b1ffea3ccce0e1f1a63022f446c1549dfad92e9e
Branches: PHP-5.6
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=d72621ab9e8a6cc89fe1005a83c16249fdc02810
Log:
Deprecated PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT
Changed paths:
M ext/pdo_pgsql/pgsql_driver.c
M ext/pdo_pgsql/php_pdo_pgsql_int.h
M ext/pdo_pgsql/tests/bug48764.phpt
M ext/pdo_pgsql/tests/bug_33876.phpt
Diff:
diff --git a/ext/pdo_pgsql/pgsql_driver.c b/ext/pdo_pgsql/pgsql_driver.c
index b1fa4f8..0d72d55 100644
--- a/ext/pdo_pgsql/pgsql_driver.c
+++ b/ext/pdo_pgsql/pgsql_driver.c
@@ -239,8 +239,11 @@ static int pgsql_handle_preparer(pdo_dbh_t *dbh, const char *sql, long sql_len,
spprintf(&S->cursor_name, 0, "pdo_crsr_%08x", ++H->stmt_counter);
emulate = 1;
} else if (driver_options) {
- if (pdo_attr_lval(driver_options, PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT,
H->disable_native_prepares TSRMLS_CC) == 1 ||
- pdo_attr_lval(driver_options, PDO_ATTR_EMULATE_PREPARES, H->emulate_prepares TSRMLS_CC) == 1)
{
+ if (pdo_attr_lval(driver_options, PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT,
H->disable_native_prepares TSRMLS_CC) == 1) {
+ php_error_docref(NULL TSRMLS_CC, E_DEPRECATED,
"PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use
PDO::ATTR_EMULATE_PREPARES instead");
+ emulate = 1;
+ }
+ if (pdo_attr_lval(driver_options, PDO_ATTR_EMULATE_PREPARES, H->emulate_prepares TSRMLS_CC) ==
1) {
emulate = 1;
}
} else {
@@ -1106,6 +1109,7 @@ static int pdo_pgsql_set_attr(pdo_dbh_t *dbh, long attr, zval *val TSRMLS_DC)
H->emulate_prepares = Z_LVAL_P(val);
return 1;
case PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT:
+ php_error_docref(NULL TSRMLS_CC, E_DEPRECATED,
"PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use
PDO::ATTR_EMULATE_PREPARES instead");
H->disable_native_prepares = Z_LVAL_P(val);
return 1;
default:
diff --git a/ext/pdo_pgsql/php_pdo_pgsql_int.h b/ext/pdo_pgsql/php_pdo_pgsql_int.h
index 037344a..34d89d2 100644
--- a/ext/pdo_pgsql/php_pdo_pgsql_int.h
+++ b/ext/pdo_pgsql/php_pdo_pgsql_int.h
@@ -44,10 +44,9 @@ typedef struct {
pdo_pgsql_error_info einfo;
Oid pgoid;
/* The following two variables have the same purpose. Unfortunately we need
- to keep track of two different attributes having the same effect.
- It might be worth to deprecate the driver specific one soon. */
+ to keep track of two different attributes having the same effect. */
int emulate_prepares;
- int disable_native_prepares;
+ int disable_native_prepares; /* deprecated since 5.6 */
unsigned int stmt_counter;
} pdo_pgsql_db_handle;
diff --git a/ext/pdo_pgsql/tests/bug48764.phpt b/ext/pdo_pgsql/tests/bug48764.phpt
index 67e8f39..83fa565 100644
--- a/ext/pdo_pgsql/tests/bug48764.phpt
+++ b/ext/pdo_pgsql/tests/bug48764.phpt
@@ -104,7 +104,7 @@ function bug($db, $options = array()) {
}
}
---EXPECT--
+--EXPECTF--
Test 1
42P18
Test 2
@@ -112,23 +112,43 @@ Test 2
OK
Test 3
42P18
+
+Deprecated: PDO::prepare(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use
PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
OK
Test 4
OK
42P18
Test 5
+
+Deprecated: PDO::setAttribute(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated,
use PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
+
+Deprecated: PDO::prepare(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use
PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
OK
+
+Deprecated: PDO::setAttribute(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated,
use PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
42P18
Test 6
OK
42P18
OK
+
+Deprecated: PDO::__construct(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated,
use PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
Test 7
+
+Deprecated: PDO::prepare(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use
PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
OK
+
+Deprecated: PDO::prepare(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use
PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
OK
42P18
+
+Deprecated: PDO::__construct(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated,
use PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
Test 8
+
+Deprecated: PDO::prepare(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use
PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
OK
+
+Deprecated: PDO::prepare(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use
PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
OK
OK
42P18
diff --git a/ext/pdo_pgsql/tests/bug_33876.phpt b/ext/pdo_pgsql/tests/bug_33876.phpt
index 6a93905..15c4275 100644
--- a/ext/pdo_pgsql/tests/bug_33876.phpt
+++ b/ext/pdo_pgsql/tests/bug_33876.phpt
@@ -54,7 +54,7 @@ echo "EMUL\n";
$res = $db->prepare('SELECT foo from test where bar = ?', array(
- PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT => true));
+ PDO::ATTR_EMULATE_PREPARES => true));
# this is the portable approach to binding a bool
$res->bindValue(1, false, PDO::PARAM_BOOL);