Skip to content

Commit 4694e1c

Browse files
committed
Remove PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT
Use the generic ATTR_EMULATE_PREPARES instead.
1 parent 38ea6a8 commit 4694e1c

File tree

7 files changed

+11
-112
lines changed

7 files changed

+11
-112
lines changed

NEWS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,10 @@
164164
. Fixed bug #68424 (Add new PDO mysql connection attr to control multi
165165
statements option). (peter dot wolanin at acquia dot com)
166166

167+
- PDO_pgsql:
168+
. Removed PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT attribute in favor of
169+
ATTR_EMULATE_PREPARES). (Nikita)
170+
167171
- Reflection
168172
. Fixed inheritance chain of Reflector interface. (Tjerk)
169173

UPGRADING

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,10 @@ Other
487487
. Removed support for /e (PREG_REPLACE_EVAL) modifier. Use
488488
preg_reaplace_callback() instead.
489489

490+
- PDO_pgsql:
491+
. Removed PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT attribute in favor of
492+
ATTR_EMULATE_PREPARES.
493+
490494
- Standard:
491495
. Removed string category support in setlocale(). Use the LC_* constants
492496
instead.

ext/pdo_pgsql/pdo_pgsql.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ ZEND_GET_MODULE(pdo_pgsql)
8181
*/
8282
PHP_MINIT_FUNCTION(pdo_pgsql)
8383
{
84-
REGISTER_PDO_CLASS_CONST_LONG("PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT", PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT);
8584
REGISTER_PDO_CLASS_CONST_LONG("PGSQL_ATTR_DISABLE_PREPARES", PDO_PGSQL_ATTR_DISABLE_PREPARES);
8685
REGISTER_PDO_CLASS_CONST_LONG("PGSQL_TRANSACTION_IDLE", (zend_long)PGSQL_TRANSACTION_IDLE);
8786
REGISTER_PDO_CLASS_CONST_LONG("PGSQL_TRANSACTION_ACTIVE", (zend_long)PGSQL_TRANSACTION_ACTIVE);

ext/pdo_pgsql/pgsql_driver.c

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -243,10 +243,6 @@ static int pgsql_handle_preparer(pdo_dbh_t *dbh, const char *sql, size_t sql_len
243243
spprintf(&S->cursor_name, 0, "pdo_crsr_%08x", ++H->stmt_counter);
244244
emulate = 1;
245245
} else if (driver_options) {
246-
if (pdo_attr_lval(driver_options, PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT, H->disable_native_prepares) == 1) {
247-
php_error_docref(NULL, E_DEPRECATED, "PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use PDO::ATTR_EMULATE_PREPARES instead");
248-
emulate = 1;
249-
}
250246
if (pdo_attr_lval(driver_options, PDO_ATTR_EMULATE_PREPARES, H->emulate_prepares) == 1) {
251247
emulate = 1;
252248
}
@@ -390,11 +386,6 @@ static int pdo_pgsql_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_
390386
ZVAL_BOOL(return_value, H->emulate_prepares);
391387
break;
392388

393-
case PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT:
394-
php_error_docref(NULL, E_DEPRECATED, "PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use PDO::ATTR_EMULATE_PREPARES instead");
395-
ZVAL_BOOL(return_value, H->disable_native_prepares);
396-
break;
397-
398389
case PDO_PGSQL_ATTR_DISABLE_PREPARES:
399390
ZVAL_BOOL(return_value, H->disable_prepares);
400391
break;
@@ -1156,11 +1147,6 @@ static int pdo_pgsql_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
11561147
convert_to_long(val);
11571148
H->emulate_prepares = 0 != Z_LVAL_P(val);
11581149
return 1;
1159-
case PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT:
1160-
convert_to_long(val);
1161-
php_error_docref(NULL, E_DEPRECATED, "PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use PDO::ATTR_EMULATE_PREPARES instead");
1162-
H->disable_native_prepares = 0 != Z_LVAL_P(val);
1163-
return 1;
11641150
case PDO_PGSQL_ATTR_DISABLE_PREPARES:
11651151
convert_to_long(val);
11661152
H->disable_prepares = 0 != Z_LVAL_P(val);

ext/pdo_pgsql/php_pdo_pgsql_int.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,7 @@ extern struct pdo_stmt_methods pgsql_stmt_methods;
9090
#define pdo_pgsql_sqlstate(r) PQresultErrorField(r, PG_DIAG_SQLSTATE)
9191

9292
enum {
93-
PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT = PDO_ATTR_DRIVER_SPECIFIC,
94-
PDO_PGSQL_ATTR_DISABLE_PREPARES,
93+
PDO_PGSQL_ATTR_DISABLE_PREPARES = PDO_ATTR_DRIVER_SPECIFIC,
9594
};
9695

9796
struct pdo_pgsql_lob_self {

ext/pdo_pgsql/tests/bug48764.phpt

Lines changed: 2 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -31,64 +31,20 @@ bug($db, array(PDO::ATTR_EMULATE_PREPARES => 0));
3131
bug($db, array(PDO::ATTR_EMULATE_PREPARES => 1));
3232

3333
echo "Test 3\n";
34-
bug($db, array(PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT => 0));
35-
bug($db, array(PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT => 1));
36-
37-
echo "Test 4\n";
3834
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 1);
3935
bug($db);
4036
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 0);
4137
bug($db);
4238

43-
echo "Test 5\n";
44-
$db->setAttribute(PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT, 1);
45-
bug($db);
46-
$db->setAttribute(PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT, 0);
47-
bug($db);
48-
49-
5039
putenv('PDOTEST_ATTR='.serialize(array(
5140
PDO::ATTR_EMULATE_PREPARES => 1,
5241
)));
5342
$db = PDOTest::factory('PDO', false);
5443
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
5544

56-
echo "Test 6\n";
57-
bug($db);
58-
bug($db, array(PDO::ATTR_EMULATE_PREPARES => 0));
59-
bug($db, array(PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT => 0));
60-
61-
62-
putenv('PDOTEST_ATTR='.serialize(array(
63-
PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT => 1,
64-
)));
65-
66-
$db = PDOTest::factory('PDO', false);
67-
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
68-
69-
echo "Test 7\n";
70-
bug($db);
71-
bug($db, array(PDO::ATTR_EMULATE_PREPARES => 0));
72-
bug($db, array(PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT => 0));
73-
74-
75-
putenv('PDOTEST_ATTR='.serialize(array(
76-
PDO::ATTR_EMULATE_PREPARES => 1,
77-
PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT => 1,
78-
)));
79-
80-
$db = PDOTest::factory('PDO', false);
81-
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
82-
83-
echo "Test 8\n";
45+
echo "Test 4\n";
8446
bug($db);
8547
bug($db, array(PDO::ATTR_EMULATE_PREPARES => 0));
86-
bug($db, array(PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT => 0));
87-
bug($db, array(
88-
PDO::ATTR_EMULATE_PREPARES => 0,
89-
PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT => 0,
90-
));
91-
9248

9349
putenv('PDOTEST_ATTR');
9450

@@ -111,44 +67,8 @@ Test 2
11167
42P18
11268
OK
11369
Test 3
114-
42P18
115-
116-
Deprecated: PDO::prepare(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
117-
OK
118-
Test 4
119-
OK
120-
42P18
121-
Test 5
122-
123-
Deprecated: PDO::setAttribute(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
124-
125-
Deprecated: PDO::prepare(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
126-
OK
127-
128-
Deprecated: PDO::setAttribute(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
129-
42P18
130-
Test 6
13170
OK
13271
42P18
133-
OK
134-
135-
Deprecated: PDO::__construct(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
136-
Test 7
137-
138-
Deprecated: PDO::prepare(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
139-
OK
140-
141-
Deprecated: PDO::prepare(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
142-
OK
143-
42P18
144-
145-
Deprecated: PDO::__construct(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
146-
Test 8
147-
148-
Deprecated: PDO::prepare(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
149-
OK
150-
151-
Deprecated: PDO::prepare(): PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT is deprecated, use PDO::ATTR_EMULATE_PREPARES instead in %s on line %d
152-
OK
72+
Test 4
15373
OK
15474
42P18

ext/pdo_pgsql/tests/bug68371.phpt

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ $pdo->setAttribute (\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
1616

1717
$attrs = array(
1818
// Extensive test: default value and set+get values
19-
PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT => array(null, true, false),
2019
PDO::ATTR_EMULATE_PREPARES => array(null, true, false),
2120
PDO::PGSQL_ATTR_DISABLE_PREPARES => array(null, true, false),
2221

@@ -68,18 +67,6 @@ foreach ($attrs as $a => $vals) {
6867

6968
?>
7069
--EXPECTF--
71-
Deprecated: PDO::getAttribute(): %s
72-
bool(false)
73-
74-
Deprecated: PDO::setAttribute(): %s
75-
76-
Deprecated: PDO::getAttribute(): %s
77-
OK
78-
79-
Deprecated: PDO::setAttribute(): %s
80-
81-
Deprecated: PDO::getAttribute(): %s
82-
OK
8370
bool(false)
8471
OK
8572
OK

0 commit comments

Comments
 (0)