Commit a96c2a1f authored by smenon's avatar smenon

Backport into mysql-5.1.49sp1-release

> ------------------------------------------------------------
> revno: 3452.1.12
> revision-id: davi.arnaut@oracle.com-20100730121710-sc068t4d2f1c2gi9
> parent: dao-gang.qu@sun.com-20100730035934-8in8err1b1rqu72y
> committer: Davi Arnaut <davi.arnaut@oracle.com>
> branch nick: mysql-5.1-bugteam
> timestamp: Fri 2010-07-30 09:17:10 -0300
> message:
>   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).
parent 73b0f629
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 @@ ...@@ -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; ...@@ -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;
...@@ -790,7 +790,7 @@ static bool insert_params_with_log(Prepared_statement *stmt, uchar *null_array, ...@@ -790,7 +790,7 @@ static bool insert_params_with_log(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);
res= param->query_val_str(&str); res= param->query_val_str(&str);
if (param->convert_str_value(thd)) if (param->convert_str_value(thd))
...@@ -836,7 +836,7 @@ static bool insert_params(Prepared_statement *stmt, uchar *null_array, ...@@ -836,7 +836,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() ...@@ -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() ...@@ -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() ...@@ -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() ...@@ -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() ...@@ -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() ...@@ -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() ...@@ -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() ...@@ -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"); ...@@ -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},
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment