On Tue, Dec 15, 2020 at 11:06 PM Nikita Popov <nikita.ppv@gmail.com> wrote:
> On Tue, Dec 15, 2020 at 10:00 PM Dmitry Stogov <dmitrystogov@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 <nikic@php.net> wrote:
>
>> Commit: 362c29241db872cf7eb030cef1148d47d3489be1
>>> Author: Nikita Popov <nikita.ppv@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
>>>
>>>