Skip to content

Commit 4cb82b0

Browse files
ext/pdo_firebird: Do not implement new constants in PDO core (#14995)
1 parent b3a4a6b commit 4cb82b0

6 files changed

+43
-48
lines changed

UPGRADING

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -504,9 +504,9 @@ PHP 8.4 UPGRADE NOTES
504504
. getAttribute, enabled to get values of FB_ATTR_DATE_FORMAT, FB_ATTR_TIME_FORMAT,
505505
FB_ATTR_TIMESTAMP_FORMAT.
506506
. Added new attributes to specify transaction isolation level and access mode.
507-
Along with these, five constants (PDO::FB_TRANSACTION_ISOLATION_LEVEL,
508-
PDO::FB_READ_COMMITTED, PDO::FB_REPEATABLE_READ, PDO::FB_SERIALIZABLE,
509-
PDO::FB_WRITABLE_TRANSACTION) have been added.
507+
Along with these, five constants (Pdo\Firebird::TRANSACTION_ISOLATION_LEVEL,
508+
Pdo\Firebird::READ_COMMITTED, Pdo\Firebird::REPEATABLE_READ,
509+
Pdo\Firebird::SERIALIZABLE, Pdo\Firebird::WRITABLE_TRANSACTION) have been added.
510510
. When using persistent connections, there is now a liveness check in the
511511
constructor.
512512
. The content that is built changes depending on the value of FB_API_VER in

ext/pdo_firebird/firebird_driver.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1080,8 +1080,8 @@ static bool pdo_firebird_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val
10801080
*/
10811081
H->txn_isolation_level = lval;
10821082
} else {
1083-
zend_value_error("PDO::FB_TRANSACTION_ISOLATION_LEVEL must be a valid transaction isolation level "
1084-
"(PDO::FB_READ_COMMITTED, PDO::FB_REPEATABLE_READ, or PDO::FB_SERIALIZABLE)");
1083+
zend_value_error("Pdo\\Firebird::TRANSACTION_ISOLATION_LEVEL must be a valid transaction isolation level "
1084+
"(Pdo\\Firebird::READ_COMMITTED, Pdo\\Firebird::REPEATABLE_READ, or Pdo\\Firebird::SERIALIZABLE)");
10851085
return false;
10861086
}
10871087
}
@@ -1318,8 +1318,8 @@ static int pdo_firebird_handle_factory(pdo_dbh_t *dbh, zval *driver_options) /*
13181318
) {
13191319
H->txn_isolation_level = txn_isolation_level;
13201320
} else {
1321-
zend_value_error("PDO::FB_TRANSACTION_ISOLATION_LEVEL must be a valid transaction isolation level "
1322-
"(PDO::FB_READ_COMMITTED, PDO::FB_REPEATABLE_READ, or PDO::FB_SERIALIZABLE)");
1321+
zend_value_error("Pdo\\Firebird::TRANSACTION_ISOLATION_LEVEL must be a valid transaction isolation level "
1322+
"(Pdo\\Firebird::READ_COMMITTED, Pdo\\Firebird::REPEATABLE_READ, or Pdo\\Firebird::SERIALIZABLE)");
13231323
ret = 0;
13241324
}
13251325

ext/pdo_firebird/pdo_firebird.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,6 @@ PHP_MINIT_FUNCTION(pdo_firebird) /* {{{ */
6060
REGISTER_PDO_CLASS_CONST_LONG("FB_ATTR_DATE_FORMAT", (zend_long) PDO_FB_ATTR_DATE_FORMAT);
6161
REGISTER_PDO_CLASS_CONST_LONG("FB_ATTR_TIME_FORMAT", (zend_long) PDO_FB_ATTR_TIME_FORMAT);
6262
REGISTER_PDO_CLASS_CONST_LONG("FB_ATTR_TIMESTAMP_FORMAT", (zend_long) PDO_FB_ATTR_TIMESTAMP_FORMAT);
63-
REGISTER_PDO_CLASS_CONST_LONG("FB_TRANSACTION_ISOLATION_LEVEL", (zend_long) PDO_FB_TRANSACTION_ISOLATION_LEVEL);
64-
REGISTER_PDO_CLASS_CONST_LONG("FB_READ_COMMITTED", (zend_long) PDO_FB_READ_COMMITTED);
65-
REGISTER_PDO_CLASS_CONST_LONG("FB_REPEATABLE_READ", (zend_long) PDO_FB_REPEATABLE_READ);
66-
REGISTER_PDO_CLASS_CONST_LONG("FB_SERIALIZABLE", (zend_long) PDO_FB_SERIALIZABLE);
67-
REGISTER_PDO_CLASS_CONST_LONG("FB_WRITABLE_TRANSACTION", (zend_long) PDO_FB_WRITABLE_TRANSACTION);
6863

6964
if (FAILURE == php_pdo_register_driver(&pdo_firebird_driver)) {
7065
return FAILURE;

ext/pdo_firebird/tests/transaction_access_mode.phpt

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ foreach ($values as $value) {
2929
PDO_FIREBIRD_TEST_USER,
3030
PDO_FIREBIRD_TEST_PASS,
3131
[
32-
PDO::FB_WRITABLE_TRANSACTION => $value['val'],
32+
Pdo\Firebird::WRITABLE_TRANSACTION => $value['val'],
3333
],
3434
);
3535

36-
if ($dbh->getAttribute(PDO::FB_WRITABLE_TRANSACTION) === $value['val']) {
36+
if ($dbh->getAttribute(Pdo\Firebird::WRITABLE_TRANSACTION) === $value['val']) {
3737
echo "OK: {$value['label']}\n";
3838
} else {
3939
echo "NG: {$value['label']}\n";
@@ -54,8 +54,8 @@ $dbh = new PDO(
5454
$dbh->query("CREATE TABLE {$table} (val INT)");
5555

5656
echo "writable\n";
57-
var_dump($dbh->setAttribute(PDO::FB_WRITABLE_TRANSACTION, true));
58-
if ($dbh->getAttribute(PDO::FB_WRITABLE_TRANSACTION) === true) {
57+
var_dump($dbh->setAttribute(Pdo\Firebird::WRITABLE_TRANSACTION, true));
58+
if ($dbh->getAttribute(Pdo\Firebird::WRITABLE_TRANSACTION) === true) {
5959
echo "OK: writable\n";
6060
} else {
6161
echo "NG: writable\n";
@@ -67,8 +67,8 @@ var_dump($r->fetchAll());
6767
echo "\n";
6868

6969
echo "readonly\n";
70-
var_dump($dbh->setAttribute(PDO::FB_WRITABLE_TRANSACTION, false));
71-
if ($dbh->getAttribute(PDO::FB_WRITABLE_TRANSACTION) === false) {
70+
var_dump($dbh->setAttribute(Pdo\Firebird::WRITABLE_TRANSACTION, false));
71+
if ($dbh->getAttribute(Pdo\Firebird::WRITABLE_TRANSACTION) === false) {
7272
echo "OK: readonly\n";
7373
} else {
7474
echo "NG: readonly\n";
@@ -84,47 +84,47 @@ var_dump($r->fetchAll());
8484
echo "\n";
8585
echo "========== Set attr in setAttribute while transaction ==========\n";
8686

87-
$dbh->setAttribute(PDO::FB_WRITABLE_TRANSACTION, true);
87+
$dbh->setAttribute(Pdo\Firebird::WRITABLE_TRANSACTION, true);
8888
$dbh->beginTransaction();
8989

9090
echo "writable to writable\n";
9191
try {
92-
$dbh->setAttribute(PDO::FB_WRITABLE_TRANSACTION, true);
92+
$dbh->setAttribute(Pdo\Firebird::WRITABLE_TRANSACTION, true);
9393
} catch (PDOException $e) {
9494
echo $e->getMessage()."\n";
9595
}
96-
var_dump($dbh->getAttribute(PDO::FB_WRITABLE_TRANSACTION));
96+
var_dump($dbh->getAttribute(Pdo\Firebird::WRITABLE_TRANSACTION));
9797
echo "\n";
9898

9999
echo "writable to readonly\n";
100100
try {
101-
$dbh->setAttribute(PDO::FB_WRITABLE_TRANSACTION, false);
101+
$dbh->setAttribute(Pdo\Firebird::WRITABLE_TRANSACTION, false);
102102
} catch (PDOException $e) {
103103
echo $e->getMessage()."\n";
104104
}
105-
var_dump($dbh->getAttribute(PDO::FB_WRITABLE_TRANSACTION));
105+
var_dump($dbh->getAttribute(Pdo\Firebird::WRITABLE_TRANSACTION));
106106
echo "\n";
107107

108108
$dbh->commit();
109-
$dbh->setAttribute(PDO::FB_WRITABLE_TRANSACTION, false);
109+
$dbh->setAttribute(Pdo\Firebird::WRITABLE_TRANSACTION, false);
110110
$dbh->beginTransaction();
111111

112112
echo "readonly to writable\n";
113113
try {
114-
$dbh->setAttribute(PDO::FB_WRITABLE_TRANSACTION, true);
114+
$dbh->setAttribute(Pdo\Firebird::WRITABLE_TRANSACTION, true);
115115
} catch (PDOException $e) {
116116
echo $e->getMessage()."\n";
117117
}
118-
var_dump($dbh->getAttribute(PDO::FB_WRITABLE_TRANSACTION));
118+
var_dump($dbh->getAttribute(Pdo\Firebird::WRITABLE_TRANSACTION));
119119
echo "\n";
120120

121121
echo "readonly to readonly\n";
122122
try {
123-
$dbh->setAttribute(PDO::FB_WRITABLE_TRANSACTION, false);
123+
$dbh->setAttribute(Pdo\Firebird::WRITABLE_TRANSACTION, false);
124124
} catch (PDOException $e) {
125125
echo $e->getMessage()."\n";
126126
}
127-
var_dump($dbh->getAttribute(PDO::FB_WRITABLE_TRANSACTION));
127+
var_dump($dbh->getAttribute(Pdo\Firebird::WRITABLE_TRANSACTION));
128128

129129
unset($dbh);
130130
?>

ext/pdo_firebird/tests/transaction_isolation_level_attr.phpt

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ $dbh = getDbConnection();
1515
unset($dbh);
1616

1717
$levelStrs = [
18-
'PDO::FB_READ_COMMITTED',
19-
'PDO::FB_REPEATABLE_READ',
20-
'PDO::FB_SERIALIZABLE',
18+
'Pdo\\Firebird::READ_COMMITTED',
19+
'Pdo\\Firebird::REPEATABLE_READ',
20+
'Pdo\\Firebird::SERIALIZABLE',
2121
];
2222

2323
echo "========== Set attr in construct ==========\n";
@@ -29,11 +29,11 @@ foreach ($levelStrs as $levelStr) {
2929
PDO_FIREBIRD_TEST_USER,
3030
PDO_FIREBIRD_TEST_PASS,
3131
[
32-
PDO::FB_TRANSACTION_ISOLATION_LEVEL => $level,
32+
Pdo\Firebird::TRANSACTION_ISOLATION_LEVEL => $level,
3333
],
3434
);
3535

36-
if ($dbh->getAttribute(PDO::FB_TRANSACTION_ISOLATION_LEVEL) === $level) {
36+
if ($dbh->getAttribute(Pdo\Firebird::TRANSACTION_ISOLATION_LEVEL) === $level) {
3737
echo "OK: {$levelStr}\n";
3838
} else {
3939
echo "NG: {$levelStr}\n";
@@ -49,7 +49,7 @@ try {
4949
PDO_FIREBIRD_TEST_USER,
5050
PDO_FIREBIRD_TEST_PASS,
5151
[
52-
PDO::FB_TRANSACTION_ISOLATION_LEVEL => PDO::ATTR_AUTOCOMMIT, // Invalid value
52+
Pdo\Firebird::TRANSACTION_ISOLATION_LEVEL => PDO::ATTR_AUTOCOMMIT, // Invalid value
5353
],
5454
);
5555
} catch (Throwable $e) {
@@ -70,9 +70,9 @@ $dbh = new PDO(
7070
foreach ($levelStrs as $levelStr) {
7171
$level = constant($levelStr);
7272

73-
var_dump($dbh->setAttribute(PDO::FB_TRANSACTION_ISOLATION_LEVEL, $level));
73+
var_dump($dbh->setAttribute(Pdo\Firebird::TRANSACTION_ISOLATION_LEVEL, $level));
7474

75-
if ($dbh->getAttribute(PDO::FB_TRANSACTION_ISOLATION_LEVEL) === $level) {
75+
if ($dbh->getAttribute(Pdo\Firebird::TRANSACTION_ISOLATION_LEVEL) === $level) {
7676
echo "OK: {$levelStr}\n";
7777
} else {
7878
echo "NG: {$levelStr}\n";
@@ -81,7 +81,7 @@ foreach ($levelStrs as $levelStr) {
8181

8282
echo "Invalid value\n";
8383
try {
84-
$dbh->setAttribute(PDO::FB_TRANSACTION_ISOLATION_LEVEL, PDO::ATTR_AUTOCOMMIT); // Invalid value
84+
$dbh->setAttribute(Pdo\Firebird::TRANSACTION_ISOLATION_LEVEL, PDO::ATTR_AUTOCOMMIT); // Invalid value
8585
} catch (Throwable $e) {
8686
echo $e->getMessage()."\n";
8787
}
@@ -90,18 +90,18 @@ unset($dbh);
9090
?>
9191
--EXPECT--
9292
========== Set attr in construct ==========
93-
OK: PDO::FB_READ_COMMITTED
94-
OK: PDO::FB_REPEATABLE_READ
95-
OK: PDO::FB_SERIALIZABLE
93+
OK: Pdo\Firebird::READ_COMMITTED
94+
OK: Pdo\Firebird::REPEATABLE_READ
95+
OK: Pdo\Firebird::SERIALIZABLE
9696
Invalid value
97-
PDO::FB_TRANSACTION_ISOLATION_LEVEL must be a valid transaction isolation level (PDO::FB_READ_COMMITTED, PDO::FB_REPEATABLE_READ, or PDO::FB_SERIALIZABLE)
97+
Pdo\Firebird::TRANSACTION_ISOLATION_LEVEL must be a valid transaction isolation level (Pdo\Firebird::READ_COMMITTED, Pdo\Firebird::REPEATABLE_READ, or Pdo\Firebird::SERIALIZABLE)
9898

9999
========== Set attr in setAttribute ==========
100100
bool(true)
101-
OK: PDO::FB_READ_COMMITTED
101+
OK: Pdo\Firebird::READ_COMMITTED
102102
bool(true)
103-
OK: PDO::FB_REPEATABLE_READ
103+
OK: Pdo\Firebird::REPEATABLE_READ
104104
bool(true)
105-
OK: PDO::FB_SERIALIZABLE
105+
OK: Pdo\Firebird::SERIALIZABLE
106106
Invalid value
107-
PDO::FB_TRANSACTION_ISOLATION_LEVEL must be a valid transaction isolation level (PDO::FB_READ_COMMITTED, PDO::FB_REPEATABLE_READ, or PDO::FB_SERIALIZABLE)
107+
Pdo\Firebird::TRANSACTION_ISOLATION_LEVEL must be a valid transaction isolation level (Pdo\Firebird::READ_COMMITTED, Pdo\Firebird::REPEATABLE_READ, or Pdo\Firebird::SERIALIZABLE)

ext/pdo_firebird/tests/transaction_isolation_level_behavior.phpt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ $dbh = new PDO(
5151
PDO_FIREBIRD_TEST_DSN,
5252
PDO_FIREBIRD_TEST_USER,
5353
PDO_FIREBIRD_TEST_PASS,
54-
[PDO::FB_TRANSACTION_ISOLATION_LEVEL => PDO::FB_READ_COMMITTED]
54+
[Pdo\Firebird::TRANSACTION_ISOLATION_LEVEL => Pdo\Firebird::READ_COMMITTED]
5555
);
5656
echo "begin transaction\n";
5757
$dbh->beginTransaction();
@@ -74,7 +74,7 @@ $dbh = new PDO(
7474
PDO_FIREBIRD_TEST_DSN,
7575
PDO_FIREBIRD_TEST_USER,
7676
PDO_FIREBIRD_TEST_PASS,
77-
[PDO::FB_TRANSACTION_ISOLATION_LEVEL => PDO::FB_REPEATABLE_READ]
77+
[Pdo\Firebird::TRANSACTION_ISOLATION_LEVEL => Pdo\Firebird::REPEATABLE_READ]
7878
);
7979
echo "begin transaction\n";
8080
$dbh->beginTransaction();
@@ -104,7 +104,7 @@ $dbh = new PDO(
104104
PDO_FIREBIRD_TEST_DSN,
105105
PDO_FIREBIRD_TEST_USER,
106106
PDO_FIREBIRD_TEST_PASS,
107-
[PDO::FB_TRANSACTION_ISOLATION_LEVEL => PDO::FB_SERIALIZABLE]
107+
[Pdo\Firebird::TRANSACTION_ISOLATION_LEVEL => Pdo\Firebird::SERIALIZABLE]
108108
);
109109
echo "begin transaction\n";
110110
$dbh->beginTransaction();

0 commit comments

Comments
 (0)