From f0554477aea923a06dc152cdb128cccb6999fe71 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Thu, 26 Dec 2024 22:26:40 +0000 Subject: [PATCH] Make PDO_MYSQL_ATTR_DIRECT_QUERY a proper alias (#16935) --- ext/pdo_mysql/mysql_driver.c | 4 ---- ext/pdo_mysql/pdo_mysql.c | 2 +- ext/pdo_mysql/pdo_mysql.stub.php | 2 +- ext/pdo_mysql/pdo_mysql_arginfo.h | 4 ++-- ext/pdo_mysql/php_pdo_mysql_int.h | 1 - ext/pdo_mysql/tests/bug68371.phpt | 6 +----- 6 files changed, 5 insertions(+), 14 deletions(-) diff --git a/ext/pdo_mysql/mysql_driver.c b/ext/pdo_mysql/mysql_driver.c index 3bdb335a4a99b..f0a2a887a5c75 100644 --- a/ext/pdo_mysql/mysql_driver.c +++ b/ext/pdo_mysql/mysql_driver.c @@ -454,7 +454,6 @@ static bool pdo_mysql_set_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val) ((pdo_mysql_db_handle *)dbh->driver_data)->buffered = bval; PDO_DBG_RETURN(true); - case PDO_MYSQL_ATTR_DIRECT_QUERY: case PDO_ATTR_EMULATE_PREPARES: if (!pdo_get_bool_param(&bval, val)) { PDO_DBG_RETURN(false); @@ -555,7 +554,6 @@ static int pdo_mysql_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_ break; case PDO_ATTR_EMULATE_PREPARES: - case PDO_MYSQL_ATTR_DIRECT_QUERY: ZVAL_BOOL(return_value, H->emulate_prepare); break; @@ -761,8 +759,6 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options) zend_string *ssl_key = NULL, *ssl_cert = NULL, *ssl_ca = NULL, *ssl_capath = NULL, *ssl_cipher = NULL; H->buffered = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_USE_BUFFERED_QUERY, 1); - H->emulate_prepare = pdo_attr_lval(driver_options, - PDO_MYSQL_ATTR_DIRECT_QUERY, H->emulate_prepare); H->emulate_prepare = pdo_attr_lval(driver_options, PDO_ATTR_EMULATE_PREPARES, H->emulate_prepare); diff --git a/ext/pdo_mysql/pdo_mysql.c b/ext/pdo_mysql/pdo_mysql.c index be9afad6eab84..772022cdbe937 100644 --- a/ext/pdo_mysql/pdo_mysql.c +++ b/ext/pdo_mysql/pdo_mysql.c @@ -126,7 +126,7 @@ static PHP_MINIT_FUNCTION(pdo_mysql) REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_READ_DEFAULT_GROUP", (zend_long)PDO_MYSQL_ATTR_READ_DEFAULT_GROUP); #endif REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_COMPRESS", (zend_long)PDO_MYSQL_ATTR_COMPRESS); - REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_DIRECT_QUERY", (zend_long)PDO_MYSQL_ATTR_DIRECT_QUERY); + REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_DIRECT_QUERY", (zend_long)PDO_ATTR_EMULATE_PREPARES); REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_FOUND_ROWS", (zend_long)PDO_MYSQL_ATTR_FOUND_ROWS); REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_IGNORE_SPACE", (zend_long)PDO_MYSQL_ATTR_IGNORE_SPACE); REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_SSL_KEY", (zend_long)PDO_MYSQL_ATTR_SSL_KEY); diff --git a/ext/pdo_mysql/pdo_mysql.stub.php b/ext/pdo_mysql/pdo_mysql.stub.php index 2668dd73aec62..cf253194432c3 100644 --- a/ext/pdo_mysql/pdo_mysql.stub.php +++ b/ext/pdo_mysql/pdo_mysql.stub.php @@ -33,7 +33,7 @@ class Mysql extends \PDO /** @cvalue PDO_MYSQL_ATTR_COMPRESS */ public const int ATTR_COMPRESS = UNKNOWN; - /** @cvalue PDO_MYSQL_ATTR_DIRECT_QUERY */ + /** @cvalue PDO_ATTR_EMULATE_PREPARES */ public const int ATTR_DIRECT_QUERY = UNKNOWN; /** @cvalue PDO_MYSQL_ATTR_FOUND_ROWS */ diff --git a/ext/pdo_mysql/pdo_mysql_arginfo.h b/ext/pdo_mysql/pdo_mysql_arginfo.h index 1e6fd32751fe5..a6a1b5e1b5c78 100644 --- a/ext/pdo_mysql/pdo_mysql_arginfo.h +++ b/ext/pdo_mysql/pdo_mysql_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 05487a0b7668688c1885a14a8ce02493b96f63bb */ + * Stub hash: 9d2c0327499693f1ca2825a9ad42ad769f44a24a */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_Pdo_Mysql_getWarningCount, 0, 0, IS_LONG, 0) ZEND_END_ARG_INFO() @@ -67,7 +67,7 @@ static zend_class_entry *register_class_Pdo_Mysql(zend_class_entry *class_entry_ zend_string_release(const_ATTR_COMPRESS_name); zval const_ATTR_DIRECT_QUERY_value; - ZVAL_LONG(&const_ATTR_DIRECT_QUERY_value, PDO_MYSQL_ATTR_DIRECT_QUERY); + ZVAL_LONG(&const_ATTR_DIRECT_QUERY_value, PDO_ATTR_EMULATE_PREPARES); zend_string *const_ATTR_DIRECT_QUERY_name = zend_string_init_interned("ATTR_DIRECT_QUERY", sizeof("ATTR_DIRECT_QUERY") - 1, 1); zend_declare_typed_class_constant(class_entry, const_ATTR_DIRECT_QUERY_name, &const_ATTR_DIRECT_QUERY_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG)); zend_string_release(const_ATTR_DIRECT_QUERY_name); diff --git a/ext/pdo_mysql/php_pdo_mysql_int.h b/ext/pdo_mysql/php_pdo_mysql_int.h index 9c78813d5f249..ae77193afcfa9 100644 --- a/ext/pdo_mysql/php_pdo_mysql_int.h +++ b/ext/pdo_mysql/php_pdo_mysql_int.h @@ -167,7 +167,6 @@ enum { PDO_MYSQL_ATTR_MAX_BUFFER_SIZE, #endif PDO_MYSQL_ATTR_COMPRESS, - PDO_MYSQL_ATTR_DIRECT_QUERY, PDO_MYSQL_ATTR_FOUND_ROWS, PDO_MYSQL_ATTR_IGNORE_SPACE, PDO_MYSQL_ATTR_SSL_KEY, diff --git a/ext/pdo_mysql/tests/bug68371.phpt b/ext/pdo_mysql/tests/bug68371.phpt index 64c4d6718c296..146b8e4684d26 100644 --- a/ext/pdo_mysql/tests/bug68371.phpt +++ b/ext/pdo_mysql/tests/bug68371.phpt @@ -1,5 +1,5 @@ --TEST-- -PDO MySQL Bug #38671 (PDO#getAttribute() cannot be called with platform-specific attribute names) +PDO MySQL Bug #68371 (PDO#getAttribute() cannot be called with platform-specific attribute names) --EXTENSIONS-- pdo_mysql --SKIPIF-- @@ -16,7 +16,6 @@ $pdo->setAttribute (\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); $attrs = [ // Extensive test: default value and set+get values PDO::ATTR_EMULATE_PREPARES => array(null, true, false), - PDO::MYSQL_ATTR_DIRECT_QUERY => array(null, false, true), PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => array(null, false, true), // Just test the default @@ -70,9 +69,6 @@ foreach ($attrs as $a => $vals) { bool(true) OK OK -bool(false) -OK -OK bool(true) OK OK