Hi, Oleksandr! On Apr 09, Oleksandr Byelkin wrote:
09.04.2013 13:38, Sergei Golubchik пишет:
=== modified file 'sql/sql_prepare.cc' --- a/sql/sql_prepare.cc 2012-11-06 09:52:55 +0000 +++ b/sql/sql_prepare.cc 2013-04-09 06:58:51 +0000 @@ -787,7 +787,7 @@ static bool insert_params_with_log(Prepa if (param->state == Item_param::NO_VALUE) DBUG_RETURN(1);
- if (param->limit_clause_param && param->item_type != Item::INT_ITEM) + if (param->limit_clause_param) This looks wrong. Why do you need to convert INT_ITEM to INT_ITEM ? Because it is not INT Item, it is Item with INT cache (which could be left from previous run). When we assign value from variable we have exactly the same code (see item.cc).
I know that in your bug it's not an INT_ITEM. May be this exactly is a problem? When the param->item_type is not updated correctly for string parameters?
=== modified file 'tests/mysql_client_test.c' --- a/tests/mysql_client_test.c 2013-04-06 19:29:12 +0000 +++ b/tests/mysql_client_test.c 2013-04-09 06:58:51 +0000 @@ -16750,7 +16750,11 @@ static void test_bug43560(void) fprintf(stdout, "Skipping test_bug43560: server not DEBUG version\n"); DBUG_VOID_RETURN; } - + if (opt_unix_socket) + { + fprintf(stdout, "Skipping test_bug43560: connected via UNIX socket\n"); + DBUG_VOID_RETURN; + } Why is that? There's nothing in the bug depends on how the client is connected. they require TCP connection (see following comment). I am not sure that it is ok to change connection type in the test, so I make it skipped on unix socket (otherwise it just fails on connection).
Ah, it's not your bug. Okay. Regards, Sergei