From de4441619c97b72319187dadd3fe4e7707afba41 Mon Sep 17 00:00:00 2001 From: Kentoku SHIBA Date: Tue, 10 Jun 2014 02:25:58 +0900 Subject: [PATCH 1/2] fix for Spider build error by abort_loop on windows --- storage/spider/spd_db_mysql.cc | 9 +++++---- storage/spider/spd_ping_table.cc | 14 ++++++++------ storage/spider/spd_table.cc | 4 ++++ 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/storage/spider/spd_db_mysql.cc b/storage/spider/spd_db_mysql.cc index 4307ac1d8ca..76c89d4138a 100644 --- a/storage/spider/spd_db_mysql.cc +++ b/storage/spider/spd_db_mysql.cc @@ -46,6 +46,7 @@ #include "spd_table.h" extern struct charset_info_st *spd_charset_utf8_bin; +extern bool volatile *spd_abort_loop; extern handlerton *spider_hton_ptr; extern pthread_mutex_t spider_open_conn_mutex; @@ -1504,10 +1505,10 @@ int spider_db_mysql::connect( DBUG_PRINT("info",("spider thd->killed=%s", thd ? (thd->killed ? "TRUE" : "FALSE") : "NULL")); DBUG_PRINT("info",("spider abort_loop=%s", - abort_loop ? "TRUE" : "FALSE")); + *spd_abort_loop ? "TRUE" : "FALSE")); if ( (thd && thd->killed) || - abort_loop + *spd_abort_loop ) { DBUG_RETURN(ER_SPIDER_COND_SKIP_NUM); } @@ -1581,10 +1582,10 @@ int spider_db_mysql::connect( DBUG_PRINT("info",("spider thd->killed=%s", thd ? (thd->killed ? "TRUE" : "FALSE") : "NULL")); DBUG_PRINT("info",("spider abort_loop=%s", - abort_loop ? "TRUE" : "FALSE")); + *spd_abort_loop ? "TRUE" : "FALSE")); if ( (thd && thd->killed) || - abort_loop + *spd_abort_loop ) { DBUG_RETURN(ER_SPIDER_COND_SKIP_NUM); } diff --git a/storage/spider/spd_ping_table.cc b/storage/spider/spd_ping_table.cc index 7818f6beab5..d32dbec2421 100644 --- a/storage/spider/spd_ping_table.cc +++ b/storage/spider/spd_ping_table.cc @@ -40,6 +40,8 @@ #include "spd_udf.h" #include "spd_malloc.h" +extern bool volatile *spd_abort_loop; + extern handlerton *spider_hton_ptr; #ifdef HAVE_PSI_INTERFACE @@ -1276,10 +1278,10 @@ int spider_ping_table_mon_from_table( DBUG_PRINT("info",("spider thd->killed=%s", thd ? (thd->killed ? "TRUE" : "FALSE") : "NULL")); DBUG_PRINT("info",("spider abort_loop=%s", - abort_loop ? "TRUE" : "FALSE")); + *spd_abort_loop ? "TRUE" : "FALSE")); if ( (thd && thd->killed) || - abort_loop + *spd_abort_loop ) { DBUG_RETURN(ER_SPIDER_COND_SKIP_NUM); } @@ -1338,10 +1340,10 @@ int spider_ping_table_mon_from_table( DBUG_PRINT("info",("spider thd->killed=%s", thd ? (thd->killed ? "TRUE" : "FALSE") : "NULL")); DBUG_PRINT("info",("spider abort_loop=%s", - abort_loop ? "TRUE" : "FALSE")); + *spd_abort_loop ? "TRUE" : "FALSE")); if ( (thd && thd->killed) || - abort_loop + *spd_abort_loop ) { error_num = ER_SPIDER_COND_SKIP_NUM; break; @@ -1449,10 +1451,10 @@ int spider_ping_table_mon_from_table( DBUG_PRINT("info",("spider thd->killed=%s", thd ? (thd->killed ? "TRUE" : "FALSE") : "NULL")); DBUG_PRINT("info",("spider abort_loop=%s", - abort_loop ? "TRUE" : "FALSE")); + *spd_abort_loop ? "TRUE" : "FALSE")); if ( (thd && thd->killed) || - abort_loop + *spd_abort_loop ) { error_num = ER_SPIDER_COND_SKIP_NUM; } else { diff --git a/storage/spider/spd_table.cc b/storage/spider/spd_table.cc index 985251d35f8..2eb852e61a8 100644 --- a/storage/spider/spd_table.cc +++ b/storage/spider/spd_table.cc @@ -51,6 +51,7 @@ HASH *spd_db_att_xid_cache; struct charset_info_st *spd_charset_utf8_bin; const char **spd_defaults_extra_file; const char **spd_defaults_file; +bool volatile *spd_abort_loop; handlerton *spider_hton_ptr; SPIDER_DBTON spider_dbton[SPIDER_DBTON_SIZE]; @@ -6215,6 +6216,8 @@ int spider_db_init( GetProcAddress(current_module, "my_defaults_extra_file"); spd_defaults_file = (const char **) GetProcAddress(current_module, "my_defaults_file"); + spd_abort_loop = (bool volatile *) + GetProcAddress(current_module, "?abort_loop@@3_NC"); #else spd_db_att_thread_id = &thread_id; #ifdef XID_CACHE_IS_SPLITTED @@ -6228,6 +6231,7 @@ int spider_db_init( spd_charset_utf8_bin = &my_charset_utf8_bin; spd_defaults_extra_file = &my_defaults_extra_file; spd_defaults_file = &my_defaults_file; + spd_abort_loop = &abort_loop; #endif #ifdef HAVE_PSI_INTERFACE From 69a7022d596be53d040462393110d8ad852141d9 Mon Sep 17 00:00:00 2001 From: Kentoku SHIBA Date: Tue, 10 Jun 2014 02:50:33 +0900 Subject: [PATCH 2/2] fix wrong result for Spider test --- .../mysql-test/spider/r/spider_fixes.result | 93 +++++++++---------- 1 file changed, 44 insertions(+), 49 deletions(-) diff --git a/storage/spider/mysql-test/spider/r/spider_fixes.result b/storage/spider/mysql-test/spider/r/spider_fixes.result index c4100a5d046..6db61fa93d2 100644 --- a/storage/spider/mysql-test/spider/r/spider_fixes.result +++ b/storage/spider/mysql-test/spider/r/spider_fixes.result @@ -245,7 +245,7 @@ a b c direct order limit SHOW STATUS LIKE 'Spider_direct_order_limit'; Variable_name Value -Spider_direct_order_limit 2 +Spider_direct_order_limit 0 SELECT a, b, c FROM ta_l_int ORDER BY a LIMIT 3; a b c 1 2 4 @@ -253,7 +253,7 @@ a b c 3 4 5 SHOW STATUS LIKE 'Spider_direct_order_limit'; Variable_name Value -Spider_direct_order_limit 3 +Spider_direct_order_limit 0 2.26 lock tables @@ -297,83 +297,79 @@ PRIMARY KEY (id) INSERT INTO t1 () VALUES (); SELECT LAST_INSERT_ID(); LAST_INSERT_ID() -2 +777 SELECT MAX(id) FROM t1; MAX(id) -2 +777 INSERT INTO t1 () VALUES (); SELECT LAST_INSERT_ID(); LAST_INSERT_ID() -6 +1554 SELECT MAX(id) FROM t1; MAX(id) -6 +1554 INSERT INTO t1 (id) VALUES (null); SELECT LAST_INSERT_ID(); LAST_INSERT_ID() -10 +2331 SELECT MAX(id) FROM t1; MAX(id) -10 +2331 INSERT INTO t1 (id) VALUES (null); SELECT LAST_INSERT_ID(); LAST_INSERT_ID() -14 +3108 SELECT MAX(id) FROM t1; MAX(id) -14 +3108 INSERT INTO t1 () VALUES (),(),(),(); -Warnings: -Note 12520 Binlog's auto-inc value is probably different from linked table's auto-inc value -Note 12520 Binlog's auto-inc value is probably different from linked table's auto-inc value -Note 12520 Binlog's auto-inc value is probably different from linked table's auto-inc value SELECT LAST_INSERT_ID(); LAST_INSERT_ID() -18 +3885 SELECT id FROM t1 ORDER BY id; id -2 -6 -10 -14 -18 -22 -26 -30 +777 +1554 +2331 +3108 +3885 +4662 +5439 +6216 SET INSERT_ID=5000; INSERT INTO t1 () VALUES (); SELECT LAST_INSERT_ID(); LAST_INSERT_ID() -34 +5000 SELECT MAX(id) FROM t1; MAX(id) -34 +6216 INSERT INTO t1 (id) VALUES (10000); SELECT LAST_INSERT_ID(); LAST_INSERT_ID() -38 +5000 SELECT MAX(id) FROM t1; MAX(id) -38 +10000 INSERT INTO t1 (id) VALUES (1000); SELECT LAST_INSERT_ID(); LAST_INSERT_ID() -42 +5000 SELECT MAX(id) FROM t1; MAX(id) -42 +10000 SELECT id FROM t1 ORDER BY id; id -2 -6 -10 -14 -18 -34 777 1000 1554 2331 +3108 +3885 +4662 +5000 +5439 +6216 10000 read only @@ -384,22 +380,22 @@ PRIMARY KEY (id) ) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_READONLY1_1 SELECT id FROM t1 ORDER BY id; id -2 -6 -10 -14 -18 -22 -26 -30 -34 -38 -42 +777 +1000 +1554 +2331 +3108 +3885 +4662 +5000 +5439 +6216 +10000 INSERT INTO t1 (id) VALUES (1); ERROR HY000: Table 'auto_test_local.t1' is read only -UPDATE t1 SET id = 4 WHERE id = 2; +UPDATE t1 SET id = 4 WHERE id = 777; ERROR HY000: Table 'auto_test_local.t1' is read only -DELETE FROM t1 WHERE id = 2; +DELETE FROM t1 WHERE id = 777; ERROR HY000: Table 'auto_test_local.t1' is read only DELETE FROM t1; ERROR HY000: Table 'auto_test_local.t1' is read only @@ -424,7 +420,6 @@ Error 1146 Table 'auto_test_remote.ter1_1' doesn't exist DELETE FROM t1; Warnings: Error 12702 Remote table 'auto_test_remote.ter1_1' is not found -Error 12702 Remote table 'auto_test_remote.ter1_1' is not found Error 1146 Table 'auto_test_remote.ter1_1' doesn't exist TRUNCATE t1; Warnings: