From: Date: July 19 2005 5:31pm Subject: bk commit into 4.1 tree (georg:1.2367) BUG#12001 List-Archive: http://lists.mysql.com/internals/27305 X-Bug: 12001 Message-Id: <20050719153125.1DDA917D0BB@lmy002.wdf.sap.corp> Below is the list of changes that have just been committed into a local 4.1 repository of georg. When georg does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet 1.2367 05/07/19 17:31:18 georg@stripped +2 -0 fix for bug#12001 tests/mysql_client_test.c 1.155 05/07/19 17:31:13 georg@stripped +44 -0 testcase for bug #12001 sql-common/client.c 1.85 05/07/19 17:31:13 georg@stripped +1 -1 fixed wrong offset # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: georg # Host: lmy002.wdf.sap.corp # Root: /home/georg/work/mysql/prod/mysql-4.1 --- 1.84/sql-common/client.c 2005-04-05 03:26:38 +02:00 +++ 1.85/sql-common/client.c 2005-07-19 17:31:13 +02:00 @@ -755,7 +755,7 @@ { if (protocol_41(mysql)) { - char *pos= (char*) mysql->net.read_pos; + char *pos= (char*) mysql->net.read_pos + 1; mysql->warning_count=uint2korr(pos); pos+=2; mysql->server_status=uint2korr(pos); pos+=2; } --- 1.154/tests/mysql_client_test.c 2005-07-15 14:14:55 +02:00 +++ 1.155/tests/mysql_client_test.c 2005-07-19 17:31:13 +02:00 @@ -11751,6 +11751,49 @@ myquery(rc); } +static void test_bug12001() +{ + MYSQL *mysql_local; + MYSQL_RES *result; + const char *query = "DROP TABLE IF EXISTS test_table;" + "CREATE TABLE test_table(id INT);" + "INSERT INTO test_table VALUES(10);" + "UPDATE test_table SET id=20 WHERE id=10;" + "SELECT * FROM test_table;" + "INSERT INTO non_existent_table VALUES(11);"; + int rc, res; + + myheader("test_bug12001"); + + if (!(mysql_local= mysql_init(NULL))) + { + fprintf(stdout, "\n mysql_init() failed"); + exit(1); + } + + /* Create connection that supports multi statements */ + if (!mysql_real_connect(mysql_local, opt_host, opt_user, + opt_password, current_db, opt_port, + opt_unix_socket, CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS)) { + fprintf(stdout, "\n mysql_real_connect() failed"); + exit(1); + } + + rc = mysql_query(mysql_local, query); + myquery(rc); + + do { + if (mysql_field_count(mysql_local) && (result = mysql_use_result(mysql_local))) { + mysql_free_result(result); + } + } while (!(res = mysql_next_result(mysql_local))); + + rc = mysql_query(mysql_local, "DROP TABLE IF EXISTS test_table"); + myquery(rc); + + mysql_close(mysql_local); + DIE_UNLESS(res==1); +} /* Read and parse arguments and MySQL options from my.cnf @@ -11968,6 +12011,7 @@ { "test_bug8378", test_bug8378 }, { "test_bug9735", test_bug9735 }, { "test_bug11183", test_bug11183 }, + { "test_bug12001", test_bug12001 }, { 0, 0 } };