Bug#54041: MySQL 5.0.92 fails when tests from Connector/C suite run
Fix a regression (due to a typo) which caused spurious incorrect argument errors for long data stream parameters if all forms of logging were disabled (binary, general and slow logs). mysql-test/t/mysql_client_test.test: Save the status of the slow_log. sql/sql_prepare.cc: Add a missing logical NOT operator. tests/mysql_client_test.c: Disable all query logs when running C tests. Fixes a omission when, slow log should have been disabled too. Run test case for Bug#54041 with query logs enabled and disabled.
This commit is contained in:
parent
5e13086bf8
commit
a9538cacda
@ -1,3 +1,5 @@
|
|||||||
SET @old_general_log= @@global.general_log;
|
SET @old_general_log= @@global.general_log;
|
||||||
|
SET @old_slow_query_log= @@global.slow_query_log;
|
||||||
ok
|
ok
|
||||||
SET @@global.general_log= @old_general_log;
|
SET @@global.general_log= @old_general_log;
|
||||||
|
SET @@global.slow_query_log= @old_slow_query_log;
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
-- source include/not_embedded.inc
|
-- source include/not_embedded.inc
|
||||||
|
|
||||||
SET @old_general_log= @@global.general_log;
|
SET @old_general_log= @@global.general_log;
|
||||||
|
SET @old_slow_query_log= @@global.slow_query_log;
|
||||||
|
|
||||||
# We run with different binaries for normal and --embedded-server
|
# We run with different binaries for normal and --embedded-server
|
||||||
#
|
#
|
||||||
@ -17,3 +18,4 @@ SET @old_general_log= @@global.general_log;
|
|||||||
echo ok;
|
echo ok;
|
||||||
|
|
||||||
SET @@global.general_log= @old_general_log;
|
SET @@global.general_log= @old_general_log;
|
||||||
|
SET @@global.slow_query_log= @old_slow_query_log;
|
||||||
|
@ -839,7 +839,7 @@ static bool insert_params(Prepared_statement *stmt, uchar *null_array,
|
|||||||
type (the types are supplied at execute). Check that the
|
type (the types are supplied at execute). Check that the
|
||||||
supplied type of placeholder can accept a data stream.
|
supplied type of placeholder can accept a data stream.
|
||||||
*/
|
*/
|
||||||
else if (is_param_long_data_type(param))
|
else if (! is_param_long_data_type(param))
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
if (param->convert_str_value(stmt->thd))
|
if (param->convert_str_value(stmt->thd))
|
||||||
DBUG_RETURN(1); /* out of memory */
|
DBUG_RETURN(1); /* out of memory */
|
||||||
|
@ -13246,37 +13246,52 @@ static void test_bug15518()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void disable_general_log()
|
static void disable_query_logs()
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
rc= mysql_query(mysql, "set @@global.general_log=off");
|
rc= mysql_query(mysql, "set @@global.general_log=off");
|
||||||
myquery(rc);
|
myquery(rc);
|
||||||
|
rc= mysql_query(mysql, "set @@global.slow_query_log=off");
|
||||||
|
myquery(rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void enable_general_log(int truncate)
|
static void enable_query_logs(int truncate)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
rc= mysql_query(mysql, "set @save_global_general_log=@@global.general_log");
|
rc= mysql_query(mysql, "set @save_global_general_log=@@global.general_log");
|
||||||
myquery(rc);
|
myquery(rc);
|
||||||
|
|
||||||
|
rc= mysql_query(mysql, "set @save_global_slow_query_log=@@global.slow_query_log");
|
||||||
|
myquery(rc);
|
||||||
|
|
||||||
rc= mysql_query(mysql, "set @@global.general_log=on");
|
rc= mysql_query(mysql, "set @@global.general_log=on");
|
||||||
myquery(rc);
|
myquery(rc);
|
||||||
|
|
||||||
|
rc= mysql_query(mysql, "set @@global.slow_query_log=on");
|
||||||
|
myquery(rc);
|
||||||
|
|
||||||
|
|
||||||
if (truncate)
|
if (truncate)
|
||||||
{
|
{
|
||||||
rc= mysql_query(mysql, "truncate mysql.general_log");
|
rc= mysql_query(mysql, "truncate mysql.general_log");
|
||||||
myquery(rc);
|
myquery(rc);
|
||||||
|
|
||||||
|
rc= mysql_query(mysql, "truncate mysql.slow_log");
|
||||||
|
myquery(rc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void restore_general_log()
|
static void restore_query_logs()
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
rc= mysql_query(mysql, "set @@global.general_log=@save_global_general_log");
|
rc= mysql_query(mysql, "set @@global.general_log=@save_global_general_log");
|
||||||
myquery(rc);
|
myquery(rc);
|
||||||
|
|
||||||
|
rc= mysql_query(mysql, "set @@global.slow_query_log=@save_global_slow_query_log");
|
||||||
|
myquery(rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -15447,7 +15462,7 @@ static void test_bug17667()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
enable_general_log(1);
|
enable_query_logs(1);
|
||||||
|
|
||||||
for (statement_cursor= statements; statement_cursor->buffer != NULL;
|
for (statement_cursor= statements; statement_cursor->buffer != NULL;
|
||||||
statement_cursor++)
|
statement_cursor++)
|
||||||
@ -15527,7 +15542,7 @@ static void test_bug17667()
|
|||||||
statement_cursor->buffer);
|
statement_cursor->buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
restore_general_log();
|
restore_query_logs();
|
||||||
|
|
||||||
if (!opt_silent)
|
if (!opt_silent)
|
||||||
printf("success. All queries found intact in the log.\n");
|
printf("success. All queries found intact in the log.\n");
|
||||||
@ -17390,7 +17405,7 @@ static void test_bug28386()
|
|||||||
}
|
}
|
||||||
mysql_free_result(result);
|
mysql_free_result(result);
|
||||||
|
|
||||||
enable_general_log(1);
|
enable_query_logs(1);
|
||||||
|
|
||||||
stmt= mysql_simple_prepare(mysql, "SELECT ?");
|
stmt= mysql_simple_prepare(mysql, "SELECT ?");
|
||||||
check_stmt(stmt);
|
check_stmt(stmt);
|
||||||
@ -17429,7 +17444,7 @@ static void test_bug28386()
|
|||||||
|
|
||||||
mysql_free_result(result);
|
mysql_free_result(result);
|
||||||
|
|
||||||
restore_general_log();
|
restore_query_logs();
|
||||||
|
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
@ -18215,7 +18230,7 @@ static void test_bug42373()
|
|||||||
Bug#54041: MySQL 5.0.92 fails when tests from Connector/C suite run
|
Bug#54041: MySQL 5.0.92 fails when tests from Connector/C suite run
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void test_bug54041()
|
static void test_bug54041_impl()
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
MYSQL_STMT *stmt;
|
MYSQL_STMT *stmt;
|
||||||
@ -18230,7 +18245,7 @@ static void test_bug54041()
|
|||||||
rc= mysql_query(mysql, "CREATE TABLE t1 (a INT)");
|
rc= mysql_query(mysql, "CREATE TABLE t1 (a INT)");
|
||||||
myquery(rc);
|
myquery(rc);
|
||||||
|
|
||||||
stmt= mysql_simple_prepare(mysql, "INSERT INTO t1 (a) VALUES (?)");
|
stmt= mysql_simple_prepare(mysql, "SELECT a FROM t1 WHERE a > ?");
|
||||||
check_stmt(stmt);
|
check_stmt(stmt);
|
||||||
verify_param_count(stmt, 1);
|
verify_param_count(stmt, 1);
|
||||||
|
|
||||||
@ -18268,6 +18283,20 @@ static void test_bug54041()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Bug#54041: MySQL 5.0.92 fails when tests from Connector/C suite run
|
||||||
|
*/
|
||||||
|
|
||||||
|
static void test_bug54041()
|
||||||
|
{
|
||||||
|
enable_query_logs(0);
|
||||||
|
test_bug54041_impl();
|
||||||
|
disable_query_logs();
|
||||||
|
test_bug54041_impl();
|
||||||
|
restore_query_logs();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Read and parse arguments and MySQL options from my.cnf
|
Read and parse arguments and MySQL options from my.cnf
|
||||||
*/
|
*/
|
||||||
@ -18348,7 +18377,7 @@ and you are welcome to modify and redistribute it under the GPL license\n");
|
|||||||
|
|
||||||
|
|
||||||
static struct my_tests_st my_tests[]= {
|
static struct my_tests_st my_tests[]= {
|
||||||
{ "disable_general_log", disable_general_log },
|
{ "disable_query_logs", disable_query_logs },
|
||||||
{ "test_view_sp_list_fields", test_view_sp_list_fields },
|
{ "test_view_sp_list_fields", test_view_sp_list_fields },
|
||||||
{ "client_query", client_query },
|
{ "client_query", client_query },
|
||||||
{ "test_prepare_insert_update", test_prepare_insert_update},
|
{ "test_prepare_insert_update", test_prepare_insert_update},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user