On Tue, Dec 15, 2020 at 11:06 PM Nikita Popov <nikita....@gmail.com> wrote:
> On Tue, Dec 15, 2020 at 10:00 PM Dmitry Stogov <dmitrysto...@gmail.com> > wrote: > >> Hi Nikita, >> >> ext/mysql is not a part of the main php source tree, but it still works >> and is still useful. >> Why do you kill it and why silently (may be I missed discussion)? >> What is the motivation? >> >> Thanks. Dmitry. >> > > I'm currently working on some larger refactorings in mysqlnd. I can update > ext/mysql compatibility once I'm done. > > Nikita > I've updated ext/mysql to build against the changes in PHP 8.1. However, nearly all tests already fail on PHP 8.0, so whether it actually works in anyone's guess... Nikita > On Tue, Dec 15, 2020 at 12:58 PM Nikita Popov <ni...@php.net> wrote: > >> Commit: 362c29241db872cf7eb030cef1148d47d3489be1 >>> Author: Nikita Popov <nikita....@gmail.com> Tue, 15 Dec 2020 >>> 10:55:53 +0100 >>> Parents: be4f73f328f7aa85f1c893247b5007ce44445f2c >>> Branches: master >>> >>> Link: >>> http://git.php.net/?p=php-src.git;a=commitdiff;h=362c29241db872cf7eb030cef1148d47d3489be1 >>> >>> Log: >>> Remove mysqlnd_extension enum >>> >>> ext/mysql is no longer supported, drop handling for it from >>> mysqlnd. >>> >>> Changed paths: >>> M ext/mysqli/mysqli.c >>> M ext/mysqli/mysqli_warning.c >>> M ext/mysqlnd/mysqlnd.h >>> M ext/mysqlnd/mysqlnd_enum_n_def.h >>> M ext/mysqlnd/mysqlnd_result.c >>> M ext/mysqlnd/mysqlnd_structs.h >>> >>> >>> Diff: >>> diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c >>> index cea4ba63946..50c5038f157 100644 >>> --- a/ext/mysqli/mysqli.c >>> +++ b/ext/mysqli/mysqli.c >>> @@ -1130,7 +1130,7 @@ void php_mysqli_fetch_into_hash_aux(zval >>> *return_value, MYSQL_RES * result, zend >>> } >>> } >>> #else >>> - mysqlnd_fetch_into(result, ((fetchtype & MYSQLI_NUM)? >>> MYSQLND_FETCH_NUM:0) | ((fetchtype & MYSQLI_ASSOC)? MYSQLND_FETCH_ASSOC:0), >>> return_value, MYSQLND_MYSQLI); >>> + mysqlnd_fetch_into(result, ((fetchtype & MYSQLI_NUM)? >>> MYSQLND_FETCH_NUM:0) | ((fetchtype & MYSQLI_ASSOC)? MYSQLND_FETCH_ASSOC:0), >>> return_value); >>> #endif >>> } >>> /* }}} */ >>> diff --git a/ext/mysqli/mysqli_warning.c b/ext/mysqli/mysqli_warning.c >>> index 7b1552e5ace..6dd7090911e 100644 >>> --- a/ext/mysqli/mysqli_warning.c >>> +++ b/ext/mysqli/mysqli_warning.c >>> @@ -131,7 +131,7 @@ MYSQLI_WARNING * php_get_warnings(MYSQLND_CONN_DATA >>> * mysql) >>> zval *entry; >>> int errno; >>> >>> - mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, &row, >>> MYSQLND_MYSQLI); >>> + mysqlnd_fetch_into(result, MYSQLND_FETCH_NUM, &row); >>> if (Z_TYPE(row) != IS_ARRAY) { >>> zval_ptr_dtor(&row); >>> break; >>> diff --git a/ext/mysqlnd/mysqlnd.h b/ext/mysqlnd/mysqlnd.h >>> index bf3a9d640fa..b4d3d1f8c33 100644 >>> --- a/ext/mysqlnd/mysqlnd.h >>> +++ b/ext/mysqlnd/mysqlnd.h >>> @@ -98,7 +98,7 @@ PHPAPI MYSQLND * mysqlnd_connection_connect(MYSQLND * >>> conn, >>> PHPAPI void mysqlnd_debug(const char *mode); >>> >>> /* Query */ >>> -#define mysqlnd_fetch_into(result, flags, ret_val, ext) >>> (result)->m.fetch_into((result), (flags), (ret_val), (ext) >>> ZEND_FILE_LINE_CC) >>> +#define mysqlnd_fetch_into(result, flags, ret_val) >>> (result)->m.fetch_into((result), (flags), (ret_val) ZEND_FILE_LINE_CC) >>> #define mysqlnd_fetch_row_c(result) >>> (result)->m.fetch_row_c((result)) >>> #define mysqlnd_fetch_all(result, flags, return_value) >>> (result)->m.fetch_all((result), (flags), (return_value) ZEND_FILE_LINE_CC) >>> #define mysqlnd_get_connection_stats(conn, values) >>> ((conn)->data)->m->get_statistics((conn)->data, (values) >>> ZEND_FILE_LINE_CC) >>> diff --git a/ext/mysqlnd/mysqlnd_enum_n_def.h >>> b/ext/mysqlnd/mysqlnd_enum_n_def.h >>> index 161a3821bd2..191b8388b34 100644 >>> --- a/ext/mysqlnd/mysqlnd_enum_n_def.h >>> +++ b/ext/mysqlnd/mysqlnd_enum_n_def.h >>> @@ -148,12 +148,6 @@ >>> #define TRANS_COR_RELEASE 4 >>> #define TRANS_COR_NO_RELEASE 8 >>> >>> -typedef enum mysqlnd_extension >>> -{ >>> - MYSQLND_MYSQL = 0, >>> - MYSQLND_MYSQLI >>> -} enum_mysqlnd_extension; >>> - >>> enum >>> { >>> MYSQLND_FETCH_ASSOC = 1, >>> diff --git a/ext/mysqlnd/mysqlnd_result.c b/ext/mysqlnd/mysqlnd_result.c >>> index bdeefd5d04d..f67f8bdcc17 100644 >>> --- a/ext/mysqlnd/mysqlnd_result.c >>> +++ b/ext/mysqlnd/mysqlnd_result.c >>> @@ -1692,8 +1692,7 @@ MYSQLND_METHOD(mysqlnd_res, field_tell)(const >>> MYSQLND_RES * const result) >>> /* {{{ mysqlnd_res::fetch_into */ >>> static void >>> MYSQLND_METHOD(mysqlnd_res, fetch_into)(MYSQLND_RES * result, const >>> unsigned int flags, >>> - >>> zval *return_value, >>> - >>> enum_mysqlnd_extension extension ZEND_FILE_LINE_DC) >>> + >>> zval *return_value ZEND_FILE_LINE_DC) >>> { >>> zend_bool fetched_anything; >>> unsigned int array_size; >>> @@ -1715,15 +1714,7 @@ MYSQLND_METHOD(mysqlnd_res, >>> fetch_into)(MYSQLND_RES * result, const unsigned int >>> RETVAL_FALSE; >>> } else if (fetched_anything == FALSE) { >>> zend_array_destroy(Z_ARR_P(return_value)); >>> - switch (extension) { >>> - case MYSQLND_MYSQLI: >>> - RETVAL_NULL(); >>> - break; >>> - case MYSQLND_MYSQL: >>> - RETVAL_FALSE; >>> - break; >>> - default:exit(0); >>> - } >>> + RETVAL_NULL(); >>> } >>> /* >>> return_value is IS_NULL for no more data and an array for >>> data. Thus it's ok >>> @@ -1778,7 +1769,7 @@ MYSQLND_METHOD(mysqlnd_res, fetch_all)(MYSQLND_RES >>> * result, const unsigned int >>> array_init_size(return_value, set? (unsigned int) set->row_count >>> : 4); >>> >>> do { >>> - mysqlnd_fetch_into(result, flags, &row, MYSQLND_MYSQLI); >>> + mysqlnd_fetch_into(result, flags, &row); >>> if (Z_TYPE(row) != IS_ARRAY) { >>> zval_ptr_dtor_nogc(&row); >>> break; >>> diff --git a/ext/mysqlnd/mysqlnd_structs.h >>> b/ext/mysqlnd/mysqlnd_structs.h >>> index f8562432aee..f992f70baf4 100644 >>> --- a/ext/mysqlnd/mysqlnd_structs.h >>> +++ b/ext/mysqlnd/mysqlnd_structs.h >>> @@ -641,7 +641,7 @@ typedef enum_func_status >>> (*func_mysqlnd_res__row_decoder)(MYSQLND_ROW_BUFFER * r >>> >>> typedef MYSQLND_RES * >>> (*func_mysqlnd_res__use_result)(MYSQLND_RES * const result, const zend_bool >>> ps_protocol); >>> typedef MYSQLND_RES * >>> (*func_mysqlnd_res__store_result)(MYSQLND_RES * result, MYSQLND_CONN_DATA * >>> const conn, const unsigned int flags); >>> -typedef void >>> (*func_mysqlnd_res__fetch_into)(MYSQLND_RES *result, const unsigned int >>> flags, zval *return_value, enum_mysqlnd_extension ext ZEND_FILE_LINE_DC); >>> +typedef void >>> (*func_mysqlnd_res__fetch_into)(MYSQLND_RES *result, const unsigned int >>> flags, zval *return_value ZEND_FILE_LINE_DC); >>> typedef MYSQLND_ROW_C >>> (*func_mysqlnd_res__fetch_row_c)(MYSQLND_RES *result); >>> typedef void >>> (*func_mysqlnd_res__fetch_all)(MYSQLND_RES *result, const unsigned int >>> flags, zval *return_value ZEND_FILE_LINE_DC); >>> typedef uint64_t >>> (*func_mysqlnd_res__num_rows)(const MYSQLND_RES * const result); >>> >>> >>> -- >>> PHP CVS Mailing List (http://www.php.net/) >>> To unsubscribe, visit: http://www.php.net/unsub.php >>> >>>