Commit 0aef90d6 authored by Sergey Vojtovich's avatar Sergey Vojtovich

Merge spider fixes.

parents 094b01d4 69a7022d
...@@ -245,7 +245,7 @@ a b c ...@@ -245,7 +245,7 @@ a b c
direct order limit direct order limit
SHOW STATUS LIKE 'Spider_direct_order_limit'; SHOW STATUS LIKE 'Spider_direct_order_limit';
Variable_name Value 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; SELECT a, b, c FROM ta_l_int ORDER BY a LIMIT 3;
a b c a b c
1 2 4 1 2 4
...@@ -253,7 +253,7 @@ a b c ...@@ -253,7 +253,7 @@ a b c
3 4 5 3 4 5
SHOW STATUS LIKE 'Spider_direct_order_limit'; SHOW STATUS LIKE 'Spider_direct_order_limit';
Variable_name Value Variable_name Value
Spider_direct_order_limit 3 Spider_direct_order_limit 0
2.26 2.26
lock tables lock tables
...@@ -297,83 +297,79 @@ PRIMARY KEY (id) ...@@ -297,83 +297,79 @@ PRIMARY KEY (id)
INSERT INTO t1 () VALUES (); INSERT INTO t1 () VALUES ();
SELECT LAST_INSERT_ID(); SELECT LAST_INSERT_ID();
LAST_INSERT_ID() LAST_INSERT_ID()
2 777
SELECT MAX(id) FROM t1; SELECT MAX(id) FROM t1;
MAX(id) MAX(id)
2 777
INSERT INTO t1 () VALUES (); INSERT INTO t1 () VALUES ();
SELECT LAST_INSERT_ID(); SELECT LAST_INSERT_ID();
LAST_INSERT_ID() LAST_INSERT_ID()
6 1554
SELECT MAX(id) FROM t1; SELECT MAX(id) FROM t1;
MAX(id) MAX(id)
6 1554
INSERT INTO t1 (id) VALUES (null); INSERT INTO t1 (id) VALUES (null);
SELECT LAST_INSERT_ID(); SELECT LAST_INSERT_ID();
LAST_INSERT_ID() LAST_INSERT_ID()
10 2331
SELECT MAX(id) FROM t1; SELECT MAX(id) FROM t1;
MAX(id) MAX(id)
10 2331
INSERT INTO t1 (id) VALUES (null); INSERT INTO t1 (id) VALUES (null);
SELECT LAST_INSERT_ID(); SELECT LAST_INSERT_ID();
LAST_INSERT_ID() LAST_INSERT_ID()
14 3108
SELECT MAX(id) FROM t1; SELECT MAX(id) FROM t1;
MAX(id) MAX(id)
14 3108
INSERT INTO t1 () VALUES (),(),(),(); 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(); SELECT LAST_INSERT_ID();
LAST_INSERT_ID() LAST_INSERT_ID()
18 3885
SELECT id FROM t1 ORDER BY id; SELECT id FROM t1 ORDER BY id;
id id
2 777
6 1554
10 2331
14 3108
18 3885
22 4662
26 5439
30 6216
SET INSERT_ID=5000; SET INSERT_ID=5000;
INSERT INTO t1 () VALUES (); INSERT INTO t1 () VALUES ();
SELECT LAST_INSERT_ID(); SELECT LAST_INSERT_ID();
LAST_INSERT_ID() LAST_INSERT_ID()
34 5000
SELECT MAX(id) FROM t1; SELECT MAX(id) FROM t1;
MAX(id) MAX(id)
34 6216
INSERT INTO t1 (id) VALUES (10000); INSERT INTO t1 (id) VALUES (10000);
SELECT LAST_INSERT_ID(); SELECT LAST_INSERT_ID();
LAST_INSERT_ID() LAST_INSERT_ID()
38 5000
SELECT MAX(id) FROM t1; SELECT MAX(id) FROM t1;
MAX(id) MAX(id)
38 10000
INSERT INTO t1 (id) VALUES (1000); INSERT INTO t1 (id) VALUES (1000);
SELECT LAST_INSERT_ID(); SELECT LAST_INSERT_ID();
LAST_INSERT_ID() LAST_INSERT_ID()
42 5000
SELECT MAX(id) FROM t1; SELECT MAX(id) FROM t1;
MAX(id) MAX(id)
42 10000
SELECT id FROM t1 ORDER BY id; SELECT id FROM t1 ORDER BY id;
id id
2
6
10
14
18
34
777 777
1000 1000
1554 1554
2331 2331
3108
3885
4662
5000
5439
6216
10000 10000
read only read only
...@@ -384,22 +380,22 @@ PRIMARY KEY (id) ...@@ -384,22 +380,22 @@ PRIMARY KEY (id)
) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_READONLY1_1 ) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_READONLY1_1
SELECT id FROM t1 ORDER BY id; SELECT id FROM t1 ORDER BY id;
id id
2 777
6 1000
10 1554
14 2331
18 3108
22 3885
26 4662
30 5000
34 5439
38 6216
42 10000
INSERT INTO t1 (id) VALUES (1); INSERT INTO t1 (id) VALUES (1);
ERROR HY000: Table 'auto_test_local.t1' is read only 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 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 ERROR HY000: Table 'auto_test_local.t1' is read only
DELETE FROM t1; DELETE FROM t1;
ERROR HY000: Table 'auto_test_local.t1' is read only 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 ...@@ -424,7 +420,6 @@ Error 1146 Table 'auto_test_remote.ter1_1' doesn't exist
DELETE FROM t1; DELETE FROM t1;
Warnings: 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 12702 Remote table 'auto_test_remote.ter1_1' is not found
Error 1146 Table 'auto_test_remote.ter1_1' doesn't exist Error 1146 Table 'auto_test_remote.ter1_1' doesn't exist
TRUNCATE t1; TRUNCATE t1;
Warnings: Warnings:
......
...@@ -46,6 +46,7 @@ ...@@ -46,6 +46,7 @@
#include "spd_table.h" #include "spd_table.h"
extern struct charset_info_st *spd_charset_utf8_bin; extern struct charset_info_st *spd_charset_utf8_bin;
extern bool volatile *spd_abort_loop;
extern handlerton *spider_hton_ptr; extern handlerton *spider_hton_ptr;
extern pthread_mutex_t spider_open_conn_mutex; extern pthread_mutex_t spider_open_conn_mutex;
...@@ -1504,10 +1505,10 @@ int spider_db_mysql::connect( ...@@ -1504,10 +1505,10 @@ int spider_db_mysql::connect(
DBUG_PRINT("info",("spider thd->killed=%s", DBUG_PRINT("info",("spider thd->killed=%s",
thd ? (thd->killed ? "TRUE" : "FALSE") : "NULL")); thd ? (thd->killed ? "TRUE" : "FALSE") : "NULL"));
DBUG_PRINT("info",("spider abort_loop=%s", DBUG_PRINT("info",("spider abort_loop=%s",
abort_loop ? "TRUE" : "FALSE")); *spd_abort_loop ? "TRUE" : "FALSE"));
if ( if (
(thd && thd->killed) || (thd && thd->killed) ||
abort_loop *spd_abort_loop
) { ) {
DBUG_RETURN(ER_SPIDER_COND_SKIP_NUM); DBUG_RETURN(ER_SPIDER_COND_SKIP_NUM);
} }
...@@ -1581,10 +1582,10 @@ int spider_db_mysql::connect( ...@@ -1581,10 +1582,10 @@ int spider_db_mysql::connect(
DBUG_PRINT("info",("spider thd->killed=%s", DBUG_PRINT("info",("spider thd->killed=%s",
thd ? (thd->killed ? "TRUE" : "FALSE") : "NULL")); thd ? (thd->killed ? "TRUE" : "FALSE") : "NULL"));
DBUG_PRINT("info",("spider abort_loop=%s", DBUG_PRINT("info",("spider abort_loop=%s",
abort_loop ? "TRUE" : "FALSE")); *spd_abort_loop ? "TRUE" : "FALSE"));
if ( if (
(thd && thd->killed) || (thd && thd->killed) ||
abort_loop *spd_abort_loop
) { ) {
DBUG_RETURN(ER_SPIDER_COND_SKIP_NUM); DBUG_RETURN(ER_SPIDER_COND_SKIP_NUM);
} }
......
...@@ -40,6 +40,8 @@ ...@@ -40,6 +40,8 @@
#include "spd_udf.h" #include "spd_udf.h"
#include "spd_malloc.h" #include "spd_malloc.h"
extern bool volatile *spd_abort_loop;
extern handlerton *spider_hton_ptr; extern handlerton *spider_hton_ptr;
#ifdef HAVE_PSI_INTERFACE #ifdef HAVE_PSI_INTERFACE
...@@ -1276,10 +1278,10 @@ int spider_ping_table_mon_from_table( ...@@ -1276,10 +1278,10 @@ int spider_ping_table_mon_from_table(
DBUG_PRINT("info",("spider thd->killed=%s", DBUG_PRINT("info",("spider thd->killed=%s",
thd ? (thd->killed ? "TRUE" : "FALSE") : "NULL")); thd ? (thd->killed ? "TRUE" : "FALSE") : "NULL"));
DBUG_PRINT("info",("spider abort_loop=%s", DBUG_PRINT("info",("spider abort_loop=%s",
abort_loop ? "TRUE" : "FALSE")); *spd_abort_loop ? "TRUE" : "FALSE"));
if ( if (
(thd && thd->killed) || (thd && thd->killed) ||
abort_loop *spd_abort_loop
) { ) {
DBUG_RETURN(ER_SPIDER_COND_SKIP_NUM); DBUG_RETURN(ER_SPIDER_COND_SKIP_NUM);
} }
...@@ -1338,10 +1340,10 @@ int spider_ping_table_mon_from_table( ...@@ -1338,10 +1340,10 @@ int spider_ping_table_mon_from_table(
DBUG_PRINT("info",("spider thd->killed=%s", DBUG_PRINT("info",("spider thd->killed=%s",
thd ? (thd->killed ? "TRUE" : "FALSE") : "NULL")); thd ? (thd->killed ? "TRUE" : "FALSE") : "NULL"));
DBUG_PRINT("info",("spider abort_loop=%s", DBUG_PRINT("info",("spider abort_loop=%s",
abort_loop ? "TRUE" : "FALSE")); *spd_abort_loop ? "TRUE" : "FALSE"));
if ( if (
(thd && thd->killed) || (thd && thd->killed) ||
abort_loop *spd_abort_loop
) { ) {
error_num = ER_SPIDER_COND_SKIP_NUM; error_num = ER_SPIDER_COND_SKIP_NUM;
break; break;
...@@ -1449,10 +1451,10 @@ int spider_ping_table_mon_from_table( ...@@ -1449,10 +1451,10 @@ int spider_ping_table_mon_from_table(
DBUG_PRINT("info",("spider thd->killed=%s", DBUG_PRINT("info",("spider thd->killed=%s",
thd ? (thd->killed ? "TRUE" : "FALSE") : "NULL")); thd ? (thd->killed ? "TRUE" : "FALSE") : "NULL"));
DBUG_PRINT("info",("spider abort_loop=%s", DBUG_PRINT("info",("spider abort_loop=%s",
abort_loop ? "TRUE" : "FALSE")); *spd_abort_loop ? "TRUE" : "FALSE"));
if ( if (
(thd && thd->killed) || (thd && thd->killed) ||
abort_loop *spd_abort_loop
) { ) {
error_num = ER_SPIDER_COND_SKIP_NUM; error_num = ER_SPIDER_COND_SKIP_NUM;
} else { } else {
......
...@@ -51,6 +51,7 @@ HASH *spd_db_att_xid_cache; ...@@ -51,6 +51,7 @@ HASH *spd_db_att_xid_cache;
struct charset_info_st *spd_charset_utf8_bin; struct charset_info_st *spd_charset_utf8_bin;
const char **spd_defaults_extra_file; const char **spd_defaults_extra_file;
const char **spd_defaults_file; const char **spd_defaults_file;
bool volatile *spd_abort_loop;
handlerton *spider_hton_ptr; handlerton *spider_hton_ptr;
SPIDER_DBTON spider_dbton[SPIDER_DBTON_SIZE]; SPIDER_DBTON spider_dbton[SPIDER_DBTON_SIZE];
...@@ -6215,6 +6216,8 @@ int spider_db_init( ...@@ -6215,6 +6216,8 @@ int spider_db_init(
GetProcAddress(current_module, "my_defaults_extra_file"); GetProcAddress(current_module, "my_defaults_extra_file");
spd_defaults_file = (const char **) spd_defaults_file = (const char **)
GetProcAddress(current_module, "my_defaults_file"); GetProcAddress(current_module, "my_defaults_file");
spd_abort_loop = (bool volatile *)
GetProcAddress(current_module, "?abort_loop@@3_NC");
#else #else
spd_db_att_thread_id = &thread_id; spd_db_att_thread_id = &thread_id;
#ifdef XID_CACHE_IS_SPLITTED #ifdef XID_CACHE_IS_SPLITTED
...@@ -6228,6 +6231,7 @@ int spider_db_init( ...@@ -6228,6 +6231,7 @@ int spider_db_init(
spd_charset_utf8_bin = &my_charset_utf8_bin; spd_charset_utf8_bin = &my_charset_utf8_bin;
spd_defaults_extra_file = &my_defaults_extra_file; spd_defaults_extra_file = &my_defaults_extra_file;
spd_defaults_file = &my_defaults_file; spd_defaults_file = &my_defaults_file;
spd_abort_loop = &abort_loop;
#endif #endif
#ifdef HAVE_PSI_INTERFACE #ifdef HAVE_PSI_INTERFACE
......
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