mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge from mysql-5.0-bugteam.
This commit is contained in:
@ -16951,9 +16951,10 @@ static void bug20023_change_user(MYSQL *con)
|
|||||||
opt_db ? opt_db : "test"));
|
opt_db ? opt_db : "test"));
|
||||||
}
|
}
|
||||||
|
|
||||||
static my_bool query_int_variable(MYSQL *con,
|
static my_bool query_str_variable(MYSQL *con,
|
||||||
const char *var_name,
|
const char *var_name,
|
||||||
int *var_value)
|
char *str,
|
||||||
|
size_t len)
|
||||||
{
|
{
|
||||||
MYSQL_RES *rs;
|
MYSQL_RES *rs;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
@ -16962,10 +16963,8 @@ static my_bool query_int_variable(MYSQL *con,
|
|||||||
|
|
||||||
my_bool is_null;
|
my_bool is_null;
|
||||||
|
|
||||||
my_snprintf(query_buffer,
|
my_snprintf(query_buffer, sizeof (query_buffer),
|
||||||
sizeof (query_buffer),
|
"SELECT %s", var_name);
|
||||||
"SELECT %s",
|
|
||||||
(const char *) var_name);
|
|
||||||
|
|
||||||
DIE_IF(mysql_query(con, query_buffer));
|
DIE_IF(mysql_query(con, query_buffer));
|
||||||
DIE_UNLESS(rs= mysql_store_result(con));
|
DIE_UNLESS(rs= mysql_store_result(con));
|
||||||
@ -16974,28 +16973,44 @@ static my_bool query_int_variable(MYSQL *con,
|
|||||||
is_null= row[0] == NULL;
|
is_null= row[0] == NULL;
|
||||||
|
|
||||||
if (!is_null)
|
if (!is_null)
|
||||||
*var_value= atoi(row[0]);
|
my_snprintf(str, len, "%s", row[0]);
|
||||||
|
|
||||||
mysql_free_result(rs);
|
mysql_free_result(rs);
|
||||||
|
|
||||||
return is_null;
|
return is_null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static my_bool query_int_variable(MYSQL *con,
|
||||||
|
const char *var_name,
|
||||||
|
int *var_value)
|
||||||
|
{
|
||||||
|
char str[32];
|
||||||
|
my_bool is_null= query_str_variable(con, var_name, str, sizeof(str));
|
||||||
|
|
||||||
|
if (!is_null)
|
||||||
|
*var_value= atoi(str);
|
||||||
|
|
||||||
|
return is_null;
|
||||||
|
}
|
||||||
|
|
||||||
static void test_bug20023()
|
static void test_bug20023()
|
||||||
{
|
{
|
||||||
MYSQL con;
|
MYSQL con;
|
||||||
|
|
||||||
int sql_big_selects_orig;
|
int sql_big_selects_orig;
|
||||||
int max_join_size_orig;
|
/*
|
||||||
|
Type of max_join_size is ha_rows, which might be ulong or off_t
|
||||||
|
depending on the platform or configure options. Preserve the string
|
||||||
|
to avoid type overflow pitfalls.
|
||||||
|
*/
|
||||||
|
char max_join_size_orig[32];
|
||||||
|
|
||||||
int sql_big_selects_2;
|
int sql_big_selects_2;
|
||||||
int sql_big_selects_3;
|
int sql_big_selects_3;
|
||||||
int sql_big_selects_4;
|
int sql_big_selects_4;
|
||||||
int sql_big_selects_5;
|
int sql_big_selects_5;
|
||||||
|
|
||||||
#if NOT_USED
|
|
||||||
char query_buffer[MAX_TEST_QUERY_LENGTH];
|
char query_buffer[MAX_TEST_QUERY_LENGTH];
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Create a new connection. */
|
/* Create a new connection. */
|
||||||
|
|
||||||
@ -17018,9 +17033,10 @@ static void test_bug20023()
|
|||||||
"@@session.sql_big_selects",
|
"@@session.sql_big_selects",
|
||||||
&sql_big_selects_orig);
|
&sql_big_selects_orig);
|
||||||
|
|
||||||
query_int_variable(&con,
|
query_str_variable(&con,
|
||||||
"@@global.max_join_size",
|
"@@global.max_join_size",
|
||||||
&max_join_size_orig);
|
max_join_size_orig,
|
||||||
|
sizeof(max_join_size_orig));
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
Test that COM_CHANGE_USER resets the SQL_BIG_SELECTS to the initial value.
|
Test that COM_CHANGE_USER resets the SQL_BIG_SELECTS to the initial value.
|
||||||
@ -17093,25 +17109,16 @@ static void test_bug20023()
|
|||||||
Check that SQL_BIG_SELECTS will be the original one.
|
Check that SQL_BIG_SELECTS will be the original one.
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
|
|
||||||
#if NOT_USED
|
|
||||||
/*
|
|
||||||
max_join_size is a ulong or better.
|
|
||||||
my_snprintf() only goes up to ul.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Restore MAX_JOIN_SIZE. */
|
/* Restore MAX_JOIN_SIZE. */
|
||||||
|
|
||||||
my_snprintf(query_buffer,
|
my_snprintf(query_buffer,
|
||||||
sizeof (query_buffer),
|
sizeof (query_buffer),
|
||||||
"SET @@global.max_join_size = %d",
|
"SET @@global.max_join_size = %s",
|
||||||
(int) max_join_size_orig);
|
max_join_size_orig);
|
||||||
|
|
||||||
DIE_IF(mysql_query(&con, query_buffer));
|
DIE_IF(mysql_query(&con, query_buffer));
|
||||||
|
|
||||||
#else
|
|
||||||
DIE_IF(mysql_query(&con, "SET @@global.max_join_size = -1"));
|
DIE_IF(mysql_query(&con, "SET @@global.max_join_size = -1"));
|
||||||
#endif
|
|
||||||
|
|
||||||
DIE_IF(mysql_query(&con, "SET @@session.max_join_size = default"));
|
DIE_IF(mysql_query(&con, "SET @@session.max_join_size = default"));
|
||||||
|
|
||||||
/* Issue COM_CHANGE_USER. */
|
/* Issue COM_CHANGE_USER. */
|
||||||
|
Reference in New Issue
Block a user