mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
Merge spider fixes.
This commit is contained in:
commit
0aef90d65e
5 changed files with 61 additions and 60 deletions
|
@ -1 +0,0 @@
|
||||||
spider_fixes: MDEV-6320
|
|
|
@ -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
|
||||||
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)
|
||||||
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)
|
||||||
) 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
|
||||||
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 @@
|
||||||
#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(
|
||||||
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(
|
||||||
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 @@
|
||||||
#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(
|
||||||
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(
|
||||||
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(
|
||||||
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;
|
||||||
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(
|
||||||
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(
|
||||||
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
|
||||||
|
|
Loading…
Reference in a new issue