From: Nikita Popov Date: Mon, 14 Dec 2020 11:03:43 +0000 (+0100) Subject: Remove MYSQLND_STRING_TO_INT_CONVERSION define X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=141eb346b035c3e9c620e01139b4ea3e7c6138f4;p=php Remove MYSQLND_STRING_TO_INT_CONVERSION define This has been unconditionally enabled for a long time already (the actual conversion is behind an additional runtime flag). --- diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c index 928ef8ea76..cea4ba6394 100644 --- a/ext/mysqli/mysqli.c +++ b/ext/mysqli/mysqli.c @@ -656,7 +656,7 @@ PHP_MINIT_FUNCTION(mysqli) REGISTER_LONG_CONSTANT("MYSQLI_OPT_NET_CMD_BUFFER_SIZE", MYSQLND_OPT_NET_CMD_BUFFER_SIZE, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("MYSQLI_OPT_NET_READ_BUFFER_SIZE", MYSQLND_OPT_NET_READ_BUFFER_SIZE, CONST_CS | CONST_PERSISTENT); #endif -#ifdef MYSQLND_STRING_TO_INT_CONVERSION +#ifdef MYSQLI_USE_MYSQLND REGISTER_LONG_CONSTANT("MYSQLI_OPT_INT_AND_FLOAT_NATIVE", MYSQLND_OPT_INT_AND_FLOAT_NATIVE, CONST_CS | CONST_PERSISTENT); #endif #if MYSQL_VERSION_ID < 80000 || MYSQL_VERSION_ID >= 100000 || defined(MYSQLI_USE_MYSQLND) diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index d1e0634dc7..24ea731035 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -1638,9 +1638,7 @@ static int mysqli_options_get_option_zval_type(int option) #ifdef MYSQLI_USE_MYSQLND case MYSQLND_OPT_NET_CMD_BUFFER_SIZE: case MYSQLND_OPT_NET_READ_BUFFER_SIZE: -#ifdef MYSQLND_STRING_TO_INT_CONVERSION case MYSQLND_OPT_INT_AND_FLOAT_NATIVE: -#endif #endif /* MYSQLI_USE_MYSQLND */ case MYSQL_OPT_CONNECT_TIMEOUT: #ifdef MYSQL_REPORT_DATA_TRUNCATION diff --git a/ext/mysqlnd/mysqlnd.h b/ext/mysqlnd/mysqlnd.h index a0c48e0ebd..8010f43380 100644 --- a/ext/mysqlnd/mysqlnd.h +++ b/ext/mysqlnd/mysqlnd.h @@ -24,7 +24,6 @@ #define MYSQLND_PLUGIN_API_VERSION 2 -#define MYSQLND_STRING_TO_INT_CONVERSION /* This force mysqlnd to do a single (or more depending on amount of data) non-blocking read() calls before sending a command to the server. Useful diff --git a/ext/mysqlnd/mysqlnd_connection.c b/ext/mysqlnd/mysqlnd_connection.c index 1c59c6ccde..1c7e25dbb5 100644 --- a/ext/mysqlnd/mysqlnd_connection.c +++ b/ext/mysqlnd/mysqlnd_connection.c @@ -1636,11 +1636,9 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option)(MYSQLND_CONN_DATA * const c case MYSQL_SERVER_PUBLIC_KEY: ret = conn->protocol_frame_codec->data->m.set_client_option(conn->protocol_frame_codec, option, value); break; -#ifdef MYSQLND_STRING_TO_INT_CONVERSION case MYSQLND_OPT_INT_AND_FLOAT_NATIVE: conn->options->int_and_float_native = *(unsigned int*) value; break; -#endif case MYSQL_OPT_LOCAL_INFILE: if (value && (*(unsigned int*) value) ? 1 : 0) { conn->options->flags |= CLIENT_LOCAL_FILES; diff --git a/ext/mysqlnd/mysqlnd_enum_n_def.h b/ext/mysqlnd/mysqlnd_enum_n_def.h index 955eccac0e..161a3821bd 100644 --- a/ext/mysqlnd/mysqlnd_enum_n_def.h +++ b/ext/mysqlnd/mysqlnd_enum_n_def.h @@ -254,9 +254,7 @@ typedef enum mysqlnd_client_option MYSQL_OPT_TLS_VERSION, MYSQL_OPT_SSL_MODE, MYSQLND_DEPRECATED_ENUM1 = 200, -#ifdef MYSQLND_STRING_TO_INT_CONVERSION MYSQLND_OPT_INT_AND_FLOAT_NATIVE = 201, -#endif MYSQLND_OPT_NET_CMD_BUFFER_SIZE = 202, MYSQLND_OPT_NET_READ_BUFFER_SIZE = 203, MYSQLND_OPT_SSL_KEY = 204, diff --git a/ext/mysqlnd/mysqlnd_structs.h b/ext/mysqlnd/mysqlnd_structs.h index ee3dba0e87..f5a873ddd3 100644 --- a/ext/mysqlnd/mysqlnd_structs.h +++ b/ext/mysqlnd/mysqlnd_structs.h @@ -231,9 +231,7 @@ typedef struct st_mysqlnd_session_options /* maximum allowed packet size for communication */ unsigned int max_allowed_packet; -#ifdef MYSQLND_STRING_TO_INT_CONVERSION zend_bool int_and_float_native; -#endif } MYSQLND_SESSION_OPTIONS; diff --git a/ext/mysqlnd/mysqlnd_wireprotocol.c b/ext/mysqlnd/mysqlnd_wireprotocol.c index 90b33d4bac..ef32d90274 100644 --- a/ext/mysqlnd/mysqlnd_wireprotocol.c +++ b/ext/mysqlnd/mysqlnd_wireprotocol.c @@ -1555,10 +1555,8 @@ php_mysqlnd_rowp_read_text_protocol_aux(MYSQLND_ROW_BUFFER * row_buffer, zval * " bytes after end of packet", (p + len) - packet_end - 1); DBG_RETURN(FAIL); } else { -#ifdef MYSQLND_STRING_TO_INT_CONVERSION struct st_mysqlnd_perm_bind perm_bind = mysqlnd_ps_fetch_functions[fields_metadata[i].type]; -#endif if (MYSQLND_G(collect_statistics)) { enum_mysqlnd_collected_stats statistic; switch (fields_metadata[i].type) { @@ -1594,7 +1592,6 @@ php_mysqlnd_rowp_read_text_protocol_aux(MYSQLND_ROW_BUFFER * row_buffer, zval * } MYSQLND_INC_CONN_STATISTIC_W_VALUE2(stats, statistic, 1, STAT_BYTES_RECEIVED_PURE_DATA_TEXT, len); } -#ifdef MYSQLND_STRING_TO_INT_CONVERSION if (as_int_or_float && perm_bind.php_type == IS_LONG) { zend_uchar save = *(p + len); /* We have to make it ASCIIZ temporarily */ @@ -1639,9 +1636,7 @@ php_mysqlnd_rowp_read_text_protocol_aux(MYSQLND_ROW_BUFFER * row_buffer, zval * *(p + len) = '\0'; ZVAL_DOUBLE(current_field, atof((char *) p)); *(p + len) = save; - } else -#endif /* MYSQLND_STRING_TO_INT_CONVERSION */ - if (fields_metadata[i].type == MYSQL_TYPE_BIT) { + } else if (fields_metadata[i].type == MYSQL_TYPE_BIT) { /* BIT fields are specially handled. As they come as bit mask, they have to be converted to human-readable representation.