summaryrefslogtreecommitdiff
path: root/storage/spider/mysql-test
diff options
context:
space:
mode:
authorKentoku SHIBA <kentokushiba@gmail.com>2020-03-22 10:51:41 +0900
committerOleksandr Byelkin <sanja@mariadb.com>2020-09-03 10:19:25 +0200
commitb4ffe6eabfffea04896b7c69fb8d3af55c4a2f53 (patch)
tree5c2b8ce55cb11ad76c4c26325c8e57d2a40af78f /storage/spider/mysql-test
parente4680d0de35717563f18de4d084ae7bc0d685d78 (diff)
downloadmariadb-git-b4ffe6eabfffea04896b7c69fb8d3af55c4a2f53.tar.gz
MENT-30 Spider to support ODBC data sources
add odbc_mariadb feature
Diffstat (limited to 'storage/spider/mysql-test')
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child2_1.inc0
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child2_2.inc0
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child2_3.inc0
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child3_1.inc3
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child3_2.inc3
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child3_3.inc3
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_master_1.inc2
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_slave1_1.inc0
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child2_1.inc0
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child2_2.inc0
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child2_3.inc0
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child3_1.inc1
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child3_2.inc1
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child3_3.inc1
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_master_1.inc0
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child2_1.inc8
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child2_2.inc4
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child2_3.inc4
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child3_1.inc133
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child3_2.inc133
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child3_3.inc133
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_master_1.inc81
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/hs_deinit_child2_1.inc0
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/hs_deinit_child2_2.inc0
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/hs_deinit_child2_3.inc0
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/hs_deinit_master_1.inc0
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/hs_init_child2_1.inc24
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/hs_init_child2_2.inc12
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/hs_init_child2_3.inc0
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/hs_init_master_1.inc12
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/init_child2_1.inc191
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/init_child2_2.inc93
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/init_child2_3.inc22
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/init_child3_1.inc3
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/init_child3_2.inc3
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/init_child3_3.inc3
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/init_master_1.inc131
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/init_slave1_1.inc10
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/include/init_spider.inc153
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/my.cnf2
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/my_1_1.cnf49
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/my_2_1.cnf56
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/my_2_2.cnf38
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/my_2_3.cnf9
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/my_3_1.cnf11
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/my_3_2.cnf9
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/my_3_3.cnf9
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/my_4_1.cnf9
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/r/basic_sql.result744
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/r/basic_sql_part.result147
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/r/direct_aggregate.result106
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/r/direct_aggregate_part.result96
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/r/direct_update.result161
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/r/direct_update_part.result151
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/r/function.result166
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/r/ha.result316
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/r/ha_part.result306
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/r/spider3_fixes.result208
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/r/spider3_fixes_part.result206
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/r/spider_fixes.result563
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/r/spider_fixes_part.result220
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/r/vp_fixes.result99
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/basic_sql.cnf7
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/basic_sql.test1242
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/basic_sql_part.cnf7
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/basic_sql_part.test313
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child2_1.inc1
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child2_2.inc1
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child2_3.inc1
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child3_1.inc1
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child3_2.inc1
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child3_3.inc1
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/connect_master_1.inc1
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/connect_slave1_1.inc1
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/direct_aggregate.cnf7
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/direct_aggregate.test145
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/direct_aggregate_part.cnf7
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/direct_aggregate_part.test166
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/direct_update.cnf7
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/direct_update.test164
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/direct_update_part.cnf7
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/direct_update_part.test185
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/function.cnf7
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/function.test213
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/ha.cnf11
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/ha.test724
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/ha_part.cnf11
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/ha_part.test783
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/ha_test_deinit.inc27
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/ha_test_init.inc27
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/have_engine.inc7
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/have_func.inc5
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/have_odbc.inc13
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/have_partition.inc7
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/have_trigger.inc2
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/hs_test_deinit.inc17
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/hs_test_init.inc17
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/slave_test_deinit.inc9
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/slave_test_init.inc47
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/spider3_fixes.cnf7
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/spider3_fixes.test280
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/spider3_fixes_part.cnf7
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/spider3_fixes_part.test319
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/spider_fixes.cnf7
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/spider_fixes.test842
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/spider_fixes_part.cnf7
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/spider_fixes_part.test525
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/test_deinit.inc31
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/test_init.inc54
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/vp_fixes.cnf7
-rw-r--r--storage/spider/mysql-test/spider/odbc/mariadb/t/vp_fixes.test289
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/include/ha_init_child3_1.inc60
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/include/ha_init_child3_2.inc60
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/include/ha_init_child3_3.inc54
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/include/ha_init_master_1.inc36
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/include/hs_init_child2_1.inc12
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/include/hs_init_child2_2.inc6
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/include/hs_init_master_1.inc6
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/include/init_child2_1.inc116
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/include/init_child2_2.inc60
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/include/init_child2_3.inc10
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/include/init_master_1.inc96
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/include/init_spider.inc32
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/r/ha_part.result12
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/r/spider3_fixes.result16
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/r/spider3_fixes_part.result16
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/r/spider_fixes.result16
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/r/spider_fixes_part.result16
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/t/have_odbc.inc (renamed from storage/spider/mysql-test/spider/odbc/include/have_odbc.inc)2
-rw-r--r--storage/spider/mysql-test/spider/odbc/pg/t/test_init.inc2
130 files changed, 11713 insertions, 330 deletions
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child2_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child2_1.inc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child2_1.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child2_2.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child2_2.inc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child2_2.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child2_3.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child2_3.inc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child2_3.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child3_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child3_1.inc
new file mode 100644
index 00000000000..daab363c580
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child3_1.inc
@@ -0,0 +1,3 @@
+--let $TEST_ENGINE_TYPE= $CHILD3_1_ENGINE_TYPE
+--let $INIT_TEST_ENGINE= $INIT_CHILD3_1_ENGINE
+--source ../../../include/deinit_engine.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child3_2.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child3_2.inc
new file mode 100644
index 00000000000..7a95260fca2
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child3_2.inc
@@ -0,0 +1,3 @@
+--let $TEST_ENGINE_TYPE= $CHILD3_2_ENGINE_TYPE
+--let $INIT_TEST_ENGINE= $INIT_CHILD3_2_ENGINE
+--source ../../../include/deinit_engine.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child3_3.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child3_3.inc
new file mode 100644
index 00000000000..df4aef94185
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_child3_3.inc
@@ -0,0 +1,3 @@
+--let $TEST_ENGINE_TYPE= $CHILD3_3_ENGINE_TYPE
+--let $INIT_TEST_ENGINE= $INIT_CHILD3_3_ENGINE
+--source ../../../include/deinit_engine.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_master_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_master_1.inc
new file mode 100644
index 00000000000..f7d8678de60
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_master_1.inc
@@ -0,0 +1,2 @@
+DROP SERVER IF EXISTS s_2;
+--source ../../../include/deinit_spider.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_slave1_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_slave1_1.inc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/deinit_slave1_1.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child2_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child2_1.inc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child2_1.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child2_2.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child2_2.inc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child2_2.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child2_3.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child2_3.inc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child2_3.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child3_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child3_1.inc
new file mode 100644
index 00000000000..c19e376d10a
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child3_1.inc
@@ -0,0 +1 @@
+--source ../../include/deinit_spider.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child3_2.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child3_2.inc
new file mode 100644
index 00000000000..c19e376d10a
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child3_2.inc
@@ -0,0 +1 @@
+--source ../../include/deinit_spider.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child3_3.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child3_3.inc
new file mode 100644
index 00000000000..c19e376d10a
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_child3_3.inc
@@ -0,0 +1 @@
+--source ../../include/deinit_spider.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_master_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_master_1.inc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_deinit_master_1.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child2_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child2_1.inc
new file mode 100644
index 00000000000..2684829408d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child2_1.inc
@@ -0,0 +1,8 @@
+let $CHILD2_1_HA_AS_DROP_TABLES=
+ $CHILD2_1_DROP_TABLES;
+let $CHILD2_1_HA_AS_CREATE_TABLES=
+ $CHILD2_1_CREATE_TABLES;
+let $CHILD2_1_HA_AS_DROP_TABLES2=
+ $CHILD2_1_DROP_TABLES2;
+let $CHILD2_1_HA_AS_CREATE_TABLES2=
+ $CHILD2_1_CREATE_TABLES2;
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child2_2.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child2_2.inc
new file mode 100644
index 00000000000..205eaa6fe35
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child2_2.inc
@@ -0,0 +1,4 @@
+let $CHILD2_2_HA_DROP_TABLES=
+ $CHILD2_2_DROP_TABLES;
+let $CHILD2_2_HA_CREATE_TABLES=
+ $CHILD2_2_CREATE_TABLES;
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child2_3.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child2_3.inc
new file mode 100644
index 00000000000..55cb858372c
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child2_3.inc
@@ -0,0 +1,4 @@
+let $CHILD2_3_HA_DROP_TABLES=
+ $CHILD2_3_DROP_TABLES;
+let $CHILD2_3_HA_CREATE_TABLES=
+ $CHILD2_3_CREATE_TABLES;
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child3_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child3_1.inc
new file mode 100644
index 00000000000..75655afcb1d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child3_1.inc
@@ -0,0 +1,133 @@
+--let $CHILD3_1_ENGINE_TYPE=Spider
+--let $CHILD3_1_ENGINE=ENGINE=Spider
+--source ../include/init_spider.inc
+eval INSERT INTO mysql.spider_link_mon_servers
+(db_name, table_name, link_id, sid, server, scheme, host, port, socket,
+ username, password, ssl_ca, ssl_capath, ssl_cert, ssl_cipher, ssl_key,
+ ssl_verify_server_cert, default_file, default_group) VALUES
+('%auto_test_local%', '%ta_l%', '%', $CHILD3_1_SERVER_ID, 's_3_1', NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL),
+('%auto_test_local%', '%ta_l%', '%', $CHILD3_2_SERVER_ID, 's_3_2', NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL),
+('%auto_test_local%', '%ta_l%', '%', $CHILD3_3_SERVER_ID, 's_3_3', NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL);
+let $CHILD3_1_CHECK_LINK_STATUS=
+ SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
+ ORDER BY db_name, table_name, link_id;
+let $CHILD3_1_CHECK_LINK_FAILED_LOG=
+ SELECT db_name, table_name, link_id FROM mysql.spider_link_failed_log;
+let $CHILD3_1_SET_RECOVERY_STATUS_2_1=
+ ALTER TABLE ta_l
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", lst "0 2"';
+let $CHILD3_1_SET_OK_STATUS_2_1=
+ ALTER TABLE ta_l
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", lst "0 1"';
+let $CHILD3_1_SET_OK_STATUS_AS_2_1=
+ ALTER TABLE ta_l
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", lst "1 0"';
+
+let $CHILD3_1_DROP_TABLES_HA_2_1=
+ DROP TABLE IF EXISTS ta_l;
+if ($VERSION_COMPILE_OS_WIN)
+{
+ let $CHILD3_1_CREATE_TABLES_HA_2_1=
+ CREATE TABLE ta_l (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_1_ENGINE $CHILD3_1_CHARSET
+ COMMENT='table "ta_r ta_r3"'
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+ let $CHILD3_1_CREATE_TABLES_HA_AS_2_1=
+ CREATE TABLE ta_l (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_1_ENGINE $CHILD3_1_CHARSET
+ COMMENT='table "ta_r ta_r3"'
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+}
+if (!$VERSION_COMPILE_OS_WIN)
+{
+ let $CHILD3_1_CREATE_TABLES_HA_2_1=
+ CREATE TABLE ta_l (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_1_ENGINE $CHILD3_1_CHARSET
+ COMMENT='table "ta_r ta_r3"'
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+ let $CHILD3_1_CREATE_TABLES_HA_AS_2_1=
+ CREATE TABLE ta_l (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_1_ENGINE $CHILD3_1_CHARSET
+ COMMENT='table "ta_r ta_r3"'
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+}
+let $CHILD3_1_DROP_TABLES_HA_P_2_1=
+ DROP TABLE IF EXISTS ta_l2;
+let $CHILD3_1_CREATE_TABLES_HA_P_2_1=
+ CREATE TABLE ta_l2 (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_1_ENGINE $CHILD3_1_CHARSET
+ COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2"'
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001"'
+ );
+let $CHILD3_1_CREATE_TABLES_HA_AS_P_2_1=
+ CREATE TABLE ta_l2 (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_1_ENGINE $CHILD3_1_CHARSET
+ COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1"'
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001"'
+ );
+let $CHILD3_1_SET_RECOVERY_STATUS_P_2_1=
+ ALTER TABLE ta_l2
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001", lst "0 2"'
+ );
+let $CHILD3_1_SET_OK_STATUS_P_2_1=
+ ALTER TABLE ta_l2
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001", lst "0 1"'
+ );
+let $CHILD3_1_SET_OK_STATUS_AS_P_2_1=
+ ALTER TABLE ta_l2
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001", lst "1 0"'
+ );
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child3_2.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child3_2.inc
new file mode 100644
index 00000000000..306c966378d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child3_2.inc
@@ -0,0 +1,133 @@
+--let $CHILD3_2_ENGINE_TYPE=Spider
+--let $CHILD3_2_ENGINE=ENGINE=Spider
+--source ../include/init_spider.inc
+eval INSERT INTO mysql.spider_link_mon_servers
+(db_name, table_name, link_id, sid, server, scheme, host, port, socket,
+ username, password, ssl_ca, ssl_capath, ssl_cert, ssl_cipher, ssl_key,
+ ssl_verify_server_cert, default_file, default_group) VALUES
+('%auto_test_local%', '%ta_l%', '%', $CHILD3_1_SERVER_ID, 's_3_1', NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL),
+('%auto_test_local%', '%ta_l%', '%', $CHILD3_2_SERVER_ID, 's_3_2', NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL),
+('%auto_test_local%', '%ta_l%', '%', $CHILD3_3_SERVER_ID, 's_3_3', NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL);
+let $CHILD3_2_CHECK_LINK_STATUS=
+ SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
+ ORDER BY db_name, table_name, link_id;
+let $CHILD3_2_CHECK_LINK_FAILED_LOG=
+ SELECT db_name, table_name, link_id FROM mysql.spider_link_failed_log;
+let $CHILD3_2_SET_RECOVERY_STATUS_2_1=
+ ALTER TABLE ta_l
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", lst "0 2"';
+let $CHILD3_2_SET_OK_STATUS_2_1=
+ ALTER TABLE ta_l
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", lst "0 1"';
+let $CHILD3_2_SET_OK_STATUS_AS_2_1=
+ ALTER TABLE ta_l
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", lst "1 0"';
+
+let $CHILD3_2_DROP_TABLES_HA_2_1=
+ DROP TABLE IF EXISTS ta_l;
+if ($VERSION_COMPILE_OS_WIN)
+{
+ let $CHILD3_2_CREATE_TABLES_HA_2_1=
+ CREATE TABLE ta_l (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_2_ENGINE $CHILD3_2_CHARSET
+ COMMENT='table "ta_r ta_r3"'
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+ let $CHILD3_2_CREATE_TABLES_HA_AS_2_1=
+ CREATE TABLE ta_l (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_2_ENGINE $CHILD3_2_CHARSET
+ COMMENT='table "ta_r ta_r3"'
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+}
+if (!$VERSION_COMPILE_OS_WIN)
+{
+ let $CHILD3_2_CREATE_TABLES_HA_2_1=
+ CREATE TABLE ta_l (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_2_ENGINE $CHILD3_2_CHARSET
+ COMMENT='table "ta_r ta_r3"'
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+ let $CHILD3_2_CREATE_TABLES_HA_AS_2_1=
+ CREATE TABLE ta_l (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_2_ENGINE $CHILD3_2_CHARSET
+ COMMENT='table "ta_r ta_r3"'
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+}
+let $CHILD3_2_DROP_TABLES_HA_P_2_1=
+ DROP TABLE IF EXISTS ta_l2;
+let $CHILD3_2_CREATE_TABLES_HA_P_2_1=
+ CREATE TABLE ta_l2 (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_2_ENGINE $CHILD3_2_CHARSET
+ COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2"'
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001"'
+ );
+let $CHILD3_2_CREATE_TABLES_HA_AS_P_2_1=
+ CREATE TABLE ta_l2 (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_2_ENGINE $CHILD3_2_CHARSET
+ COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1"'
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001"'
+ );
+let $CHILD3_2_SET_RECOVERY_STATUS_P_2_1=
+ ALTER TABLE ta_l2
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001", lst "0 2"'
+ );
+let $CHILD3_2_SET_OK_STATUS_P_2_1=
+ ALTER TABLE ta_l2
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001", lst "0 1"'
+ );
+let $CHILD3_2_SET_OK_STATUS_AS_P_2_1=
+ ALTER TABLE ta_l2
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001", lst "1 0"'
+ );
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child3_3.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child3_3.inc
new file mode 100644
index 00000000000..838c9c1cd64
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_child3_3.inc
@@ -0,0 +1,133 @@
+--let $CHILD3_3_ENGINE_TYPE=Spider
+--let $CHILD3_3_ENGINE=ENGINE=Spider
+--source ../include/init_spider.inc
+eval INSERT INTO mysql.spider_link_mon_servers
+(db_name, table_name, link_id, sid, server, scheme, host, port, socket,
+ username, password, ssl_ca, ssl_capath, ssl_cert, ssl_cipher, ssl_key,
+ ssl_verify_server_cert, default_file, default_group) VALUES
+('%auto_test_local%', '%ta_l%', '%', $CHILD3_1_SERVER_ID, 's_3_1', NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL),
+('%auto_test_local%', '%ta_l%', '%', $CHILD3_2_SERVER_ID, 's_3_2', NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL),
+('%auto_test_local%', '%ta_l%', '%', $CHILD3_3_SERVER_ID, 's_3_3', NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL);
+let $CHILD3_3_CHECK_LINK_STATUS=
+ SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
+ ORDER BY db_name, table_name, link_id;
+let $CHILD3_3_CHECK_LINK_FAILED_LOG=
+ SELECT db_name, table_name, link_id FROM mysql.spider_link_failed_log;
+let $CHILD3_3_SET_RECOVERY_STATUS_2_1=
+ ALTER TABLE ta_l
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", lst "0 2"';
+let $CHILD3_3_SET_OK_STATUS_2_1=
+ ALTER TABLE ta_l
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", lst "0 1"';
+let $CHILD3_3_SET_OK_STATUS_AS_2_1=
+ ALTER TABLE ta_l
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", lst "1 0"';
+
+let $CHILD3_3_DROP_TABLES_HA_2_1=
+ DROP TABLE IF EXISTS ta_l;
+if ($VERSION_COMPILE_OS_WIN)
+{
+ let $CHILD3_3_CREATE_TABLES_HA_2_1=
+ CREATE TABLE ta_l (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_3_ENGINE $CHILD3_3_CHARSET
+ COMMENT='table "ta_r ta_r3"'
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+ let $CHILD3_3_CREATE_TABLES_HA_AS_2_1=
+ CREATE TABLE ta_l (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_3_ENGINE $CHILD3_3_CHARSET
+ COMMENT='table "ta_r ta_r3"'
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+}
+if (!$VERSION_COMPILE_OS_WIN)
+{
+ let $CHILD3_3_CREATE_TABLES_HA_2_1=
+ CREATE TABLE ta_l (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_3_ENGINE $CHILD3_3_CHARSET
+ COMMENT='table "ta_r ta_r3"'
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+ let $CHILD3_3_CREATE_TABLES_HA_AS_2_1=
+ CREATE TABLE ta_l (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_3_ENGINE $CHILD3_3_CHARSET
+ COMMENT='table "ta_r ta_r3"'
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
+ database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+}
+let $CHILD3_3_DROP_TABLES_HA_P_2_1=
+ DROP TABLE IF EXISTS ta_l2;
+let $CHILD3_3_CREATE_TABLES_HA_P_2_1=
+ CREATE TABLE ta_l2 (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_3_ENGINE $CHILD3_3_CHARSET
+ COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2"'
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001"'
+ );
+let $CHILD3_3_CREATE_TABLES_HA_AS_P_2_1=
+ CREATE TABLE ta_l2 (
+ a INT DEFAULT 10,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $CHILD3_3_ENGINE $CHILD3_3_CHARSET
+ COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1"'
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001"'
+ );
+let $CHILD3_3_SET_RECOVERY_STATUS_P_2_1=
+ ALTER TABLE ta_l2
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001", lst "0 2"'
+ );
+let $CHILD3_3_SET_OK_STATUS_P_2_1=
+ ALTER TABLE ta_l2
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001", lst "0 1"'
+ );
+let $CHILD3_3_SET_OK_STATUS_AS_P_2_1=
+ ALTER TABLE ta_l2
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001", lst "1 0"'
+ );
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_master_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_master_1.inc
new file mode 100644
index 00000000000..32b502e428e
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/ha_init_master_1.inc
@@ -0,0 +1,81 @@
+eval INSERT INTO mysql.spider_link_mon_servers
+(db_name, table_name, link_id, sid, server, scheme, host, port, socket,
+ username, password, ssl_ca, ssl_capath, ssl_cert, ssl_cipher, ssl_key,
+ ssl_verify_server_cert, default_file, default_group) VALUES
+('%auto_test_local%', '%ta_l%', '%', $CHILD3_1_SERVER_ID, 's_3_1', NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL),
+('%auto_test_local%', '%ta_l%', '%', $CHILD3_2_SERVER_ID, 's_3_2', NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL),
+('%auto_test_local%', '%ta_l%', '%', $CHILD3_3_SERVER_ID, 's_3_3', NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL);
+let $MASTER_1_CHECK_LINK_STATUS=
+ SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
+ ORDER BY db_name, table_name, link_id;
+let $MASTER_1_CHECK_LINK_FAILED_LOG=
+ SELECT db_name, table_name, link_id FROM mysql.spider_link_failed_log;
+let $MASTER_1_SET_RECOVERY_STATUS_2_1=
+ ALTER TABLE ta_l
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", lst "0 2"';
+let $MASTER_1_SET_OK_STATUS_2_1=
+ ALTER TABLE ta_l
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", lst "0 1"';
+let $MASTER_1_SET_OK_STATUS_AS_2_1=
+ ALTER TABLE ta_l
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1", lst "1 0"';
+let $MASTER_1_COPY_TABLES_2_1=
+ SELECT spider_copy_tables('ta_l', '0', '1');
+
+let $MASTER_1_COMMENT_HA_2_1=
+ COMMENT='database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", table "ta_r ta_r3",
+ wrapper "odbc_mariadb"'
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2"';
+let $MASTER_1_COMMENT_HA_AS_2_1=
+ COMMENT='database "auto_test_remote auto_test_remote2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", table "ta_r ta_r3",
+ wrapper "odbc_mariadb"'
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1"';
+let $MASTER_1_COMMENT_HA_P_2_1=
+ COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2"'
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001"'
+ );
+let $MASTER_1_COMMENT_HA_AS_P_2_1=
+ COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1"'
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001"'
+ );
+let $MASTER_1_SET_RECOVERY_STATUS_P_2_1=
+ ALTER TABLE ta_l2
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001", lst "0 2"'
+ );
+let $MASTER_1_SET_OK_STATUS_P_2_1=
+ ALTER TABLE ta_l2
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001", lst "0 1"'
+ );
+let $MASTER_1_SET_OK_STATUS_AS_P_2_1=
+ ALTER TABLE ta_l2
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001", lst "1 0"'
+ );
+let $MASTER_1_COPY_TABLES_P_2_1=
+ SELECT spider_copy_tables('ta_l2#P#pt2', '0', '1');
+let $MASTER_1_CHECK_HA_STATUS=
+ SHOW GLOBAL STATUS LIKE 'Spider_mon_table_cache_version%';
+let $MASTER_1_CHANGE_HA_MON=
+ SELECT spider_flush_table_mon_cache();
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_deinit_child2_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_deinit_child2_1.inc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_deinit_child2_1.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_deinit_child2_2.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_deinit_child2_2.inc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_deinit_child2_2.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_deinit_child2_3.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_deinit_child2_3.inc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_deinit_child2_3.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_deinit_master_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_deinit_master_1.inc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_deinit_master_1.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_init_child2_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_init_child2_1.inc
new file mode 100644
index 00000000000..521cc34f311
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_init_child2_1.inc
@@ -0,0 +1,24 @@
+let $CHILD2_1_HS_DROP_TABLES=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "hs_r"', '', 'srv "s_2_1"');
+let $CHILD2_1_HS_CREATE_TABLES=
+ SELECT spider_direct_sql('CREATE TABLE "hs_r" (
+ "a" INT DEFAULT 10,
+ "b" CHAR(1) DEFAULT \'c\',
+ "c" DATE DEFAULT \'1999-10-10\',
+ "d" INT DEFAULT 11,
+ PRIMARY KEY("a")
+ )', '', 'srv "s_2_1"');
+let $CHILD2_1_HS_SELECT_TABLES=
+ SELECT spider_direct_sql('SELECT "a", "b", "c", "d" FROM "hs_r" ORDER BY "a"', '', 'srv "s_2_1"');
+let $CHILD2_1_HS_DROP_TABLES2=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "hs_r2"', '', 'srv "s_2_1"');
+let $CHILD2_1_HS_CREATE_TABLES2=
+ SELECT spider_direct_sql('CREATE TABLE "hs_r2" (
+ "a" INT DEFAULT 10,
+ "b" CHAR(1) DEFAULT \'c\',
+ "c" DATE DEFAULT \'1999-10-10\',
+ "d" INT DEFAULT 11,
+ PRIMARY KEY("a")
+ )', '', 'srv "s_2_1"');
+let $CHILD2_1_HS_SELECT_TABLES2=
+ SELECT spider_direct_sql('SELECT "a", "b", "c", "d" FROM "hs_r2" ORDER BY "a"', '', 'srv "s_2_1"');
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_init_child2_2.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_init_child2_2.inc
new file mode 100644
index 00000000000..4cac8a953d0
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_init_child2_2.inc
@@ -0,0 +1,12 @@
+let $CHILD2_2_HS_DROP_TABLES=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "hs_r3"', '', 'srv "s_2_2"');
+let $CHILD2_2_HS_CREATE_TABLES=
+ SELECT spider_direct_sql('CREATE TABLE "hs_r3" (
+ "a" INT DEFAULT 10,
+ "b" CHAR(1) DEFAULT \'c\',
+ "c" DATE DEFAULT \'1999-10-10\',
+ "d" INT DEFAULT 11,
+ PRIMARY KEY("a")
+ )', '', 'srv "s_2_2"');
+let $CHILD2_2_HS_SELECT_TABLES=
+ SELECT spider_direct_sql('SELECT "a", "b", "c", "d" FROM "hs_r3" ORDER BY "a"', '', 'srv "s_2_2"');
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_init_child2_3.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_init_child2_3.inc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_init_child2_3.inc
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_init_master_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_init_master_1.inc
new file mode 100644
index 00000000000..0ff5e2a10d9
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/hs_init_master_1.inc
@@ -0,0 +1,12 @@
+let $MASTER_1_HS_COMMENT_TMP=
+ COMMENT='';
+let $MASTER_1_HS_COMMENT_2_1=
+ COMMENT='srv "s_2_1", table "hs_r", uhr "1", uhw "1", hrp "$CHILD2_1_HSRPORT", hwp "$CHILD2_1_HSWPORT"';
+let $MASTER_1_HS_COMMENT_P_2_1=
+ COMMENT='uhr "1", uhw "1"'
+ PARTITION BY RANGE(a) (
+ PARTITION pt1 VALUES LESS THAN (4)
+ COMMENT='srv "s_2_1", table "hs_r2", hrp "$CHILD2_1_HSRPORT", hwp "$CHILD2_1_HSWPORT"',
+ PARTITION pt2 VALUES LESS THAN MAXVALUE
+ COMMENT='srv "s_2_2", table "hs_r3", hrp "$CHILD2_2_HSRPORT", hwp "$CHILD2_2_HSWPORT"'
+ );
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child2_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child2_1.inc
new file mode 100644
index 00000000000..b2c1faf20e5
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child2_1.inc
@@ -0,0 +1,191 @@
+let $CHILD2_1_DATEFORMAT=
+ SELECT 1;
+let $CHILD2_1_DROP_DATABASE=
+ SELECT spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_DROP_DATABASE_IFEXISTS=
+ SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_CREATE_DATABASE=
+ SELECT spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"') $STR_SEMICOLON
+ SELECT spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_SELECT1=
+ SELECT spider_direct_sql('SELECT 1', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_DROP_TABLES=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `ta_r`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_CREATE_TABLES=
+ SELECT spider_direct_sql('CREATE TABLE `ta_r` (
+ `a` INT DEFAULT 10,
+ `b` CHAR(1) DEFAULT \'c\',
+ `c` DATE DEFAULT \'1999-10-10\',
+ PRIMARY KEY(`a`)
+ )', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('CREATE INDEX `idx1` ON `ta_r`(`b`)', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_SELECT_TABLES=
+ SELECT spider_direct_sql('SELECT `a`, `b`, `c` FROM `ta_r` ORDER BY `a`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_DROP_TABLES2=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `ta_r2`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_CREATE_TABLES2=
+ SELECT spider_direct_sql('CREATE TABLE `ta_r2` (
+ `a` INT DEFAULT 10,
+ `b` CHAR(1) DEFAULT \'c\',
+ `c` DATE DEFAULT \'1999-10-10\',
+ PRIMARY KEY(`a`)
+ )', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_SELECT_TABLES2=
+ SELECT spider_direct_sql('SELECT `a`, `b`, `c` FROM `ta_r2` ORDER BY `a`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_DROP_TABLES3=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `ta_r_no_idx`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_CREATE_TABLES3=
+ SELECT spider_direct_sql('CREATE TABLE `ta_r_no_idx` (
+ `a` INT DEFAULT 10,
+ `b` CHAR(1) DEFAULT \'c\',
+ `c` DATE DEFAULT \'1999-10-10\'
+ )', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_SELECT_TABLES3=
+ SELECT spider_direct_sql('SELECT `a`, `b`, `c` FROM `ta_r_no_idx` ORDER BY `a`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_DROP_TABLES4=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `ta_r_auto_inc`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_CREATE_TABLES4=
+ SELECT spider_direct_sql('CREATE TABLE `ta_r_auto_inc` (
+ `a` INT AUTO_INCREMENT,
+ `b` CHAR(1) DEFAULT \'c\',
+ `c` DATE DEFAULT \'1999-10-10\',
+ PRIMARY KEY(`a`)
+ )', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_SELECT_TABLES4=
+ SELECT spider_direct_sql('SELECT `a`, `b`, `c` FROM `ta_r_auto_inc`
+ ORDER BY `a`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_DROP_TABLES5=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `s_2_1_ta_r_int`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_CREATE_TABLES5=
+ SELECT spider_direct_sql('CREATE TABLE `s_2_1_ta_r_int` (
+ `a` INT AUTO_INCREMENT,
+ `b` INT DEFAULT 10,
+ `c` INT DEFAULT 11,
+ PRIMARY KEY(`a`)
+ )', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('CREATE INDEX `idx1_s_2_1_ta_r_int` ON `s_2_1_ta_r_int`(`b`)', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('CREATE INDEX `idx2_s_2_1_ta_r_int` ON `s_2_1_ta_r_int`(`c`)', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_SELECT_TABLES5=
+ SELECT spider_direct_sql('SELECT `a`, `b`, `c` FROM `s_2_1_ta_r_int` ORDER BY `a`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_DROP_TABLES6=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `ta_r_3`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_CREATE_TABLES6=
+ SELECT spider_direct_sql('CREATE TABLE `ta_r_3` (
+ `a` INT DEFAULT 10,
+ `b` CHAR(1) DEFAULT \'c\',
+ `c` DATE DEFAULT \'1999-10-10\'
+ )', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_SELECT_TABLES6=
+ SELECT spider_direct_sql('SELECT `a`, `b`, `c` FROM `ta_r_3` ORDER BY `a`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_DROP_FT_TABLES=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `ft_r`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_CREATE_FT_TABLES=
+ SELECT spider_direct_sql('CREATE TABLE `ft_r` (
+ `a` INT DEFAULT 0,
+ `b` TEXT,
+ `c` TEXT,
+ "d" TEXT,
+ PRIMARY KEY(`a`),
+ FULLTEXT INDEX "ft_idx1"(`b`),
+ FULLTEXT INDEX "ft_idx2"(`c`)
+ )', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_SELECT_FT_TABLES=
+ SELECT spider_direct_sql('SELECT `a`, `b`, `c`, `d` FROM `ft_r` ORDER BY `a`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_DROP_FT_TABLES2=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `ft_r2`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_CREATE_FT_TABLES2=
+ SELECT spider_direct_sql('CREATE TABLE `ft_r2` (
+ `a` INT DEFAULT 0,
+ `b` TEXT,
+ `c` TEXT,
+ `d` TEXT,
+ PRIMARY KEY(`a`),
+ FULLTEXT INDEX "ft_idx1"(`b`),
+ FULLTEXT INDEX "ft_idx2"(`c`)
+ )', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_SELECT_FT_TABLES2=
+ SELECT spider_direct_sql('SELECT `a`, `b`, `c`, `d` FROM `ft_r2` ORDER BY `a`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_DROP_GM_TABLES=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `gm_r`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_CREATE_GM_TABLES=
+ SELECT spider_direct_sql('CREATE TABLE `gm_r` (
+ `a` INT DEFAULT 0,
+ `b` GEOMETRY NOT NULL,
+ `c` GEOMETRY NOT NULL,
+ PRIMARY KEY(`a`),
+ SPATIAL INDEX "sp_idx1"(`b`),
+ SPATIAL INDEX "sp_idx2"(`c`)
+ )', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_SELECT_GM_TABLES=
+ SELECT spider_direct_sql('SELECT `a`, `b`, `c` FROM `gm_r` ORDER BY `a`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_DROP_GM_TABLES2=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `gm_r2`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_CREATE_GM_TABLES2=
+ SELECT spider_direct_sql('CREATE TABLE `gm_r2` (
+ `a` INT DEFAULT 0,
+ `b` GEOMETRY NOT NULL,
+ `c` GEOMETRY NOT NULL,
+ PRIMARY KEY(`a`),
+ SPATIAL INDEX "sp_idx1"(`b`),
+ SPATIAL INDEX "sp_idx2"(`c`)
+ )', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_SELECT_GM_TABLES2=
+ SELECT spider_direct_sql('SELECT `a`, `b`, `c` FROM `gm_r2` ORDER BY `a`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_DROP_LOCK_TABLES1=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `t1_1`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_CREATE_LOCK_TABLES1=
+ SELECT spider_direct_sql('CREATE TABLE `t1_1` (
+ `id` INT NOT NULL,
+ PRIMARY KEY (`id`)
+ )', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_DROP_LOCK_TABLES2=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `t2_2`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_CREATE_LOCK_TABLES2=
+ SELECT spider_direct_sql('CREATE TABLE `t2_2` (
+ `id` INT NOT NULL,
+ PRIMARY KEY (`id`)
+ )', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_DROP_INCREMENT_TABLES1=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `t1_1`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_CREATE_INCREMENT_TABLES1=
+ SELECT spider_direct_sql('CREATE TABLE `t1_1` (
+ `id` INT NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (`id`)
+ )', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_SELECT_INCREMENT_TABLES1=
+ SELECT spider_direct_sql('SELECT `id` FROM `t1_1` ORDER BY `id`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_DROP_TEXT_PK_TABLES1=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `t1`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_CREATE_TEXT_PK_TABLES1=
+ SELECT spider_direct_sql('CREATE TABLE `t1` (
+ `a` VARCHAR(255),
+ PRIMARY KEY (`a`)
+ )', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_SELECT_TEXT_PK_TABLES1=
+ SELECT spider_direct_sql('SELECT `a` FROM `t1` ORDER BY `a`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_DROP_TEXT_KEY_TABLES1=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `t1`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_CREATE_TEXT_KEY_TABLES1=
+ SELECT spider_direct_sql('CREATE TABLE `t1` (
+ `a` VARCHAR(255),
+ `b` VARCHAR(255),
+ `c` VARCHAR(255),
+ PRIMARY KEY (`c`)
+ )', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('CREATE INDEX `idx1_t1` ON `t1`(`a`,`b`)', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('CREATE INDEX `idx2_t1` ON `t1`(`b`)', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_SELECT_TEXT_KEY_TABLES1=
+ SELECT spider_direct_sql('SELECT `a`, `b`, `c` FROM `t1` ORDER BY `c`', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_AUTO_INCREMENT_INCREMENT1=
+ SELECT spider_direct_sql('SET GLOBAL AUTO_INCREMENT_INCREMENT = 1', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_AUTO_INCREMENT_INCREMENT2=
+ SELECT spider_direct_sql('SET GLOBAL AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_AUTO_INCREMENT_OFFSET1=
+ SELECT spider_direct_sql('SET GLOBAL AUTO_INCREMENT_OFFSET = 1', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_1_AUTO_INCREMENT_OFFSET2=
+ SELECT spider_direct_sql('SET GLOBAL AUTO_INCREMENT_OFFSET = 2', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child2_2.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child2_2.inc
new file mode 100644
index 00000000000..fe5f9bcccaf
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child2_2.inc
@@ -0,0 +1,93 @@
+let $CHILD2_2_DATEFORMAT=
+ SELECT 1;
+let $CHILD2_2_DROP_DATABASE=
+ SELECT spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_DROP_DATABASE_IFEXISTS=
+ SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_CREATE_DATABASE=
+ SELECT spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"') $STR_SEMICOLON
+ SELECT spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_SELECT1=
+ SELECT spider_direct_sql('SELECT 1', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_DROP_TABLES=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `ta_r3`', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_CREATE_TABLES=
+ SELECT spider_direct_sql('CREATE TABLE `ta_r3` (
+ `a` INT DEFAULT 10,
+ `b` CHAR(1) DEFAULT \'c\',
+ `c` DATE DEFAULT \'1999-10-10\',
+ PRIMARY KEY(`a`)
+ )', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_DROP_TABLES5=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `s_2_2_ta_r_int`', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_CREATE_TABLES5=
+ SELECT spider_direct_sql('CREATE TABLE `s_2_2_ta_r_int` (
+ `a` INT AUTO_INCREMENT,
+ `b` INT DEFAULT 10,
+ `c` INT DEFAULT 11,
+ PRIMARY KEY(`a`)
+ )', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('CREATE INDEX `idx1_s_2_2_ta_r_int` ON `s_2_2_ta_r_int`(`b`)', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('CREATE INDEX `idx2_s_2_2_ta_r_int` ON `s_2_2_ta_r_int`(`c`)', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_SELECT_TABLES=
+ SELECT spider_direct_sql('SELECT `a`, `b`, `c` FROM `ta_r3` ORDER BY `a`', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_DROP_FT_TABLES=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `ft_r3`', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_CREATE_FT_TABLES=
+ SELECT spider_direct_sql('CREATE TABLE `ft_r3` (
+ `a` INT DEFAULT 0,
+ `b` TEXT,
+ `c` TEXT,
+ `d` TEXT,
+ PRIMARY KEY(`a`),
+ FULLTEXT INDEX "ft_idx1"(`b`),
+ FULLTEXT INDEX "ft_idx2"(`c`)
+ )', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_SELECT_FT_TABLES=
+ SELECT spider_direct_sql('SELECT `a`, `b`, `c`, `d` FROM `ft_r3` ORDER BY `a`', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_DROP_GM_TABLES=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `gm_r3`', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_CREATE_GM_TABLES=
+ SELECT spider_direct_sql('CREATE TABLE `gm_r3` (
+ `a` INT DEFAULT 0,
+ `b` GEOMETRY NOT NULL,
+ `c` GEOMETRY NOT NULL,
+ PRIMARY KEY(`a`),
+ SPATIAL INDEX "sp_idx1"(`b`),
+ SPATIAL INDEX "sp_idx2"(`c`)
+ )', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_SELECT_GM_TABLES=
+ SELECT spider_direct_sql('SELECT `a`, `b`, `c` FROM `gm_r3` ORDER BY `a`', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_DROP_LOCK_TABLES1=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `t1_2`', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_CREATE_LOCK_TABLES1=
+ SELECT spider_direct_sql('CREATE TABLE `t1_2` (
+ `id` INT NOT NULL,
+ PRIMARY KEY (`id`)
+ )', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_DROP_LOCK_TABLES2=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `t2_1`', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_CREATE_LOCK_TABLES2=
+ SELECT spider_direct_sql('CREATE TABLE `t2_1` (
+ `id` INT NOT NULL,
+ PRIMARY KEY (`id`)
+ )', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_DROP_INCREMENT_TABLES1=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `t1_2`', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_CREATE_INCREMENT_TABLES1=
+ SELECT spider_direct_sql('CREATE TABLE `t1_2` (
+ `id` INT NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (`id`)
+ )', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_SELECT_INCREMENT_TABLES1=
+ SELECT spider_direct_sql('SELECT `id` FROM `t1_2` ORDER BY `id`', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_AUTO_INCREMENT_INCREMENT1=
+ SELECT spider_direct_sql('SET GLOBAL AUTO_INCREMENT_INCREMENT = 1', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_AUTO_INCREMENT_INCREMENT2=
+ SELECT spider_direct_sql('SET GLOBAL AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_AUTO_INCREMENT_OFFSET1=
+ SELECT spider_direct_sql('SET GLOBAL AUTO_INCREMENT_OFFSET = 1', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_2_AUTO_INCREMENT_OFFSET2=
+ SELECT spider_direct_sql('SET GLOBAL AUTO_INCREMENT_OFFSET = 3', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child2_3.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child2_3.inc
new file mode 100644
index 00000000000..40d1d42303b
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child2_3.inc
@@ -0,0 +1,22 @@
+let $CHILD2_3_DATEFORMAT=
+ SELECT 1;
+let $CHILD2_3_DROP_DATABASE=
+ SELECT spider_direct_sql('DROP DATABASE auto_test_remote3', '', 'srv "s_2_3", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_3_DROP_DATABASE_IFEXISTS=
+ SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote3', '', 'srv "s_2_3_test", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_3_CREATE_DATABASE=
+ SELECT spider_direct_sql('CREATE DATABASE auto_test_remote3', '', 'srv "s_2_3_test", default_group "MariaDB ODBC 3.0 Driver"') $STR_SEMICOLON
+ SELECT spider_direct_sql('USE auto_test_remote3', '', 'srv "s_2_3_test", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_3_SELECT1=
+ SELECT spider_direct_sql('SELECT 1', '', 'srv "s_2_3", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_3_DROP_TABLES=
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS `ta_r4`', '', 'srv "s_2_3", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_3_CREATE_TABLES=
+ SELECT spider_direct_sql('CREATE TABLE `ta_r4` (
+ `a` INT DEFAULT 10,
+ `b` CHAR(1) DEFAULT \'c\',
+ `c` DATE DEFAULT \'1999-10-10\',
+ PRIMARY KEY(`a`)
+ )', '', 'srv "s_2_3", default_group "MariaDB ODBC 3.0 Driver"');
+let $CHILD2_3_SELECT_TABLES=
+ SELECT spider_direct_sql('SELECT `a`, `b`, `c` FROM `ta_r4` ORDER BY `a`', '', 'srv "s_2_3", default_group "MariaDB ODBC 3.0 Driver"');
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child3_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child3_1.inc
new file mode 100644
index 00000000000..25b149dd7e7
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child3_1.inc
@@ -0,0 +1,3 @@
+--let $TEST_ENGINE_TYPE= $CHILD3_1_ENGINE_TYPE
+--source ../../../include/init_engine.inc
+--let $INIT_CHILD3_1_ENGINE= $INIT_TEST_ENGINE
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child3_2.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child3_2.inc
new file mode 100644
index 00000000000..6d920fc0c99
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child3_2.inc
@@ -0,0 +1,3 @@
+--let $TEST_ENGINE_TYPE= $CHILD3_2_ENGINE_TYPE
+--source ../../../include/init_engine.inc
+--let $INIT_CHILD3_2_ENGINE= $INIT_TEST_ENGINE
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child3_3.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child3_3.inc
new file mode 100644
index 00000000000..f0593a05362
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_child3_3.inc
@@ -0,0 +1,3 @@
+--let $TEST_ENGINE_TYPE= $CHILD3_3_ENGINE_TYPE
+--source ../../../include/init_engine.inc
+--let $INIT_CHILD3_3_ENGINE= $INIT_TEST_ENGINE
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/init_master_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_master_1.inc
new file mode 100644
index 00000000000..c1bd40d0390
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_master_1.inc
@@ -0,0 +1,131 @@
+--source ../include/init_spider.inc
+SET spider_direct_order_limit= 10000;
+SET spider_init_sql_alloc_size= 1;
+SET spider_conn_recycle_mode= 0;
+let $MASTER_1_COMMENT_2_1=
+ COMMENT='srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", table "ta_r", wrapper "odbc_mariadb"';
+let $MASTER_1_COMMENT2_2_1=
+ COMMENT='srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", table "ta_r_no_idx", wrapper "odbc_mariadb"'
+ CONNECTION='prt "2000000"';
+let $MASTER_1_COMMENT_P_2_1=
+ COMMENT='table "ta_r3"'
+ PARTITION BY KEY(a) (
+ PARTITION pt1 COMMENT='srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", table "ta_r2",
+ priority "1000"',
+ PARTITION pt2 COMMENT='srv "s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", priority "1000001"'
+ );
+let $MASTER_1_COMMENT2_P_2_1=
+ COMMENT='table "ta_r3"'
+ PARTITION BY RANGE(a) (
+ PARTITION pt1 VALUES LESS THAN (4) COMMENT='srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver",
+ table "ta_r2", priority "1000"',
+ PARTITION pt2 VALUES LESS THAN MAXVALUE
+ COMMENT='srv "s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", priority "1000001"'
+ );
+let $MASTER_1_COMMENT3_2_1=
+ COMMENT='srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", table "ta_r_auto_inc",
+ wrapper "odbc_mariadb"';
+let $MASTER_1_COMMENT3_P_2_1=
+ COMMENT='table "s_2_1_ta_r_int"'
+ PARTITION BY LIST(MOD(a, 2)) (
+ PARTITION pt1 VALUES IN (0)
+ COMMENT='srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", priority "1000"',
+ PARTITION pt2 VALUES IN (1)
+ COMMENT='srv "s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", priority "1000001",
+ table "s_2_2_ta_r_int"'
+ );
+let $MASTER_1_COMMENT4_2_1=
+ COMMENT='srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", table "s_2_1_ta_r_int",
+ wrapper "odbc_mariadb"';
+let $MASTER_1_COMMENT5_2_1=
+ COMMENT='srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", table "ta_r_3", wrapper "odbc_mariadb"';
+let $MASTER_1_COMMENT_FT_2_1=
+ COMMENT='srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", table "ft_r", wrapper "odbc_mariadb"';
+let $MASTER_1_COMMENT2_FT_P_2_1=
+ COMMENT='table "ft_r3"'
+ PARTITION BY RANGE(a) (
+ PARTITION pt1 VALUES LESS THAN (4) COMMENT='srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver",
+ table "ft_r2", priority "1000"',
+ PARTITION pt2 VALUES LESS THAN MAXVALUE
+ COMMENT='srv "s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", priority "1000001"'
+ );
+let $MASTER_1_COMMENT_GM_2_1=
+ COMMENT='srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", table "gm_r"';
+let $MASTER_1_COMMENT2_GM_P_2_1=
+ COMMENT='table "gm_r3"'
+ PARTITION BY RANGE(a) (
+ PARTITION pt1 VALUES LESS THAN (4) COMMENT='srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver",
+ table "gm_r2", priority "1000"',
+ PARTITION pt2 VALUES LESS THAN MAXVALUE
+ COMMENT='srv "s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver", priority "1000001"'
+ );
+let $MASTER_1_COMMENT_LOCK1=
+ COMMENT 'tbl "t1_1 t1_2", srv "s_2_1 s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+let $MASTER_1_COMMENT_LOCK2=
+ COMMENT 'tbl "t2_1 t2_2", srv "s_2_2 s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+let $MASTER_1_COMMENT_INCREMENT1_1=
+ COMMENT 'aim "0", tbl "t1_1", srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+let $MASTER_1_COMMENT_INCREMENT1_P_1=
+ COMMENT 'aim "0"'
+ PARTITION BY LIST(MOD(id, 2)) (
+ PARTITION pt1 VALUES IN (0)
+ COMMENT='tbl "t1_1", srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"',
+ PARTITION pt2 VALUES IN (1)
+ COMMENT='tbl "t1_2", srv "s_2_2", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"'
+ );
+let $MASTER_1_COMMENT_READONLY1_1=
+ COMMENT 'read_only_mode "1", tbl "t1_1", srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+let $MASTER_1_COMMENT_ERROR_MODE1_1=
+ COMMENT 'erm "1", ewm "1", tbl "ter1_1", srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+let $MASTER_1_COMMENT_TEXT_PK1_1=
+ COMMENT 'tbl "t1", srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+let $MASTER_1_COMMENT_TEXT_KEY1_1=
+ COMMENT 'tbl "t1", srv "s_2_1", default_group "MariaDB\\\\ ODBC\\\\ 3.0\\\\ Driver"';
+let $MASTER_1_CHECK_DIRECT_UPDATE_STATUS=
+ SHOW GLOBAL STATUS LIKE 'Spider_direct_update%';
+let $MASTER_1_CHECK_DIRECT_DELETE_STATUS=
+ SHOW GLOBAL STATUS LIKE 'Spider_direct_delete%';
+let $MASTER_1_CHECK_DIRECT_ORDER_LIMIT_STATUS=
+ SHOW GLOBAL STATUS LIKE 'Spider_direct_order_limit%';
+let $MASTER_1_CHECK_DIRECT_AGGREGATE_STATUS=
+ SHOW GLOBAL STATUS LIKE 'Spider_direct_aggregate%';
+let $MASTER_1_AUTO_INCREMENT_INCREMENT1=
+ SET SESSION AUTO_INCREMENT_INCREMENT = 1 $STR_SEMICOLON
+ SELECT spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 1', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 1', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 1', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 1', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $MASTER_1_AUTO_INCREMENT_INCREMENT2=
+ SET SESSION AUTO_INCREMENT_INCREMENT = 777 $STR_SEMICOLON
+ SELECT spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 2', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 3', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $MASTER_1_AUTO_INCREMENT_OFFSET1=
+ SET SESSION AUTO_INCREMENT_OFFSET = 1 $STR_SEMICOLON
+ SELECT spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 1', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 1', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 1', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 1', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $MASTER_1_AUTO_INCREMENT_OFFSET2=
+ SET SESSION AUTO_INCREMENT_OFFSET = 777 $STR_SEMICOLON
+ SELECT spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 2', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+ $STR_SEMICOLON
+ SELECT spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 3', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+let $MASTER_1_AUTO_INCREMENT_OFFSET3=
+ SET SESSION AUTO_INCREMENT_OFFSET = 1;
+let $MASTER_1_AUTO_INCREMENT_OFFSET4=
+ SET SESSION AUTO_INCREMENT_OFFSET = 777;
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/init_slave1_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_slave1_1.inc
new file mode 100644
index 00000000000..73c3c6b9ef2
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_slave1_1.inc
@@ -0,0 +1,10 @@
+let $SLAVE1_1_COMMENT_INCREMENT1_1=
+ COMMENT '';
+let $SLAVE1_1_COMMENT_INCREMENT1_P_1=
+ COMMENT ''
+ PARTITION BY LIST(MOD(id, 2)) (
+ PARTITION pt1 VALUES IN (0)
+ COMMENT='',
+ PARTITION pt2 VALUES IN (1)
+ COMMENT=''
+ );
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/include/init_spider.inc b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_spider.inc
new file mode 100644
index 00000000000..9f983898700
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/include/init_spider.inc
@@ -0,0 +1,153 @@
+--source ../../../include/init_spider.inc
+let $VERSION_COMPILE_OS_WIN=
+ `SELECT IF(@@version_compile_os like 'Win%', 1, 0)`;
+if ($VERSION_COMPILE_OS_WIN)
+{
+ eval DROP SERVER IF EXISTS s_2_1_test;
+ eval CREATE SERVER s_2_1_test FOREIGN DATA WRAPPER odbc_mariadb OPTIONS (
+ HOST '127.0.0.1',
+ DATABASE 'test',
+ USER 'root',
+ PASSWORD '',
+ PORT $CHILD2_1_MYPORT
+ );
+ eval DROP SERVER IF EXISTS s_2_2_test;
+ eval CREATE SERVER s_2_2_test FOREIGN DATA WRAPPER odbc_mariadb OPTIONS (
+ HOST '127.0.0.1',
+ DATABASE 'test',
+ USER 'root',
+ PASSWORD '',
+ PORT $CHILD2_2_MYPORT
+ );
+ eval DROP SERVER IF EXISTS s_2_3_test;
+ eval CREATE SERVER s_2_3_test FOREIGN DATA WRAPPER odbc_mariadb OPTIONS (
+ HOST '127.0.0.1',
+ DATABASE 'test',
+ USER 'root',
+ PASSWORD '',
+ PORT $CHILD2_3_MYPORT
+ );
+ eval DROP SERVER IF EXISTS s_2_1;
+ eval CREATE SERVER s_2_1 FOREIGN DATA WRAPPER odbc_mariadb OPTIONS (
+ HOST '127.0.0.1',
+ DATABASE 'auto_test_remote',
+ USER 'root',
+ PASSWORD '',
+ PORT $CHILD2_1_MYPORT
+ );
+ eval DROP SERVER IF EXISTS s_2_2;
+ eval CREATE SERVER s_2_2 FOREIGN DATA WRAPPER odbc_mariadb OPTIONS (
+ HOST '127.0.0.1',
+ DATABASE 'auto_test_remote2',
+ USER 'root',
+ PASSWORD '',
+ PORT $CHILD2_2_MYPORT
+ );
+ eval DROP SERVER IF EXISTS s_2_3;
+ eval CREATE SERVER s_2_3 FOREIGN DATA WRAPPER odbc_mariadb OPTIONS (
+ HOST '127.0.0.1',
+ DATABASE 'auto_test_remote3',
+ USER 'root',
+ PASSWORD '',
+ PORT $CHILD2_3_MYPORT
+ );
+ eval DROP SERVER IF EXISTS s_3_1;
+ eval CREATE SERVER s_3_1 FOREIGN DATA WRAPPER mysql OPTIONS (
+ HOST 'localhost',
+ DATABASE 'auto_test_local',
+ USER 'root',
+ PASSWORD '',
+ PORT $CHILD3_1_MYPORT
+ );
+ eval DROP SERVER IF EXISTS s_3_2;
+ eval CREATE SERVER s_3_2 FOREIGN DATA WRAPPER mysql OPTIONS (
+ HOST 'localhost',
+ DATABASE 'auto_test_local',
+ USER 'root',
+ PASSWORD '',
+ PORT $CHILD3_2_MYPORT
+ );
+ eval DROP SERVER IF EXISTS s_3_3;
+ eval CREATE SERVER s_3_3 FOREIGN DATA WRAPPER mysql OPTIONS (
+ HOST 'localhost',
+ DATABASE 'auto_test_local',
+ USER 'root',
+ PASSWORD '',
+ PORT $CHILD3_3_MYPORT
+ );
+}
+if (!$VERSION_COMPILE_OS_WIN)
+{
+ eval DROP SERVER IF EXISTS s_2_1_test;
+ eval CREATE SERVER s_2_1_test FOREIGN DATA WRAPPER odbc_mariadb OPTIONS (
+ HOST '127.0.0.1',
+ DATABASE 'test',
+ USER 'root',
+ PASSWORD '',
+ PORT $CHILD2_1_MYPORT
+ );
+ eval DROP SERVER IF EXISTS s_2_2_test;
+ eval CREATE SERVER s_2_2_test FOREIGN DATA WRAPPER odbc_mariadb OPTIONS (
+ HOST '127.0.0.1',
+ DATABASE 'test',
+ USER 'root',
+ PASSWORD '',
+ PORT $CHILD2_2_MYPORT
+ );
+ eval DROP SERVER IF EXISTS s_2_3_test;
+ eval CREATE SERVER s_2_3_test FOREIGN DATA WRAPPER odbc_mariadb OPTIONS (
+ HOST '127.0.0.1',
+ DATABASE 'test',
+ USER 'root',
+ PASSWORD '',
+ PORT $CHILD2_3_MYPORT
+ );
+ eval DROP SERVER IF EXISTS s_2_1;
+ eval CREATE SERVER s_2_1 FOREIGN DATA WRAPPER odbc_mariadb OPTIONS (
+ HOST '127.0.0.1',
+ DATABASE 'auto_test_remote',
+ USER 'root',
+ PASSWORD '',
+ PORT $CHILD2_1_MYPORT
+ );
+ eval DROP SERVER IF EXISTS s_2_2;
+ eval CREATE SERVER s_2_2 FOREIGN DATA WRAPPER odbc_mariadb OPTIONS (
+ HOST '127.0.0.1',
+ DATABASE 'auto_test_remote2',
+ USER 'root',
+ PASSWORD '',
+ PORT $CHILD2_2_MYPORT
+ );
+ eval DROP SERVER IF EXISTS s_2_3;
+ eval CREATE SERVER s_2_3 FOREIGN DATA WRAPPER odbc_mariadb OPTIONS (
+ HOST '127.0.0.1',
+ DATABASE 'auto_test_remote3',
+ USER 'root',
+ PASSWORD '',
+ PORT $CHILD2_3_MYPORT
+ );
+ eval DROP SERVER IF EXISTS s_3_1;
+ eval CREATE SERVER s_3_1 FOREIGN DATA WRAPPER mysql OPTIONS (
+ HOST 'localhost',
+ DATABASE 'auto_test_local',
+ USER 'root',
+ PASSWORD '',
+ SOCKET '$CHILD3_1_MYSOCK'
+ );
+ eval DROP SERVER IF EXISTS s_3_2;
+ eval CREATE SERVER s_3_2 FOREIGN DATA WRAPPER mysql OPTIONS (
+ HOST 'localhost',
+ DATABASE 'auto_test_local',
+ USER 'root',
+ PASSWORD '',
+ SOCKET '$CHILD3_2_MYSOCK'
+ );
+ eval DROP SERVER IF EXISTS s_3_3;
+ eval CREATE SERVER s_3_3 FOREIGN DATA WRAPPER mysql OPTIONS (
+ HOST 'localhost',
+ DATABASE 'auto_test_local',
+ USER 'root',
+ PASSWORD '',
+ SOCKET '$CHILD3_3_MYSOCK'
+ );
+}
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/my.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/my.cnf
new file mode 100644
index 00000000000..b7f76a630cc
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/my.cnf
@@ -0,0 +1,2 @@
+!include include/default_mysqld.cnf
+!include my_1_1.cnf
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/my_1_1.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/my_1_1.cnf
new file mode 100644
index 00000000000..84f1992e841
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/my_1_1.cnf
@@ -0,0 +1,49 @@
+[mysqld.1.1]
+log-bin= master-bin
+loose_handlersocket_port= 20000
+loose_handlersocket_port_wr= 20001
+loose_handlersocket_threads= 2
+loose_handlersocket_threads_wr= 1
+loose_handlersocket_support_merge_table= 0
+loose_handlersocket_direct_update_mode= 2
+loose_handlersocket_unlimited_boundary= 65536
+loose_handlersocket_bulk_insert= 0
+loose_handlersocket_bulk_insert_timeout= 0
+loose_handlersocket_general_log= 1
+loose_handlersocket_timeout= 30
+loose_handlersocket_close_table_interval=2
+open_files_limit= 4096
+loose_partition= 1
+loose_spider_general_log= 1
+
+[ENV]
+USE_GEOMETRY_TEST= 1
+USE_FULLTEXT_TEST= 1
+USE_HA_TEST= 1
+USE_GENERAL_LOG= 1
+USE_REPLICATION= 0
+MASTER_1_MYPORT= @mysqld.1.1.port
+MASTER_1_HSRPORT= 20000
+MASTER_1_HSWPORT= 20001
+MASTER_1_MYSOCK= @mysqld.1.1.socket
+MASTER_1_ENGINE_TYPE= Spider
+#MASTER_1_ENGINE_TYPE= MyISAM
+MASTER_1_ENGINE= ENGINE=Spider
+MASTER_1_CHARSET= DEFAULT CHARSET=utf8
+MASTER_1_ENGINE2= ENGINE=MyISAM
+MASTER_1_CHARSET2= DEFAULT CHARSET=utf8
+MASTER_1_CHARSET3= DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+ODBC_DSN= postgres_mysql
+ODBC_DSN_HA1= postgres_auto_test_remote
+ODBC_DSN_HA2= postgres_auto_test_remote2
+ODBC_DSN_HA3= postgres_auto_test_remote3
+
+STR_SEMICOLON= ;
+
+#The followings are set in include/init_xxx.inc files
+# MASTER_1_COMMENT_2_1
+# MASTER_1_COMMENT2_2_1
+# MASTER_1_COMMENT3_2_1
+# MASTER_1_COMMENT4_2_1
+# MASTER_1_COMMENT5_2_1
+# MASTER_1_COMMENT_P_2_1
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/my_2_1.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/my_2_1.cnf
new file mode 100644
index 00000000000..24161645607
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/my_2_1.cnf
@@ -0,0 +1,56 @@
+[mysqld.2.1]
+loose_handlersocket_port= 20002
+loose_handlersocket_port_wr= 20003
+loose_handlersocket_threads= 2
+loose_handlersocket_threads_wr= 1
+loose_handlersocket_support_merge_table= 0
+loose_handlersocket_direct_update_mode= 2
+loose_handlersocket_unlimited_boundary= 65536
+loose_handlersocket_bulk_insert= 0
+loose_handlersocket_bulk_insert_timeout= 0
+loose_handlersocket_general_log= 1
+loose_handlersocket_timeout= 30
+loose_handlersocket_close_table_interval=2
+open_files_limit= 4096
+
+[ENV]
+USE_CHILD_GROUP2= 1
+OUTPUT_CHILD_GROUP2= 0
+CHILD2_1_MYPORT= @mysqld.2.1.port
+CHILD2_1_HSRPORT= 20002
+CHILD2_1_HSWPORT= 20003
+CHILD2_1_MYSOCK= @mysqld.2.1.socket
+CHILD2_1_ENGINE_TYPE= InnoDB
+CHILD2_1_ENGINE= ENGINE=InnoDB
+CHILD2_1_CHARSET= DEFAULT CHARSET=utf8
+CHILD2_1_CHARSET2= DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
+CHILD2_1_FT_MYPORT= @mysqld.2.1.port
+CHILD2_1_FT_MYSOCK= @mysqld.2.1.socket
+CHILD2_1_FT_ENGINE_TYPE= MyISAM
+CHILD2_1_FT_ENGINE= ENGINE=MyISAM
+CHILD2_1_FT_CHARSET= DEFAULT CHARSET=utf8
+CHILD2_1_GM_MYPORT= @mysqld.2.1.port
+CHILD2_1_GM_MYSOCK= @mysqld.2.1.socket
+CHILD2_1_GM_ENGINE_TYPE= MyISAM
+CHILD2_1_GM_ENGINE= ENGINE=MyISAM
+CHILD2_1_GM_CHARSET= DEFAULT CHARSET=utf8
+
+#The followings are set in include/init_xxx.inc files
+# CHILD2_1_DROP_TABLES
+# CHILD2_1_CREATE_TABLES
+# CHILD2_1_SELECT_TABLES
+# CHILD2_1_DROP_TABLES2
+# CHILD2_1_CREATE_TABLES2
+# CHILD2_1_SELECT_TABLES2
+# CHILD2_1_DROP_TABLES3
+# CHILD2_1_CREATE_TABLES3
+# CHILD2_1_SELECT_TABLES3
+# CHILD2_1_DROP_TABLES4
+# CHILD2_1_CREATE_TABLES4
+# CHILD2_1_SELECT_TABLES4
+# CHILD2_1_DROP_TABLES5
+# CHILD2_1_CREATE_TABLES5
+# CHILD2_1_SELECT_TABLES5
+# CHILD2_1_DROP_TABLES6
+# CHILD2_1_CREATE_TABLES6
+# CHILD2_1_SELECT_TABLES6
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/my_2_2.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/my_2_2.cnf
new file mode 100644
index 00000000000..2d3c2a89a7d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/my_2_2.cnf
@@ -0,0 +1,38 @@
+[mysqld.2.2]
+loose_handlersocket_port= 20004
+loose_handlersocket_port_wr= 20005
+loose_handlersocket_threads= 2
+loose_handlersocket_threads_wr= 1
+loose_handlersocket_support_merge_table= 0
+loose_handlersocket_direct_update_mode= 2
+loose_handlersocket_unlimited_boundary= 65536
+loose_handlersocket_bulk_insert= 0
+loose_handlersocket_bulk_insert_timeout= 0
+loose_handlersocket_general_log= 1
+loose_handlersocket_timeout= 30
+loose_handlersocket_close_table_interval=2
+open_files_limit= 4096
+
+[ENV]
+CHILD2_2_MYPORT= @mysqld.2.2.port
+CHILD2_2_HSRPORT= 20004
+CHILD2_2_HSWPORT= 20005
+CHILD2_2_MYSOCK= @mysqld.2.2.socket
+CHILD2_2_ENGINE_TYPE= InnoDB
+CHILD2_2_ENGINE= ENGINE=InnoDB
+CHILD2_2_CHARSET= DEFAULT CHARSET=utf8
+CHILD2_2_FT_MYPORT= @mysqld.2.2.port
+CHILD2_2_FT_MYSOCK= @mysqld.2.2.socket
+CHILD2_2_FT_ENGINE_TYPE= MyISAM
+CHILD2_2_FT_ENGINE= ENGINE=MyISAM
+CHILD2_2_FT_CHARSET= DEFAULT CHARSET=utf8
+CHILD2_2_GM_MYPORT= @mysqld.2.2.port
+CHILD2_2_GM_MYSOCK= @mysqld.2.2.socket
+CHILD2_2_GM_ENGINE_TYPE= MyISAM
+CHILD2_2_GM_ENGINE= ENGINE=MyISAM
+CHILD2_2_GM_CHARSET= DEFAULT CHARSET=utf8
+
+#The followings are set in include/init_xxx.inc files
+# CHILD2_2_DROP_TABLES
+# CHILD2_2_CREATE_TABLES
+# CHILD2_2_SELECT_TABLES
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/my_2_3.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/my_2_3.cnf
new file mode 100644
index 00000000000..444f669fa80
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/my_2_3.cnf
@@ -0,0 +1,9 @@
+[mysqld.2.3]
+open_files_limit= 4096
+
+[ENV]
+CHILD2_3_MYPORT= @mysqld.2.3.port
+CHILD2_3_MYSOCK= @mysqld.2.3.socket
+CHILD2_3_ENGINE_TYPE= InnoDB
+CHILD2_3_ENGINE= ENGINE=InnoDB
+CHILD2_3_CHARSET= DEFAULT CHARSET=utf8
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/my_3_1.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/my_3_1.cnf
new file mode 100644
index 00000000000..fad21607789
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/my_3_1.cnf
@@ -0,0 +1,11 @@
+[mysqld.3.1]
+loose_partition= 1
+
+[ENV]
+USE_CHILD_GROUP3= 1
+OUTPUT_CHILD_GROUP3= 0
+CHILD3_1_MYPORT= @mysqld.3.1.port
+CHILD3_1_MYSOCK= @mysqld.3.1.socket
+CHILD3_1_ENGINE_TYPE= InnoDB
+CHILD3_1_ENGINE= ENGINE=InnoDB
+CHILD3_1_CHARSET= DEFAULT CHARSET=utf8
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/my_3_2.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/my_3_2.cnf
new file mode 100644
index 00000000000..6f027b6f525
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/my_3_2.cnf
@@ -0,0 +1,9 @@
+[mysqld.3.2]
+loose_partition= 1
+
+[ENV]
+CHILD3_2_MYPORT= @mysqld.3.2.port
+CHILD3_2_MYSOCK= @mysqld.3.2.socket
+CHILD3_2_ENGINE_TYPE= InnoDB
+CHILD3_2_ENGINE= ENGINE=InnoDB
+CHILD3_2_CHARSET= DEFAULT CHARSET=utf8
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/my_3_3.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/my_3_3.cnf
new file mode 100644
index 00000000000..fbb33694738
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/my_3_3.cnf
@@ -0,0 +1,9 @@
+[mysqld.3.3]
+loose_partition= 1
+
+[ENV]
+CHILD3_3_MYPORT= @mysqld.3.3.port
+CHILD3_3_MYSOCK= @mysqld.3.3.socket
+CHILD3_3_ENGINE_TYPE= InnoDB
+CHILD3_3_ENGINE= ENGINE=InnoDB
+CHILD3_3_CHARSET= DEFAULT CHARSET=utf8
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/my_4_1.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/my_4_1.cnf
new file mode 100644
index 00000000000..d1812a48b68
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/my_4_1.cnf
@@ -0,0 +1,9 @@
+[mysqld.4.1]
+loose_partition= 1
+
+[ENV]
+SLAVE1_1_MYPORT= @mysqld.4.1.port
+SLAVE1_1_MYSOCK= @mysqld.4.1.socket
+SLAVE1_1_ENGINE_TYPE= MyISAM
+SLAVE1_1_ENGINE= ENGINE=MyISAM
+SLAVE1_1_CHARSET= DEFAULT CHARSET=utf8
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/r/basic_sql.result b/storage/spider/mysql-test/spider/odbc/mariadb/r/basic_sql.result
new file mode 100644
index 00000000000..3b1b8ebf679
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/r/basic_sql.result
@@ -0,0 +1,744 @@
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+
+drop and create databases
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+
+test select 1
+connection master_1;
+SELECT 1;
+1
+1
+
+create table select test
+connection master_1;
+DROP TABLE IF EXISTS tb_l;
+CREATE TABLE tb_l (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE2 MASTER_1_CHARSET2
+INSERT INTO tb_l (a, b, c) VALUES
+(1, 'a', '2008-08-01 10:21:39'),
+(2, 'b', '2000-01-01 00:00:00'),
+(3, 'e', '2007-06-04 20:03:11'),
+(4, 'd', '2003-11-30 05:01:03'),
+(5, 'c', '2001-12-31 23:59:59');
+DROP TABLE IF EXISTS ta_l;
+CREATE TABLE ta_l (
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1
+SELECT a, b, c FROM tb_l
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+2 b 2000-01-01 00:00:00
+3 e 2007-06-04 00:00:00
+4 d 2003-11-30 00:00:00
+5 c 2001-12-31 00:00:00
+
+create table ignore select test
+connection master_1;
+DROP TABLE IF EXISTS ta_l;
+DROP TABLE IF EXISTS tb_l;
+CREATE TABLE tb_l (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE2 MASTER_1_CHARSET2
+INSERT INTO tb_l (a, b, c) VALUES
+(1, 'f', '2008-07-01 10:21:39'),
+(2, 'g', '2000-02-01 00:00:00'),
+(3, 'j', '2007-05-04 20:03:11'),
+(4, 'i', '2003-10-30 05:01:03'),
+(5, 'h', '2001-10-31 23:59:59');
+CREATE TABLE ta_l (
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1
+IGNORE SELECT a, b, c FROM tb_l
+Warnings:
+Warning 1062 Duplicate entry '1' for key 'PRIMARY'
+Warning 1062 Duplicate entry '2' for key 'PRIMARY'
+Warning 1062 Duplicate entry '3' for key 'PRIMARY'
+Warning 1062 Duplicate entry '4' for key 'PRIMARY'
+Warning 1062 Duplicate entry '5' for key 'PRIMARY'
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+2 b 2000-01-01 00:00:00
+3 e 2007-06-04 00:00:00
+4 d 2003-11-30 00:00:00
+5 c 2001-12-31 00:00:00
+
+create table ignore select test
+connection master_1;
+DROP TABLE IF EXISTS ta_l;
+CREATE TABLE ta_l (
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1
+REPLACE SELECT a, b, c FROM tb_l
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+create no index table
+connection master_1;
+DROP TABLE IF EXISTS ta_l_no_idx;
+CREATE TABLE ta_l_no_idx
+MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT2_2_1
+SELECT a, b, c FROM tb_l
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l_no_idx ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+select table
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+select table shared mode
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a
+LOCK IN SHARE MODE;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+select table for update
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a
+FOR UPDATE;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+select table join
+connection master_1;
+SELECT a.a, a.b, date_format(b.c, '%Y-%m-%d %H:%i:%s') FROM ta_l a, tb_l b
+WHERE a.a = b.a ORDER BY a.a;
+a b date_format(b.c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 10:21:39
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 20:03:11
+4 i 2003-10-30 05:01:03
+5 h 2001-10-31 23:59:59
+
+select table straight_join
+connection master_1;
+SELECT STRAIGHT_JOIN a.a, a.b, date_format(b.c, '%Y-%m-%d %H:%i:%s')
+FROM ta_l a, tb_l b WHERE a.a = b.a ORDER BY a.a;
+a b date_format(b.c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 10:21:39
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 20:03:11
+4 i 2003-10-30 05:01:03
+5 h 2001-10-31 23:59:59
+
+select sql_small_result
+connection master_1;
+SELECT SQL_SMALL_RESULT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+select sql_big_result
+connection master_1;
+SELECT SQL_BIG_RESULT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+select sql_buffer_result
+connection master_1;
+SELECT SQL_BUFFER_RESULT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+select sql_cache
+connection master_1;
+SELECT SQL_CACHE a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+select sql_no_cache
+connection master_1;
+SELECT SQL_NO_CACHE a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+select sql_calc_found_rows
+connection master_1;
+SELECT SQL_CALC_FOUND_ROWS a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+ORDER BY a LIMIT 4;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+connection master_1;
+SELECT found_rows();
+found_rows()
+5
+
+select high_priority
+connection master_1;
+SELECT HIGH_PRIORITY a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+select distinct
+connection master_1;
+SELECT DISTINCT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+select count
+connection master_1;
+SELECT count(*) FROM ta_l;
+count(*)
+5
+
+select table join not use index
+connection master_1;
+SELECT a.a, a.b, date_format(a.c, '%Y-%m-%d %H:%i:%s') FROM tb_l a WHERE
+EXISTS (SELECT * FROM ta_l b WHERE b.b = a.b) ORDER BY a.a;
+a b date_format(a.c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 10:21:39
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 20:03:11
+4 i 2003-10-30 05:01:03
+5 h 2001-10-31 23:59:59
+
+select using pushdown
+connection master_1;
+SELECT a.a, a.b, date_format(a.c, '%Y-%m-%d %H:%i:%s') FROM ta_l a WHERE
+a.b = 'g' ORDER BY a.a;
+a b date_format(a.c, '%Y-%m-%d %H:%i:%s')
+2 g 2000-02-01 00:00:00
+
+select using index and pushdown
+connection master_1;
+SELECT a.a, a.b, date_format(a.c, '%Y-%m-%d %H:%i:%s') FROM ta_l a WHERE
+a.a > 0 AND a.b = 'g' ORDER BY a.a;
+a b date_format(a.c, '%Y-%m-%d %H:%i:%s')
+2 g 2000-02-01 00:00:00
+
+insert
+connection master_1;
+TRUNCATE TABLE ta_l;
+connection master_1;
+INSERT INTO ta_l (a, b, c) VALUES (2, 'e', '2008-01-01 23:59:59');
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+2 e 2008-01-01 00:00:00
+
+insert select
+connection master_1;
+TRUNCATE TABLE ta_l;
+connection master_1;
+INSERT INTO ta_l (a, b, c) SELECT a, b, c FROM tb_l;
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+insert select a
+connection master_1;
+TRUNCATE TABLE ta_l;
+connection master_1;
+INSERT INTO ta_l (a, b, c) VALUES ((SELECT a FROM tb_l ORDER BY a LIMIT 1),
+'e', '2008-01-01 23:59:59');
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 e 2008-01-01 00:00:00
+
+insert low_priority
+connection master_1;
+TRUNCATE TABLE ta_l;
+connection master_1;
+INSERT LOW_PRIORITY INTO ta_l (a, b, c) values (2, 'e', '2008-01-01 23:59:59');
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+2 e 2008-01-01 00:00:00
+
+insert high_priority
+connection master_1;
+TRUNCATE TABLE ta_l;
+connection master_1;
+INSERT HIGH_PRIORITY INTO ta_l (a, b, c) VALUES (2, 'e',
+'2008-01-01 23:59:59');
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+2 e 2008-01-01 00:00:00
+
+insert ignore
+connection master_1;
+INSERT IGNORE INTO ta_l (a, b, c) VALUES (2, 'd', '2009-02-02 01:01:01');
+Warnings:
+Warning 1062 Duplicate entry '2' for key 'PRIMARY'
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+2 e 2008-01-01 00:00:00
+
+insert update (insert)
+connection master_1;
+TRUNCATE TABLE ta_l;
+connection master_1;
+INSERT INTO ta_l (a, b, c) VALUES (2, 'e', '2008-01-01 23:59:59') ON DUPLICATE
+KEY UPDATE b = 'f', c = '2005-08-08 11:11:11';
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+2 e 2008-01-01 00:00:00
+
+insert update (update)
+connection master_1;
+INSERT INTO ta_l (a, b, c) VALUES (2, 'e', '2008-01-01 23:59:59') ON DUPLICATE
+KEY UPDATE b = 'f', c = '2005-08-08 11:11:11';
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+2 f 2005-08-08 00:00:00
+
+replace
+connection master_1;
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (2, 'e', '2008-01-01 23:59:59');
+connection master_1;
+REPLACE INTO ta_l (a, b, c) VALUES (2, 'f', '2008-02-02 02:02:02');
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+2 f 2008-02-02 00:00:00
+
+replace select
+connection master_1;
+REPLACE INTO ta_l (a, b, c) SELECT a, b, c FROM tb_l;
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+replace select a
+connection master_1;
+REPLACE INTO ta_l (a, b, c) VALUES ((SELECT a FROM tb_l ORDER BY a LIMIT 1),
+'e', '2008-01-01 23:59:59');
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 e 2008-01-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+replace low_priority
+connection master_1;
+REPLACE LOW_PRIORITY INTO ta_l (a, b, c) VALUES (3, 'g',
+'2009-03-03 03:03:03');
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 e 2008-01-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 g 2009-03-03 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+update
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59');
+connection master_1;
+UPDATE ta_l SET b = 'f', c = '2008-02-02 02:02:02' WHERE a = 2;
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 e 2008-01-01 00:00:00
+2 f 2008-02-02 00:00:00
+
+update select
+connection master_1;
+UPDATE ta_l SET b = 'g', c = '2009-03-03 03:03:03' WHERE a IN (SELECT a FROM
+tb_l);
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 g 2009-03-03 00:00:00
+2 g 2009-03-03 00:00:00
+
+update select a
+connection master_1;
+UPDATE ta_l SET b = 'h', c = '2010-04-04 04:04:04' WHERE a = (SELECT a FROM
+tb_l ORDER BY a LIMIT 1);
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 h 2010-04-04 00:00:00
+2 g 2009-03-03 00:00:00
+
+update join
+connection master_1;
+UPDATE ta_l a, tb_l b SET a.b = b.b, a.c = b.c WHERE a.a = b.a;
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+
+update join a
+connection master_1;
+UPDATE ta_l a, tb_l b SET a.b = 'g', a.c = '2009-03-03 03:03:03' WHERE
+a.a = b.a;
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 g 2009-03-03 00:00:00
+2 g 2009-03-03 00:00:00
+
+update low_priority
+connection master_1;
+UPDATE LOW_PRIORITY ta_l SET b = 'f', c = '2008-02-02 02:02:02' WHERE a = 2;
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 g 2009-03-03 00:00:00
+2 f 2008-02-02 00:00:00
+
+update ignore
+connection master_1;
+UPDATE IGNORE ta_l SET a = 1, b = 'g', c = '2009-03-03 03:03:03' WHERE a = 2;
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 g 2009-03-03 00:00:00
+2 f 2008-02-02 00:00:00
+
+update pushdown
+connection master_1;
+update ta_l set b = 'j', c = '2009-03-03 03:03:03' where b = 'f';
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 g 2009-03-03 00:00:00
+2 j 2009-03-03 00:00:00
+
+update index pushdown
+connection master_1;
+UPDATE ta_l SET b = 'g', c = '2009-03-03 03:03:03' WHERE a > 0 AND b = 'j';
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 g 2009-03-03 00:00:00
+2 g 2009-03-03 00:00:00
+
+delete
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+connection master_1;
+DELETE FROM ta_l WHERE a = 2;
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 e 2008-01-01 00:00:00
+3 e 2008-01-01 00:00:00
+4 e 2008-01-01 00:00:00
+5 e 2008-01-01 00:00:00
+6 e 2008-01-01 00:00:00
+7 e 2008-01-01 00:00:00
+8 e 2008-01-01 00:00:00
+9 e 2008-01-01 00:00:00
+10 j 2008-01-01 00:00:00
+
+delete all
+connection master_1;
+DELETE FROM ta_l;
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+
+delete select
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+connection master_1;
+DELETE FROM ta_l WHERE a IN (SELECT a FROM tb_l);
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+6 e 2008-01-01 00:00:00
+7 e 2008-01-01 00:00:00
+8 e 2008-01-01 00:00:00
+9 e 2008-01-01 00:00:00
+10 j 2008-01-01 00:00:00
+
+delete select a
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+connection master_1;
+DELETE FROM ta_l WHERE a = (SELECT a FROM tb_l ORDER BY a LIMIT 1);
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+2 e 2008-01-01 00:00:00
+3 e 2008-01-01 00:00:00
+4 e 2008-01-01 00:00:00
+5 e 2008-01-01 00:00:00
+6 e 2008-01-01 00:00:00
+7 e 2008-01-01 00:00:00
+8 e 2008-01-01 00:00:00
+9 e 2008-01-01 00:00:00
+10 j 2008-01-01 00:00:00
+
+delete join
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+connection master_1;
+DELETE a FROM ta_l a, (SELECT a FROM tb_l ORDER BY a) b WHERE a.a = b.a;
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+6 e 2008-01-01 00:00:00
+7 e 2008-01-01 00:00:00
+8 e 2008-01-01 00:00:00
+9 e 2008-01-01 00:00:00
+10 j 2008-01-01 00:00:00
+
+delete low_priority
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+connection master_1;
+DELETE LOW_PRIORITY FROM ta_l WHERE a = 2;
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 e 2008-01-01 00:00:00
+3 e 2008-01-01 00:00:00
+4 e 2008-01-01 00:00:00
+5 e 2008-01-01 00:00:00
+6 e 2008-01-01 00:00:00
+7 e 2008-01-01 00:00:00
+8 e 2008-01-01 00:00:00
+9 e 2008-01-01 00:00:00
+10 j 2008-01-01 00:00:00
+
+delete ignore
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+connection master_1;
+DELETE IGNORE FROM ta_l WHERE a = 2;
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 e 2008-01-01 00:00:00
+3 e 2008-01-01 00:00:00
+4 e 2008-01-01 00:00:00
+5 e 2008-01-01 00:00:00
+6 e 2008-01-01 00:00:00
+7 e 2008-01-01 00:00:00
+8 e 2008-01-01 00:00:00
+9 e 2008-01-01 00:00:00
+10 j 2008-01-01 00:00:00
+
+delete quick
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+connection master_1;
+DELETE QUICK FROM ta_l WHERE a = 2;
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 e 2008-01-01 00:00:00
+3 e 2008-01-01 00:00:00
+4 e 2008-01-01 00:00:00
+5 e 2008-01-01 00:00:00
+6 e 2008-01-01 00:00:00
+7 e 2008-01-01 00:00:00
+8 e 2008-01-01 00:00:00
+9 e 2008-01-01 00:00:00
+10 j 2008-01-01 00:00:00
+
+delete pushdown
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+connection master_1;
+DELETE FROM ta_l WHERE b = 'e';
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+10 j 2008-01-01 00:00:00
+
+delete index pushdown
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+connection master_1;
+DELETE FROM ta_l WHERE a > 0 AND b = 'e';
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+10 j 2008-01-01 00:00:00
+
+truncate
+connection master_1;
+TRUNCATE TABLE ta_l;
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+
+deinit
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+for child3
+for child2
+child2_3
+child2_2
+child2_1
+for master_1
+
+end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/r/basic_sql_part.result b/storage/spider/mysql-test/spider/odbc/mariadb/r/basic_sql_part.result
new file mode 100644
index 00000000000..43683423662
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/r/basic_sql_part.result
@@ -0,0 +1,147 @@
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+
+drop and create databases
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+
+test select 1
+connection master_1;
+SELECT 1;
+1
+1
+connection master_1;
+DROP TABLE IF EXISTS tb_l;
+CREATE TABLE tb_l (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE2 MASTER_1_CHARSET2
+INSERT INTO tb_l (a, b, c) VALUES
+(1, 'f', '2008-07-01 10:21:39'),
+(2, 'g', '2000-02-01 00:00:00'),
+(3, 'j', '2007-05-04 20:03:11'),
+(4, 'i', '2003-10-30 05:01:03'),
+(5, 'h', '2001-10-31 23:59:59');
+
+create table with partition and select test
+connection master_1;
+CREATE TABLE ta_l2 (
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_COMMENT_P_2_1
+SELECT a, b, c FROM tb_l
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+select partition using pushdown
+connection master_1;
+SELECT a.a, a.b, date_format(a.c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 a WHERE
+a.b = 'g' ORDER BY a.a;
+a b date_format(a.c, '%Y-%m-%d %H:%i:%s')
+2 g 2000-02-01 00:00:00
+
+select partition using index pushdown
+connection master_1;
+SELECT a.a, a.b, date_format(a.c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 a WHERE
+a.a > 0 AND a.b = 'g' ORDER BY a.a;
+a b date_format(a.c, '%Y-%m-%d %H:%i:%s')
+2 g 2000-02-01 00:00:00
+
+update partition pushdown
+connection master_1;
+UPDATE ta_l2 SET b = 'e', c = '2009-03-03 03:03:03' WHERE b = 'j';
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 e 2009-03-03 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+update partition index pushdown
+connection master_1;
+UPDATE ta_l2 SET b = 'j', c = '2009-03-03 03:03:03' WHERE a > 0 AND b = 'e';
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+2 g 2000-02-01 00:00:00
+3 j 2009-03-03 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+delete partition pushdown
+TRUNCATE TABLE ta_l2;
+INSERT INTO ta_l2 SELECT a, b, c FROM tb_l;
+connection master_1;
+DELETE FROM ta_l2 WHERE b = 'g';
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+delete partition index pushdown
+TRUNCATE TABLE ta_l2;
+INSERT INTO ta_l2 SELECT a, b, c FROM tb_l;
+connection master_1;
+DELETE FROM ta_l2 WHERE a > 0 AND b = 'g';
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 f 2008-07-01 00:00:00
+3 j 2007-05-04 00:00:00
+4 i 2003-10-30 00:00:00
+5 h 2001-10-31 00:00:00
+
+deinit
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+for child3
+for child2
+child2_3
+child2_2
+child2_1
+for master_1
+
+end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/r/direct_aggregate.result b/storage/spider/mysql-test/spider/odbc/mariadb/r/direct_aggregate.result
new file mode 100644
index 00000000000..b4ce8f4c5c5
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/r/direct_aggregate.result
@@ -0,0 +1,106 @@
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+
+drop and create databases
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+
+test select 1
+connection master_1;
+SELECT 1;
+1
+1
+
+create table select test
+connection master_1;
+DROP TABLE IF EXISTS ta_l;
+CREATE TABLE ta_l (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1
+INSERT INTO ta_l (a, b, c) VALUES
+(1, 'a', '2008-08-01 10:21:39'),
+(2, 'b', '2000-01-01 00:00:00'),
+(3, 'e', '2007-06-04 20:03:11'),
+(4, 'd', '2003-11-30 05:01:03'),
+(5, 'c', '2001-12-31 23:59:59');
+
+direct_aggregating test
+connection master_1;
+SHOW GLOBAL STATUS LIKE 'Spider_direct_aggregate%';
+Variable_name Value
+Spider_direct_aggregate 0
+SELECT COUNT(*) FROM ta_l;
+COUNT(*)
+5
+SHOW GLOBAL STATUS LIKE 'Spider_direct_aggregate%';
+Variable_name Value
+Spider_direct_aggregate 1
+SELECT MAX(a) FROM ta_l;
+MAX(a)
+5
+SHOW GLOBAL STATUS LIKE 'Spider_direct_aggregate%';
+Variable_name Value
+Spider_direct_aggregate 2
+SELECT MIN(a) FROM ta_l;
+MIN(a)
+1
+SHOW GLOBAL STATUS LIKE 'Spider_direct_aggregate%';
+Variable_name Value
+Spider_direct_aggregate 3
+SELECT MAX(a) FROM ta_l WHERE a < 5;
+MAX(a)
+4
+SHOW GLOBAL STATUS LIKE 'Spider_direct_aggregate%';
+Variable_name Value
+Spider_direct_aggregate 4
+SELECT MIN(a) FROM ta_l WHERE a > 1;
+MIN(a)
+2
+SHOW GLOBAL STATUS LIKE 'Spider_direct_aggregate%';
+Variable_name Value
+Spider_direct_aggregate 5
+
+deinit
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+for child3
+for child2
+child2_3
+child2_2
+child2_1
+for master_1
+
+end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/r/direct_aggregate_part.result b/storage/spider/mysql-test/spider/odbc/mariadb/r/direct_aggregate_part.result
new file mode 100644
index 00000000000..088a3e6c850
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/r/direct_aggregate_part.result
@@ -0,0 +1,96 @@
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+
+drop and create databases
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+
+test select 1
+connection master_1;
+SELECT 1;
+1
+1
+
+with partition test
+connection master_1;
+CREATE TABLE ta_l2 (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_COMMENT2_P_2_1
+SHOW GLOBAL STATUS LIKE 'Spider_direct_aggregate%';
+Variable_name Value
+Spider_direct_aggregate 0
+SELECT COUNT(*) FROM ta_l2;
+COUNT(*)
+5
+SHOW GLOBAL STATUS LIKE 'Spider_direct_aggregate%';
+Variable_name Value
+Spider_direct_aggregate 2
+SELECT MAX(a) FROM ta_l2;
+MAX(a)
+5
+SHOW GLOBAL STATUS LIKE 'Spider_direct_aggregate%';
+Variable_name Value
+Spider_direct_aggregate 4
+SELECT MIN(a) FROM ta_l2;
+MIN(a)
+1
+SHOW GLOBAL STATUS LIKE 'Spider_direct_aggregate%';
+Variable_name Value
+Spider_direct_aggregate 6
+SELECT MAX(a) FROM ta_l2 WHERE a < 5;
+MAX(a)
+4
+SHOW GLOBAL STATUS LIKE 'Spider_direct_aggregate%';
+Variable_name Value
+Spider_direct_aggregate 8
+SELECT MIN(a) FROM ta_l2 WHERE a > 1;
+MIN(a)
+2
+SHOW GLOBAL STATUS LIKE 'Spider_direct_aggregate%';
+Variable_name Value
+Spider_direct_aggregate 10
+
+deinit
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+for child3
+for child2
+child2_3
+child2_2
+child2_1
+for master_1
+
+end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/r/direct_update.result b/storage/spider/mysql-test/spider/odbc/mariadb/r/direct_update.result
new file mode 100644
index 00000000000..b072fb8bbd8
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/r/direct_update.result
@@ -0,0 +1,161 @@
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+
+drop and create databases
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+
+test select 1
+connection master_1;
+SELECT 1;
+1
+1
+
+create table select test
+connection master_1;
+DROP TABLE IF EXISTS ta_l;
+CREATE TABLE ta_l (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1
+INSERT INTO ta_l (a, b, c) VALUES
+(1, 'a', '2008-08-01 10:21:39'),
+(2, 'b', '2000-01-01 00:00:00'),
+(3, 'e', '2007-06-04 20:03:11'),
+(4, 'd', '2003-11-30 05:01:03'),
+(5, 'c', '2001-12-31 23:59:59');
+
+direct_updating test
+connection master_1;
+SHOW GLOBAL STATUS LIKE 'Spider_direct_update%';
+Variable_name Value
+Spider_direct_update 0
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+2 b 2000-01-01 00:00:00
+3 e 2007-06-04 00:00:00
+4 d 2003-11-30 00:00:00
+5 c 2001-12-31 00:00:00
+update all rows with function
+UPDATE ta_l SET c = ADDDATE(c, 1);
+SHOW GLOBAL STATUS LIKE 'Spider_direct_update%';
+Variable_name Value
+Spider_direct_update 0
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-02 00:00:00
+2 b 2000-01-02 00:00:00
+3 e 2007-06-05 00:00:00
+4 d 2003-12-01 00:00:00
+5 c 2002-01-01 00:00:00
+update by primary key
+UPDATE ta_l SET b = 'x' WHERE a = 3;
+SHOW GLOBAL STATUS LIKE 'Spider_direct_update%';
+Variable_name Value
+Spider_direct_update 1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-02 00:00:00
+2 b 2000-01-02 00:00:00
+3 x 2007-06-05 00:00:00
+4 d 2003-12-01 00:00:00
+5 c 2002-01-01 00:00:00
+update by a column without index
+UPDATE ta_l SET c = '2011-10-17' WHERE b = 'x';
+SHOW GLOBAL STATUS LIKE 'Spider_direct_update%';
+Variable_name Value
+Spider_direct_update 2
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-02 00:00:00
+2 b 2000-01-02 00:00:00
+3 x 2011-10-17 00:00:00
+4 d 2003-12-01 00:00:00
+5 c 2002-01-01 00:00:00
+update by primary key with order and limit
+UPDATE ta_l SET c = ADDDATE(c, 1) WHERE a < 4 ORDER BY b DESC LIMIT 1;
+SHOW GLOBAL STATUS LIKE 'Spider_direct_update%';
+Variable_name Value
+Spider_direct_update 2
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-02 00:00:00
+2 b 2000-01-02 00:00:00
+3 x 2011-10-18 00:00:00
+4 d 2003-12-01 00:00:00
+5 c 2002-01-01 00:00:00
+delete by primary key with order and limit
+DELETE FROM ta_l WHERE a < 4 ORDER BY c LIMIT 1;
+SHOW GLOBAL STATUS LIKE 'Spider_direct_delete%';
+Variable_name Value
+Spider_direct_delete 0
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-02 00:00:00
+3 x 2011-10-18 00:00:00
+4 d 2003-12-01 00:00:00
+5 c 2002-01-01 00:00:00
+delete by a column without index
+DELETE FROM ta_l WHERE b = 'c';
+SHOW GLOBAL STATUS LIKE 'Spider_direct_delete%';
+Variable_name Value
+Spider_direct_delete 1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-02 00:00:00
+3 x 2011-10-18 00:00:00
+4 d 2003-12-01 00:00:00
+delete by primary key
+DELETE FROM ta_l WHERE a = 3;
+SHOW GLOBAL STATUS LIKE 'Spider_direct_delete%';
+Variable_name Value
+Spider_direct_delete 2
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-02 00:00:00
+4 d 2003-12-01 00:00:00
+
+deinit
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+for child3
+for child2
+child2_3
+child2_2
+child2_1
+for master_1
+
+end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/r/direct_update_part.result b/storage/spider/mysql-test/spider/odbc/mariadb/r/direct_update_part.result
new file mode 100644
index 00000000000..520af7497b1
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/r/direct_update_part.result
@@ -0,0 +1,151 @@
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+
+drop and create databases
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+
+test select 1
+connection master_1;
+SELECT 1;
+1
+1
+
+with partition test
+connection master_1;
+CREATE TABLE ta_l2 (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_COMMENT2_P_2_1
+SHOW GLOBAL STATUS LIKE 'Spider_direct_update%';
+Variable_name Value
+Spider_direct_update 0
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+2 b 2000-01-01 00:00:00
+3 e 2007-06-04 00:00:00
+4 d 2003-11-30 00:00:00
+5 c 2001-12-31 00:00:00
+update all rows with function
+UPDATE ta_l2 SET c = ADDDATE(c, 1);
+SHOW GLOBAL STATUS LIKE 'Spider_direct_update%';
+Variable_name Value
+Spider_direct_update 0
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-02 00:00:00
+2 b 2000-01-02 00:00:00
+3 e 2007-06-05 00:00:00
+4 d 2003-12-01 00:00:00
+5 c 2002-01-01 00:00:00
+update by primary key
+UPDATE ta_l2 SET b = 'x' WHERE a = 3;
+SHOW GLOBAL STATUS LIKE 'Spider_direct_update%';
+Variable_name Value
+Spider_direct_update 1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-02 00:00:00
+2 b 2000-01-02 00:00:00
+3 x 2007-06-05 00:00:00
+4 d 2003-12-01 00:00:00
+5 c 2002-01-01 00:00:00
+update by a column without index
+UPDATE ta_l2 SET c = '2011-10-17' WHERE b = 'x';
+SHOW GLOBAL STATUS LIKE 'Spider_direct_update%';
+Variable_name Value
+Spider_direct_update 3
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-02 00:00:00
+2 b 2000-01-02 00:00:00
+3 x 2011-10-17 00:00:00
+4 d 2003-12-01 00:00:00
+5 c 2002-01-01 00:00:00
+update by primary key with order and limit
+UPDATE ta_l2 SET c = ADDDATE(c, 1) WHERE a < 4 ORDER BY b DESC LIMIT 1;
+SHOW GLOBAL STATUS LIKE 'Spider_direct_update%';
+Variable_name Value
+Spider_direct_update 3
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-02 00:00:00
+2 b 2000-01-02 00:00:00
+3 x 2011-10-18 00:00:00
+4 d 2003-12-01 00:00:00
+5 c 2002-01-01 00:00:00
+delete by primary key with order and limit
+DELETE FROM ta_l2 WHERE a < 4 ORDER BY c LIMIT 1;
+SHOW GLOBAL STATUS LIKE 'Spider_direct_delete%';
+Variable_name Value
+Spider_direct_delete 0
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-02 00:00:00
+3 x 2011-10-18 00:00:00
+4 d 2003-12-01 00:00:00
+5 c 2002-01-01 00:00:00
+delete by a column without index
+DELETE FROM ta_l2 WHERE b = 'c';
+SHOW GLOBAL STATUS LIKE 'Spider_direct_delete%';
+Variable_name Value
+Spider_direct_delete 2
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-02 00:00:00
+3 x 2011-10-18 00:00:00
+4 d 2003-12-01 00:00:00
+delete by primary key
+DELETE FROM ta_l2 WHERE a = 3;
+SHOW GLOBAL STATUS LIKE 'Spider_direct_delete%';
+Variable_name Value
+Spider_direct_delete 3
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-02 00:00:00
+4 d 2003-12-01 00:00:00
+
+deinit
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+for child3
+for child2
+child2_3
+child2_2
+child2_1
+for master_1
+
+end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/r/function.result b/storage/spider/mysql-test/spider/odbc/mariadb/r/function.result
new file mode 100644
index 00000000000..c619140625e
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/r/function.result
@@ -0,0 +1,166 @@
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+
+drop and create databases
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+
+test select 1
+connection master_1;
+SELECT 1;
+1
+1
+
+in()
+connection master_1;
+CREATE TABLE t1 (
+a VARCHAR(255),
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET3 MASTER_1_COMMENT_TEXT_PK1_1
+insert into t1 values ('1');
+insert into t1 select a + 1 from t1;
+insert into t1 select a + 2 from t1;
+insert into t1 select a + 4 from t1;
+insert into t1 select a + 8 from t1;
+insert into t1 select a + 16 from t1;
+insert into t1 select a + 32 from t1;
+insert into t1 select a + 64 from t1;
+insert into t1 select a + 128 from t1;
+insert into t1 select a + 256 from t1;
+insert into t1 select a + 512 from t1;
+flush tables;
+connection master_1;
+select a from t1 where a in ('15', '120');
+a
+120
+15
+
+date_sub()
+connection master_1;
+DROP TABLE IF EXISTS ta_l;
+CREATE TABLE ta_l (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1
+INSERT INTO ta_l (a, b, c) VALUES
+(1, 'a', '2008-08-01 10:21:39'),
+(2, 'b', '2000-01-01 00:00:00'),
+(3, 'e', '2007-06-04 20:03:11'),
+(4, 'd', '2003-11-30 05:01:03'),
+(5, 'c', '2001-12-31 23:59:59');
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+2 b 2000-01-01 00:00:00
+3 e 2007-06-04 00:00:00
+4 d 2003-11-30 00:00:00
+5 c 2001-12-31 00:00:00
+UPDATE ta_l SET c = DATE_SUB(c, INTERVAL 1 YEAR);
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2007-08-01 00:00:00
+2 b 1999-01-01 00:00:00
+3 e 2006-06-04 00:00:00
+4 d 2002-11-30 00:00:00
+5 c 2000-12-31 00:00:00
+UPDATE ta_l SET c = DATE_ADD(c, INTERVAL 1 QUARTER);
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2007-11-01 00:00:00
+2 b 1999-04-01 00:00:00
+3 e 2006-09-04 00:00:00
+4 d 2003-02-28 00:00:00
+5 c 2001-03-31 00:00:00
+UPDATE ta_l SET c = DATE_SUB(c, INTERVAL 1 MONTH);
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2007-10-01 00:00:00
+2 b 1999-03-01 00:00:00
+3 e 2006-08-04 00:00:00
+4 d 2003-01-28 00:00:00
+5 c 2001-02-28 00:00:00
+UPDATE ta_l SET c = DATE_ADD(c, INTERVAL 1 WEEK);
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2007-10-08 00:00:00
+2 b 1999-03-08 00:00:00
+3 e 2006-08-11 00:00:00
+4 d 2003-02-04 00:00:00
+5 c 2001-03-07 00:00:00
+UPDATE ta_l SET c = DATE_SUB(c, INTERVAL 1 DAY);
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2007-10-07 00:00:00
+2 b 1999-03-07 00:00:00
+3 e 2006-08-10 00:00:00
+4 d 2003-02-03 00:00:00
+5 c 2001-03-06 00:00:00
+UPDATE ta_l SET c = DATE_ADD(c, INTERVAL 1 HOUR);
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2007-10-07 00:00:00
+2 b 1999-03-07 00:00:00
+3 e 2006-08-10 00:00:00
+4 d 2003-02-03 00:00:00
+5 c 2001-03-06 00:00:00
+UPDATE ta_l SET c = DATE_SUB(c, INTERVAL 1 MINUTE);
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2007-10-06 00:00:00
+2 b 1999-03-06 00:00:00
+3 e 2006-08-09 00:00:00
+4 d 2003-02-02 00:00:00
+5 c 2001-03-05 00:00:00
+UPDATE ta_l SET c = DATE_ADD(c, INTERVAL 1 SECOND);
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2007-10-06 00:00:00
+2 b 1999-03-06 00:00:00
+3 e 2006-08-09 00:00:00
+4 d 2003-02-02 00:00:00
+5 c 2001-03-05 00:00:00
+
+deinit
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+for child3
+for child2
+child2_3
+child2_2
+child2_1
+for master_1
+
+end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/r/ha.result b/storage/spider/mysql-test/spider/odbc/mariadb/r/ha.result
new file mode 100644
index 00000000000..10bc18a8a68
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/r/ha.result
@@ -0,0 +1,316 @@
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+child3_1
+child3_2
+child3_3
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+child3_1
+child3_2
+child3_3
+
+drop and create databases
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote3', '', 'srv "s_2_3_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote3', '', 'srv "s_2_3_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote3', '', 'srv "s_2_3_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote3', '', 'srv "s_2_3_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote3', '', 'srv "s_2_3_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote3', '', 'srv "s_2_3_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+connection child3_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+connection child3_2;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+connection child3_3;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+
+test select 1
+connection master_1;
+SELECT 1;
+1
+1
+
+create table test
+connection master_1;
+DROP TABLE IF EXISTS ta_l;
+CREATE TABLE ta_l (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_HA_2_1
+INSERT INTO ta_l (a, b, c) VALUES
+(1, 'a', '2008-08-01 10:21:39'),
+(2, 'b', '2000-01-01 00:00:00'),
+(3, 'e', '2007-06-04 20:03:11'),
+(4, 'd', '2003-11-30 05:01:03'),
+(5, 'c', '2001-12-31 23:59:59');
+
+select test
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+2 b 2000-01-01 00:00:00
+3 e 2007-06-04 00:00:00
+4 d 2003-11-30 00:00:00
+5 c 2001-12-31 00:00:00
+
+fail-over test
+connection master_1;
+SHOW GLOBAL STATUS LIKE 'Spider_mon_table_cache_version%';
+Variable_name Value
+Spider_mon_table_cache_version 0
+Spider_mon_table_cache_version_req 1
+INSERT INTO ta_l (a, b, c) VALUES
+(6, 'e', '2011-05-05 20:04:05');
+ERROR HY000: Table 'auto_test_remote2.ta_r3' get a problem
+DELETE FROM ta_l WHERE a = 6;
+SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
+ORDER BY db_name, table_name, link_id;
+db_name table_name link_id link_status
+auto_test_local ta_l 0 1
+auto_test_local ta_l 1 3
+SELECT db_name, table_name, link_id FROM mysql.spider_link_failed_log;
+db_name table_name link_id
+auto_test_local ta_l 1
+SHOW GLOBAL STATUS LIKE 'Spider_mon_table_cache_version%';
+Variable_name Value
+Spider_mon_table_cache_version 1
+Spider_mon_table_cache_version_req 1
+INSERT INTO ta_l (a, b, c) VALUES
+(6, 'e', '2011-05-05 20:04:05');
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+2 b 2000-01-01 00:00:00
+3 e 2007-06-04 00:00:00
+4 d 2003-11-30 00:00:00
+5 c 2001-12-31 00:00:00
+6 e 2011-05-05 00:00:00
+
+recovery test
+connection master_1;
+ALTER TABLE ta_l
+CONNECTION='msi "5", mkd "2", lst "0 2"';
+SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
+ORDER BY db_name, table_name, link_id;
+db_name table_name link_id link_status
+auto_test_local ta_l 0 1
+auto_test_local ta_l 1 2
+show create table mysql.spider_tables;
+Table Create Table
+spider_tables CREATE TABLE `spider_tables` (
+ `db_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
+ `table_name` char(199) COLLATE utf8_bin NOT NULL DEFAULT '',
+ `link_id` int(11) NOT NULL DEFAULT 0,
+ `priority` bigint(20) NOT NULL DEFAULT 0,
+ `server` char(64) COLLATE utf8_bin DEFAULT NULL,
+ `scheme` char(64) COLLATE utf8_bin DEFAULT NULL,
+ `host` char(64) COLLATE utf8_bin DEFAULT NULL,
+ `port` char(5) COLLATE utf8_bin DEFAULT NULL,
+ `socket` text COLLATE utf8_bin DEFAULT NULL,
+ `username` char(64) COLLATE utf8_bin DEFAULT NULL,
+ `password` char(64) COLLATE utf8_bin DEFAULT NULL,
+ `ssl_ca` text COLLATE utf8_bin DEFAULT NULL,
+ `ssl_capath` text COLLATE utf8_bin DEFAULT NULL,
+ `ssl_cert` text COLLATE utf8_bin DEFAULT NULL,
+ `ssl_cipher` char(64) COLLATE utf8_bin DEFAULT NULL,
+ `ssl_key` text COLLATE utf8_bin DEFAULT NULL,
+ `ssl_verify_server_cert` tinyint(4) NOT NULL DEFAULT 0,
+ `monitoring_binlog_pos_at_failing` tinyint(4) NOT NULL DEFAULT 0,
+ `default_file` text COLLATE utf8_bin DEFAULT NULL,
+ `default_group` char(64) COLLATE utf8_bin DEFAULT NULL,
+ `dsn` char(64) COLLATE utf8_bin DEFAULT NULL,
+ `tgt_db_name` char(64) COLLATE utf8_bin DEFAULT NULL,
+ `tgt_table_name` char(64) COLLATE utf8_bin DEFAULT NULL,
+ `link_status` tinyint(4) NOT NULL DEFAULT 1,
+ `block_status` tinyint(4) NOT NULL DEFAULT 0,
+ `static_link_id` char(64) COLLATE utf8_bin DEFAULT NULL,
+ PRIMARY KEY (`db_name`,`table_name`,`link_id`),
+ UNIQUE KEY `uidx1` (`db_name`,`table_name`,`static_link_id`),
+ KEY `idx1` (`priority`)
+) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin PAGE_CHECKSUM=1 TRANSACTIONAL=1
+select * from mysql.spider_tables;
+db_name table_name link_id priority server scheme host port socket username password ssl_ca ssl_capath ssl_cert ssl_cipher ssl_key ssl_verify_server_cert monitoring_binlog_pos_at_failing default_file default_group dsn tgt_db_name tgt_table_name link_status block_status static_link_id
+auto_test_local ta_l 0 1000000 s_2_1 odbc_mariadb NULL 0 0 MariaDB ODBC 3.0 Driver auto_test_remote ta_r 1 0 NULL
+auto_test_local ta_l 1 1000000 s_2_2 odbc_mariadb NULL 0 0 MariaDB ODBC 3.0 Driver auto_test_remote2 ta_r3 2 0 NULL
+SELECT spider_copy_tables('ta_l', '0', '1');
+spider_copy_tables('ta_l', '0', '1')
+1
+connection master_1;
+ALTER TABLE ta_l
+CONNECTION='msi "5", mkd "2", lst "0 1"';
+SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
+ORDER BY db_name, table_name, link_id;
+db_name table_name link_id link_status
+auto_test_local ta_l 0 1
+auto_test_local ta_l 1 1
+INSERT INTO ta_l (a, b, c) VALUES
+(8, 'g', '2011-05-05 21:33:30');
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+2 b 2000-01-01 00:00:00
+3 e 2007-06-04 00:00:00
+4 d 2003-11-30 00:00:00
+5 c 2001-12-31 00:00:00
+6 e 2011-05-05 00:00:00
+8 g 2011-05-05 00:00:00
+DROP TABLE ta_l;
+connection master_1;
+SELECT spider_flush_table_mon_cache();
+spider_flush_table_mon_cache()
+1
+
+active standby test
+create table test
+connection master_1;
+DROP TABLE IF EXISTS ta_l;
+CREATE TABLE ta_l (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_HA_AS_2_1
+INSERT INTO ta_l (a, b, c) VALUES
+(1, 'a', '2008-08-01 10:21:39'),
+(2, 'b', '2000-01-01 00:00:00'),
+(3, 'e', '2007-06-04 20:03:11'),
+(4, 'd', '2003-11-30 05:01:03'),
+(5, 'c', '2001-12-31 23:59:59');
+
+select test
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+2 b 2000-01-01 00:00:00
+3 e 2007-06-04 00:00:00
+4 d 2003-11-30 00:00:00
+5 c 2001-12-31 00:00:00
+
+fail-over test
+connection master_1;
+SHOW GLOBAL STATUS LIKE 'Spider_mon_table_cache_version%';
+Variable_name Value
+Spider_mon_table_cache_version 1
+Spider_mon_table_cache_version_req 2
+INSERT INTO ta_l (a, b, c) VALUES
+(6, 'e', '2011-05-05 20:04:05');
+ERROR HY000: Table 'auto_test_remote.ta_r' get a problem
+SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
+ORDER BY db_name, table_name, link_id;
+db_name table_name link_id link_status
+auto_test_local ta_l 0 3
+auto_test_local ta_l 1 1
+SELECT db_name, table_name, link_id FROM mysql.spider_link_failed_log;
+db_name table_name link_id
+auto_test_local ta_l 1
+auto_test_local ta_l 0
+SHOW GLOBAL STATUS LIKE 'Spider_mon_table_cache_version%';
+Variable_name Value
+Spider_mon_table_cache_version 2
+Spider_mon_table_cache_version_req 2
+INSERT INTO ta_l (a, b, c) VALUES
+(6, 'e', '2011-05-05 20:04:05');
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+6 e 2011-05-05 00:00:00
+
+recovery test
+connection master_1;
+ALTER TABLE ta_l
+CONNECTION='msi "5", mkd "2", alc "1", lst "1 0"';
+SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
+ORDER BY db_name, table_name, link_id;
+db_name table_name link_id link_status
+auto_test_local ta_l 0 1
+auto_test_local ta_l 1 1
+INSERT INTO ta_l (a, b, c) VALUES
+(8, 'g', '2011-05-05 21:33:30');
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+8 g 2011-05-05 00:00:00
+DROP TABLE ta_l;
+connection master_1;
+SELECT spider_flush_table_mon_cache();
+spider_flush_table_mon_cache()
+1
+
+deinit
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote3', '', 'srv "s_2_3", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote3', '', 'srv "s_2_3", default_group "MariaDB ODBC 3.0 Driver"')
+1
+connection child3_1;
+DROP DATABASE IF EXISTS auto_test_local;
+connection child3_2;
+DROP DATABASE IF EXISTS auto_test_local;
+connection child3_3;
+DROP DATABASE IF EXISTS auto_test_local;
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+child3_1
+child3_2
+child3_3
+for child3
+child3_3
+child3_2
+child3_1
+for child2
+child2_3
+child2_2
+child2_1
+for master_1
+
+end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/r/ha_part.result b/storage/spider/mysql-test/spider/odbc/mariadb/r/ha_part.result
new file mode 100644
index 00000000000..17b6ab7b3df
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/r/ha_part.result
@@ -0,0 +1,306 @@
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+child3_1
+child3_2
+child3_3
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+child3_1
+child3_2
+child3_3
+
+drop and create databases
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote3', '', 'srv "s_2_3_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote3', '', 'srv "s_2_3_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote3', '', 'srv "s_2_3_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote3', '', 'srv "s_2_3_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote3', '', 'srv "s_2_3_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote3', '', 'srv "s_2_3_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+connection child3_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+connection child3_2;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+connection child3_3;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+
+test select 1
+connection master_1;
+SELECT 1;
+1
+1
+
+create table with partition test
+connection master_1;
+DROP TABLE IF EXISTS ta_l2;
+CREATE TABLE ta_l2 (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_HA_P_2_1
+INSERT INTO ta_l2 (a, b, c) VALUES
+(1, 'a', '2008-08-01 10:21:39'),
+(2, 'b', '2000-01-01 00:00:00'),
+(3, 'e', '2007-06-04 20:03:11'),
+(4, 'd', '2003-11-30 05:01:03'),
+(5, 'c', '2001-12-31 23:59:59');
+
+select test
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+2 b 2000-01-01 00:00:00
+3 e 2007-06-04 00:00:00
+4 d 2003-11-30 00:00:00
+5 c 2001-12-31 00:00:00
+
+fail-over test
+connection master_1;
+SHOW GLOBAL STATUS LIKE 'Spider_mon_table_cache_version%';
+Variable_name Value
+Spider_mon_table_cache_version 0
+Spider_mon_table_cache_version_req 1
+INSERT INTO ta_l2 (a, b, c) VALUES
+(6, 'e', '2011-05-05 20:04:05');
+ERROR HY000: Table 'auto_test_remote3.ta_r4' get a problem
+DELETE FROM ta_l2 WHERE a = 6;
+SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
+ORDER BY db_name, table_name, link_id;
+db_name table_name link_id link_status
+auto_test_local ta_l2#P#pt1 0 1
+auto_test_local ta_l2#P#pt1 1 1
+auto_test_local ta_l2#P#pt2 0 1
+auto_test_local ta_l2#P#pt2 1 3
+SELECT db_name, table_name, link_id FROM mysql.spider_link_failed_log;
+db_name table_name link_id
+auto_test_local ta_l2#P#pt2 1
+SHOW GLOBAL STATUS LIKE 'Spider_mon_table_cache_version%';
+Variable_name Value
+Spider_mon_table_cache_version 1
+Spider_mon_table_cache_version_req 1
+INSERT INTO ta_l2 (a, b, c) VALUES
+(6, 'e', '2011-05-05 20:04:05');
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+2 b 2000-01-01 00:00:00
+3 e 2007-06-04 00:00:00
+4 d 2003-11-30 00:00:00
+5 c 2001-12-31 00:00:00
+6 e 2011-05-05 00:00:00
+
+recovery test
+connection master_1;
+ALTER TABLE ta_l2
+PARTITION BY KEY(a) (
+PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\ ODBC\\ 3.0\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\ ODBC\\ 3.0\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001", lst "0 2"'
+ );
+SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
+ORDER BY db_name, table_name, link_id;
+db_name table_name link_id link_status
+auto_test_local ta_l2#P#pt1 0 1
+auto_test_local ta_l2#P#pt1 1 1
+auto_test_local ta_l2#P#pt2 0 1
+auto_test_local ta_l2#P#pt2 1 2
+SELECT spider_copy_tables('ta_l2#P#pt2', '0', '1');
+spider_copy_tables('ta_l2#P#pt2', '0', '1')
+1
+connection master_1;
+ALTER TABLE ta_l2
+PARTITION BY KEY(a) (
+PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\ ODBC\\ 3.0\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\ ODBC\\ 3.0\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001", lst "0 1"'
+ );
+SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
+ORDER BY db_name, table_name, link_id;
+db_name table_name link_id link_status
+auto_test_local ta_l2#P#pt1 0 1
+auto_test_local ta_l2#P#pt1 1 1
+auto_test_local ta_l2#P#pt2 0 1
+auto_test_local ta_l2#P#pt2 1 1
+INSERT INTO ta_l2 (a, b, c) VALUES
+(8, 'g', '2011-05-05 21:33:30'),
+(9, 'h', '2011-05-05 22:32:10');
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+2 b 2000-01-01 00:00:00
+3 e 2007-06-04 00:00:00
+4 d 2003-11-30 00:00:00
+5 c 2001-12-31 00:00:00
+6 e 2011-05-05 00:00:00
+8 g 2011-05-05 00:00:00
+9 h 2011-05-05 00:00:00
+DROP TABLE ta_l2;
+
+create table with partition test
+connection master_1;
+DROP TABLE IF EXISTS ta_l2;
+CREATE TABLE ta_l2 (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_HA_AS_P_2_1
+INSERT INTO ta_l2 (a, b, c) VALUES
+(1, 'a', '2008-08-01 10:21:39'),
+(2, 'b', '2000-01-01 00:00:00'),
+(3, 'e', '2007-06-04 20:03:11'),
+(4, 'd', '2003-11-30 05:01:03'),
+(5, 'c', '2001-12-31 23:59:59');
+
+select test
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+2 b 2000-01-01 00:00:00
+3 e 2007-06-04 00:00:00
+4 d 2003-11-30 00:00:00
+5 c 2001-12-31 00:00:00
+
+fail-over test
+connection master_1;
+SHOW GLOBAL STATUS LIKE 'Spider_mon_table_cache_version%';
+Variable_name Value
+Spider_mon_table_cache_version 1
+Spider_mon_table_cache_version_req 1
+INSERT INTO ta_l2 (a, b, c) VALUES
+(6, 'e', '2011-05-05 20:04:05');
+ERROR HY000: Table 'auto_test_remote.ta_r2' get a problem
+DELETE FROM ta_l2 WHERE a = 6;
+SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
+ORDER BY db_name, table_name, link_id;
+db_name table_name link_id link_status
+auto_test_local ta_l2#P#pt1 0 1
+auto_test_local ta_l2#P#pt1 1 1
+auto_test_local ta_l2#P#pt2 0 3
+auto_test_local ta_l2#P#pt2 1 1
+SELECT db_name, table_name, link_id FROM mysql.spider_link_failed_log;
+db_name table_name link_id
+auto_test_local ta_l2#P#pt2 1
+auto_test_local ta_l2#P#pt2 0
+SHOW GLOBAL STATUS LIKE 'Spider_mon_table_cache_version%';
+Variable_name Value
+Spider_mon_table_cache_version 1
+Spider_mon_table_cache_version_req 1
+INSERT INTO ta_l2 (a, b, c) VALUES
+(6, 'e', '2011-05-05 20:04:05');
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+3 e 2007-06-04 00:00:00
+5 c 2001-12-31 00:00:00
+6 e 2011-05-05 00:00:00
+
+recovery test
+connection master_1;
+ALTER TABLE ta_l2
+PARTITION BY KEY(a) (
+PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", default_group "MariaDB\\ ODBC\\ 3.0\\ Driver", tbl "ta_r ta_r3",
+ priority "1000"',
+PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", default_group "MariaDB\\ ODBC\\ 3.0\\ Driver", tbl "ta_r2 ta_r4",
+ priority "1000001", lst "1 0"'
+ );
+SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
+ORDER BY db_name, table_name, link_id;
+db_name table_name link_id link_status
+auto_test_local ta_l2#P#pt1 0 1
+auto_test_local ta_l2#P#pt1 1 1
+auto_test_local ta_l2#P#pt2 0 1
+auto_test_local ta_l2#P#pt2 1 1
+INSERT INTO ta_l2 (a, b, c) VALUES
+(8, 'g', '2011-05-05 21:33:30'),
+(9, 'h', '2011-05-05 22:32:10');
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+3 e 2007-06-04 00:00:00
+5 c 2001-12-31 00:00:00
+8 g 2011-05-05 00:00:00
+9 h 2011-05-05 00:00:00
+DROP TABLE ta_l2;
+
+deinit
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote3', '', 'srv "s_2_3", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote3', '', 'srv "s_2_3", default_group "MariaDB ODBC 3.0 Driver"')
+1
+connection child3_1;
+DROP DATABASE IF EXISTS auto_test_local;
+connection child3_2;
+DROP DATABASE IF EXISTS auto_test_local;
+connection child3_3;
+DROP DATABASE IF EXISTS auto_test_local;
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+child3_1
+child3_2
+child3_3
+for child3
+child3_3
+child3_2
+child3_1
+for child2
+child2_3
+child2_2
+child2_1
+for master_1
+
+end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/r/spider3_fixes.result b/storage/spider/mysql-test/spider/odbc/mariadb/r/spider3_fixes.result
new file mode 100644
index 00000000000..c10d18deba3
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/r/spider3_fixes.result
@@ -0,0 +1,208 @@
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+for slave1_1
+
+drop and create databases
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+
+test select 1
+connection master_1;
+SELECT 1;
+1
+1
+
+3.1
+auto_increment
+connection master_1;
+DROP TABLE IF EXISTS t1, t2;
+CREATE TABLE t1 (
+id int(11) NOT NULL AUTO_INCREMENT,
+PRIMARY KEY (id)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_INCREMENT1_1
+CREATE TABLE t2 (
+id int(11) NOT NULL AUTO_INCREMENT,
+PRIMARY KEY (id)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_INCREMENT1_1
+MASTER_1_AUTO_INCREMENT_INCREMENT2
+MASTER_1_AUTO_INCREMENT_OFFSET2
+spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 2', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 3', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 2', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 3', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+INSERT INTO t1 () VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+777
+SELECT MAX(id) FROM t1;
+MAX(id)
+777
+INSERT INTO t2 () VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+1554
+SELECT MAX(id) FROM t2;
+MAX(id)
+1554
+MASTER_1_AUTO_INCREMENT_OFFSET3
+INSERT INTO t1 (id) VALUES (null);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+1555
+SELECT MAX(id) FROM t1;
+MAX(id)
+1555
+MASTER_1_AUTO_INCREMENT_OFFSET4
+INSERT INTO t2 (id) VALUES (null);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+2331
+SELECT MAX(id) FROM t2;
+MAX(id)
+2331
+MASTER_1_AUTO_INCREMENT_OFFSET3
+INSERT INTO t1 () VALUES (),(),(),();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+2332
+SELECT id FROM t1 ORDER BY id;
+id
+777
+1554
+1555
+2331
+2332
+3109
+3886
+4663
+MASTER_1_AUTO_INCREMENT_OFFSET4
+INSERT INTO t2 () VALUES (),(),(),();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+5439
+SELECT id FROM t2 ORDER BY id;
+id
+777
+1554
+1555
+2331
+2332
+3109
+3886
+4663
+5439
+6216
+6993
+7770
+TRUNCATE TABLE t1;
+TRUNCATE TABLE t2;
+INSERT INTO t1 () VALUES (),(),(),();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+777
+SELECT id FROM t1 ORDER BY id;
+id
+777
+1554
+2331
+3108
+INSERT INTO t2 () VALUES (),(),(),();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+3885
+SELECT id FROM t2 ORDER BY id;
+id
+777
+1554
+2331
+3108
+3885
+4662
+5439
+6216
+SET INSERT_ID=5000;
+MASTER_1_AUTO_INCREMENT_OFFSET3
+INSERT INTO t1 () VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+5000
+SELECT MAX(id) FROM t1;
+MAX(id)
+6216
+MASTER_1_AUTO_INCREMENT_OFFSET4
+INSERT INTO t2 () VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+6993
+SELECT MAX(id) FROM t2;
+MAX(id)
+6993
+INSERT INTO t1 (id) VALUES (10000);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+6993
+SELECT MAX(id) FROM t1;
+MAX(id)
+10000
+INSERT INTO t2 (id) VALUES (1000);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+6993
+SELECT MAX(id) FROM t2;
+MAX(id)
+10000
+
+deinit
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+for slave1_1
+for child3
+for child2
+child2_3
+child2_2
+child2_1
+for master_1
+
+end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/r/spider3_fixes_part.result b/storage/spider/mysql-test/spider/odbc/mariadb/r/spider3_fixes_part.result
new file mode 100644
index 00000000000..c6fb7369ab8
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/r/spider3_fixes_part.result
@@ -0,0 +1,206 @@
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+for slave1_1
+
+drop and create databases
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+
+test select 1
+connection master_1;
+SELECT 1;
+1
+1
+auto_increment with partition
+connection master_1;
+DROP TABLE IF EXISTS t1, t2;
+CREATE TABLE t1 (
+id int(11) NOT NULL AUTO_INCREMENT,
+PRIMARY KEY (id)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_INCREMENT1_P_1
+CREATE TABLE t2 (
+id int(11) NOT NULL AUTO_INCREMENT,
+PRIMARY KEY (id)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_INCREMENT1_P_1
+MASTER_1_AUTO_INCREMENT_INCREMENT2
+MASTER_1_AUTO_INCREMENT_OFFSET2
+spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 2', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 3', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 2', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 3', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+INSERT INTO t1 () VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+777
+SELECT MAX(id) FROM t1;
+MAX(id)
+777
+INSERT INTO t2 () VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+1554
+SELECT MAX(id) FROM t2;
+MAX(id)
+1554
+MASTER_1_AUTO_INCREMENT_OFFSET3
+INSERT INTO t1 (id) VALUES (null);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+1555
+SELECT MAX(id) FROM t1;
+MAX(id)
+1555
+MASTER_1_AUTO_INCREMENT_OFFSET4
+INSERT INTO t2 (id) VALUES (null);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+2331
+SELECT MAX(id) FROM t2;
+MAX(id)
+2331
+MASTER_1_AUTO_INCREMENT_OFFSET3
+INSERT INTO t1 () VALUES (),(),(),();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+2332
+SELECT id FROM t1 ORDER BY id;
+id
+777
+1554
+1555
+2331
+2332
+3109
+3886
+4663
+MASTER_1_AUTO_INCREMENT_OFFSET4
+INSERT INTO t2 () VALUES (),(),(),();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+5439
+SELECT id FROM t2 ORDER BY id;
+id
+777
+1554
+1555
+2331
+2332
+3109
+3886
+4663
+5439
+6216
+6993
+7770
+TRUNCATE TABLE t1;
+TRUNCATE TABLE t2;
+INSERT INTO t1 () VALUES (),(),(),();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+777
+SELECT id FROM t1 ORDER BY id;
+id
+777
+1554
+2331
+3108
+INSERT INTO t2 () VALUES (),(),(),();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+3885
+SELECT id FROM t2 ORDER BY id;
+id
+777
+1554
+2331
+3108
+3885
+4662
+5439
+6216
+SET INSERT_ID=5000;
+MASTER_1_AUTO_INCREMENT_OFFSET3
+INSERT INTO t1 () VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+5000
+SELECT MAX(id) FROM t1;
+MAX(id)
+6216
+MASTER_1_AUTO_INCREMENT_OFFSET4
+INSERT INTO t2 () VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+6993
+SELECT MAX(id) FROM t2;
+MAX(id)
+6993
+INSERT INTO t1 (id) VALUES (10000);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+6993
+SELECT MAX(id) FROM t1;
+MAX(id)
+10000
+INSERT INTO t2 (id) VALUES (1000);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+6993
+SELECT MAX(id) FROM t2;
+MAX(id)
+10000
+
+deinit
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+for slave1_1
+for child3
+for child2
+child2_3
+child2_2
+child2_1
+for master_1
+
+end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/r/spider_fixes.result b/storage/spider/mysql-test/spider/odbc/mariadb/r/spider_fixes.result
new file mode 100644
index 00000000000..29d8b8fc795
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/r/spider_fixes.result
@@ -0,0 +1,563 @@
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+for slave1_1
+
+drop and create databases
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+
+test select 1
+connection master_1;
+SELECT 1;
+1
+1
+
+create table and insert
+connection master_1;
+DROP TABLE IF EXISTS tb_l;
+CREATE TABLE tb_l (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE2 MASTER_1_CHARSET2
+INSERT INTO tb_l (a, b, c) VALUES
+(1, 'a', '2008-08-01 10:21:39'),
+(2, 'b', '2000-01-01 00:00:00'),
+(3, 'e', '2007-06-04 20:03:11'),
+(4, 'd', '2003-11-30 05:01:03'),
+(5, 'c', '2001-12-31 23:59:59');
+DROP TABLE IF EXISTS ta_l;
+CREATE TABLE ta_l (
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1
+INSERT INTO ta_l SELECT a, b, c FROM tb_l;
+
+2.13
+select table with "order by desc" and "<"
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+WHERE a < 5 ORDER BY a DESC LIMIT 3;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+4 d 2003-11-30 00:00:00
+3 e 2007-06-04 00:00:00
+2 b 2000-01-01 00:00:00
+
+select table with "order by desc" and "<="
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+WHERE a <= 5 ORDER BY a DESC LIMIT 3;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+5 c 2001-12-31 00:00:00
+4 d 2003-11-30 00:00:00
+3 e 2007-06-04 00:00:00
+
+2.14
+update table with range scan and split_read
+connection master_1;
+UPDATE ta_l SET c = '2000-02-02 00:00:00' WHERE a > 1;
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+2 b 2000-02-02 00:00:00
+3 e 2000-02-02 00:00:00
+4 d 2000-02-02 00:00:00
+5 c 2000-02-02 00:00:00
+
+2.15
+select table with range scan
+TRUNCATE TABLE ta_l;
+DROP TABLE IF EXISTS ta_l;
+connection master_1;
+CREATE TABLE ta_l (
+a int(11) NOT NULL DEFAULT '0',
+b char(1) DEFAULT NULL,
+c datetime DEFAULT NULL,
+PRIMARY KEY (a, b, c)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT5_2_1
+INSERT INTO ta_l SELECT a, b, c FROM tb_l;
+connection master_1;
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a = 4 AND b >= 'b'
+AND c = '2003-11-30 05:01:03';
+a b c
+connection master_1;
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a = 4 AND b > 'b'
+AND c = '2003-11-30 05:01:03';
+a b c
+connection master_1;
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a >= 4 AND b = 'd'
+AND c = '2003-11-30 05:01:03';
+a b c
+connection master_1;
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a > 4 AND b = 'c'
+AND c = '2001-12-31 23:59:59';
+a b c
+connection master_1;
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a = 4 AND b <= 'd'
+AND c = '2003-11-30 05:01:03';
+a b c
+connection master_1;
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a = 4 AND b < 'e'
+AND c = '2003-11-30 05:01:03';
+a b c
+connection master_1;
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a <= 4 AND b = 'b'
+AND c = '2000-01-01 00:00:00';
+a b c
+2 b 2000-01-01 00:00:00
+connection master_1;
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a < 4 AND b = 'b'
+AND c = '2000-01-01 00:00:00';
+a b c
+2 b 2000-01-01 00:00:00
+connection master_1;
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a = 4 AND b >= 'b'
+AND b <= 'd' AND c = '2003-11-30 05:01:03';
+a b c
+connection master_1;
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a = 4 AND b > 'b'
+AND b < 'e' AND c = '2003-11-30 05:01:03';
+a b c
+connection master_1;
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a <= 4 AND a >= 1
+AND b >= 'b' AND c = '2003-11-30 05:01:03';
+a b c
+connection master_1;
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a < 4 AND a > 1
+AND b >= 'b' AND c = '2000-01-01 00:00:00';
+a b c
+2 b 2000-01-01 00:00:00
+
+2.16
+auto_increment insert with trigger
+connection master_1;
+CREATE TABLE ta_l_auto_inc (
+a INT AUTO_INCREMENT,
+b CHAR(1) DEFAULT 'c',
+c DATETIME DEFAULT '1999-10-10 10:10:10',
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT3_2_1
+CREATE TABLE tc_l (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE2 MASTER_1_CHARSET2
+CREATE TRIGGER ins_ta_l_auto_inc AFTER INSERT ON ta_l_auto_inc FOR EACH ROW BEGIN INSERT INTO tc_l (a, b, c) VALUES (NEW.a, NEW.b, NEW.c); END;;
+connection master_1;
+INSERT INTO ta_l_auto_inc (a, b, c) VALUES
+(NULL, 's', '2008-12-31 20:59:59');
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM tc_l ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 s 2008-12-31 20:59:59
+
+2.17
+engine-condition-pushdown with "or" and joining
+connection master_1;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l WHERE a = 1 OR a IN (SELECT a FROM tb_l);
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+1 a 2008-08-01 00:00:00
+2 b 2000-01-01 00:00:00
+3 e 2007-06-04 00:00:00
+4 d 2003-11-30 00:00:00
+5 c 2001-12-31 00:00:00
+
+2.23
+index merge
+connection master_1;
+CREATE TABLE ta_l_int (
+a INT AUTO_INCREMENT,
+b INT DEFAULT 10,
+c INT DEFAULT 11,
+PRIMARY KEY(a),
+KEY idx1(b),
+KEY idx2(c)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT4_2_1
+INSERT INTO ta_l_int (a, b, c) VALUES (1, 2, 3);
+INSERT INTO ta_l_int (a, b, c) SELECT a + 1, b + 1, c + 1 FROM ta_l_int;
+INSERT INTO ta_l_int (a, b, c) SELECT a + 2, b + 2, c + 2 FROM ta_l_int;
+INSERT INTO ta_l_int (a, b, c) SELECT a + 4, b + 4, c + 4 FROM ta_l_int;
+INSERT INTO ta_l_int (a, b, c) SELECT a + 8, b + 8, c + 8 FROM ta_l_int;
+connection master_1;
+SELECT a, b, c FROM ta_l_int force index(primary, idx1, idx2)
+WHERE a = 5 OR b = 5 OR c = 5 ORDER BY a;
+a b c
+3 4 5
+4 5 6
+5 6 7
+
+2.24
+index scan update without PK
+connection master_1;
+DROP TABLE IF EXISTS ta_l_int;
+CREATE TABLE ta_l_int (
+a INT NOT NULL,
+b INT DEFAULT 10,
+c INT DEFAULT 11,
+KEY idx1(b),
+KEY idx2(c)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT4_2_1
+SELECT a, b, c FROM ta_l_int ORDER BY a;
+a b c
+1 2 3
+2 3 4
+3 4 5
+4 5 6
+5 6 7
+6 7 8
+7 8 9
+8 9 10
+9 10 11
+10 11 12
+11 12 13
+12 13 14
+13 14 15
+14 15 16
+15 16 17
+16 17 18
+INSERT INTO ta_l_int (a, b, c) VALUES (0, 2, 3);
+INSERT INTO ta_l_int (a, b, c) VALUES (18, 2, 3);
+connection master_1;
+UPDATE ta_l_int SET c = 4 WHERE b = 2;
+connection master_1;
+SELECT a, b, c FROM ta_l_int ORDER BY a;
+a b c
+1 2 4
+2 3 4
+3 4 5
+4 5 6
+5 6 7
+6 7 8
+7 8 9
+8 9 10
+9 10 11
+10 11 12
+11 12 13
+12 13 14
+13 14 15
+14 15 16
+15 16 17
+16 17 18
+17 2 4
+18 2 4
+
+2.25
+direct order limit
+connection master_1;
+SHOW GLOBAL STATUS LIKE 'Spider_direct_order_limit%';
+Variable_name Value
+Spider_direct_order_limit 2
+SELECT a, b, c FROM ta_l_int ORDER BY a LIMIT 3;
+a b c
+1 2 4
+2 3 4
+3 4 5
+SHOW GLOBAL STATUS LIKE 'Spider_direct_order_limit%';
+Variable_name Value
+Spider_direct_order_limit 3
+
+2.26
+lock tables
+connection master_1;
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+CREATE TABLE t1 (
+id int(11) NOT NULL,
+PRIMARY KEY (id)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_LOCK1
+CREATE TABLE t2 (
+id int(11) NOT NULL,
+PRIMARY KEY (id)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_LOCK2
+LOCK TABLES t1 READ, t2 READ;
+UNLOCK TABLES;
+
+auto_increment
+connection master_1;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+id int(11) NOT NULL AUTO_INCREMENT,
+PRIMARY KEY (id)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_INCREMENT1_1
+MASTER_1_AUTO_INCREMENT_INCREMENT2
+MASTER_1_AUTO_INCREMENT_OFFSET2
+spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 2', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 3', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 2', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 3', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+INSERT INTO t1 () VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+777
+SELECT MAX(id) FROM t1;
+MAX(id)
+777
+INSERT INTO t1 () VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+1554
+SELECT MAX(id) FROM t1;
+MAX(id)
+1554
+INSERT INTO t1 (id) VALUES (null);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+2331
+SELECT MAX(id) FROM t1;
+MAX(id)
+2331
+INSERT INTO t1 (id) VALUES (null);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+3108
+SELECT MAX(id) FROM t1;
+MAX(id)
+3108
+INSERT INTO t1 () VALUES (),(),(),();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+3885
+SELECT id FROM t1 ORDER BY id;
+id
+777
+1554
+2331
+3108
+3885
+4662
+5439
+6216
+SET INSERT_ID=5000;
+INSERT INTO t1 () VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+5000
+SELECT MAX(id) FROM t1;
+MAX(id)
+6216
+INSERT INTO t1 (id) VALUES (10000);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+5000
+SELECT MAX(id) FROM t1;
+MAX(id)
+10000
+INSERT INTO t1 (id) VALUES (1000);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+5000
+SELECT MAX(id) FROM t1;
+MAX(id)
+10000
+
+read only
+connection master_1;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+id int(11) NOT NULL,
+PRIMARY KEY (id)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_READONLY1_1
+SELECT id FROM t1 ORDER BY id;
+id
+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 = 777;
+ERROR HY000: Table 'auto_test_local.t1' is read only
+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
+TRUNCATE t1;
+ERROR HY000: Table 'auto_test_local.t1' is read only
+
+2.27
+error mode
+skipped
+
+3.0
+is null
+connection master_1;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+a VARCHAR(255),
+b VARCHAR(255),
+c VARCHAR(255),
+KEY idx1(a,b),
+KEY idx2(b),
+PRIMARY KEY(c)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_TEXT_KEY1_1
+insert into t1 values (null, null, '2048');
+insert into t1 values ('1', '1', '1');
+insert into t1 select a + 1, b + 1, c + 1 from t1;
+insert into t1 select a + 2, b + 2, c + 2 from t1;
+insert into t1 select a + 4, b + 4, c + 4 from t1;
+insert into t1 select a + 8, b + 8, c + 8 from t1;
+insert into t1 select a + 16, b + 16, c + 16 from t1;
+insert into t1 select a + 32, b + 32, c + 32 from t1;
+insert into t1 select a + 64, b + 64, c + 64 from t1;
+insert into t1 select a + 128, b + 128, c + 128 from t1;
+insert into t1 select a + 256, b + 256, c + 256 from t1;
+insert into t1 select a + 512, b + 512, c + 512 from t1;
+flush tables;
+connection master_1;
+select a from t1 where a is null order by a limit 30;
+a
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+select b from t1 where b is null order by b limit 30;
+b
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+NULL
+
+direct_order_limit
+connection master_1;
+TRUNCATE TABLE t1;
+insert into t1 values ('1', '1', '1');
+insert into t1 select a + 1, b + 1, c + 1 from t1;
+insert into t1 select a + 2, b + 2, c + 2 from t1;
+insert into t1 select a + 4, b + 4, c + 4 from t1;
+insert into t1 select a + 8, b + 8, c + 8 from t1;
+insert into t1 select a + 16, b + 16, c + 16 from t1;
+insert into t1 select a, b + 32, c + 32 from t1;
+insert into t1 select a, b + 64, c + 64 from t1;
+insert into t1 select a, b + 128, c + 128 from t1;
+flush tables;
+connection master_1;
+select a, b, c from t1 where a = '10' and b <> '100' order by c desc limit 5;
+a b c
+10 74 74
+10 42 42
+10 234 234
+10 202 202
+10 170 170
+select a, c from t1 where a = '10' order by b desc limit 5;
+a c
+10 74
+10 42
+10 234
+10 202
+10 170
+
+deinit
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+for slave1_1
+for child3
+for child2
+child2_3
+child2_2
+child2_1
+for master_1
+
+end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/r/spider_fixes_part.result b/storage/spider/mysql-test/spider/odbc/mariadb/r/spider_fixes_part.result
new file mode 100644
index 00000000000..b4f96494565
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/r/spider_fixes_part.result
@@ -0,0 +1,220 @@
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+for slave1_1
+
+drop and create databases
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+
+test select 1
+connection master_1;
+SELECT 1;
+1
+1
+connection master_1;
+DROP TABLE IF EXISTS tb_l;
+CREATE TABLE tb_l (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE2 MASTER_1_CHARSET2
+INSERT INTO tb_l (a, b, c) VALUES
+(1, 'a', '2008-08-01 10:21:39'),
+(2, 'b', '2000-01-01 00:00:00'),
+(3, 'e', '2007-06-04 20:03:11'),
+(4, 'd', '2003-11-30 05:01:03'),
+(5, 'c', '2001-12-31 23:59:59');
+
+2.17
+partition with sort
+connection master_1;
+CREATE TABLE ta_l2 (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_COMMENT2_P_2_1
+INSERT INTO ta_l2 SELECT a, b, c FROM tb_l;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 WHERE a > 1
+ORDER BY a;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+2 b 2000-01-01 00:00:00
+3 e 2007-06-04 00:00:00
+4 d 2003-11-30 00:00:00
+5 c 2001-12-31 00:00:00
+
+2.23
+partition update with moving partition
+connection master_1;
+DROP TABLE IF EXISTS ta_l2;
+connection master_1;
+CREATE TABLE ta_l2 (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_COMMENT2_P_2_1
+INSERT INTO ta_l2 (a, b, c) VALUES (3, 'B', '2010-09-26 00:00:00');
+UPDATE ta_l2 SET a = 4 WHERE a = 3;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2;
+a b date_format(c, '%Y-%m-%d %H:%i:%s')
+4 B 2010-09-26 00:00:00
+index merge with partition
+connection master_1;
+DROP TABLE IF EXISTS ta_l_int;
+connection master_1;
+CREATE TABLE ta_l_int (
+a INT AUTO_INCREMENT,
+b INT DEFAULT 10,
+c INT DEFAULT 11,
+PRIMARY KEY(a),
+KEY idx1(b),
+KEY idx2(c)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT3_P_2_1
+INSERT INTO ta_l_int (a, b, c) VALUES (1, 2, 3);
+INSERT INTO ta_l_int (a, b, c) SELECT a + 1, b + 1, c + 1 FROM ta_l_int;
+INSERT INTO ta_l_int (a, b, c) SELECT a + 2, b + 2, c + 2 FROM ta_l_int;
+INSERT INTO ta_l_int (a, b, c) SELECT a + 4, b + 4, c + 4 FROM ta_l_int;
+INSERT INTO ta_l_int (a, b, c) SELECT a + 8, b + 8, c + 8 FROM ta_l_int;
+connection master_1;
+SELECT a, b, c FROM ta_l_int force index(primary, idx1, idx2)
+WHERE a = 5 OR b = 5 OR c = 5 ORDER BY a;
+a b c
+3 4 5
+4 5 6
+5 6 7
+
+2.26
+auto_increment with partition
+connection master_1;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 (
+id int(11) NOT NULL AUTO_INCREMENT,
+PRIMARY KEY (id)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_INCREMENT1_P_1
+MASTER_1_AUTO_INCREMENT_INCREMENT2
+MASTER_1_AUTO_INCREMENT_OFFSET2
+spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 2', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 3', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 2', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_INCREMENT = 4', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('SET SESSION AUTO_INCREMENT_OFFSET = 3', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+INSERT INTO t1 () VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+777
+SELECT MAX(id) FROM t1;
+MAX(id)
+777
+INSERT INTO t1 () VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+1554
+SELECT MAX(id) FROM t1;
+MAX(id)
+1554
+INSERT INTO t1 (id) VALUES (null);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+2331
+SELECT MAX(id) FROM t1;
+MAX(id)
+2331
+INSERT INTO t1 (id) VALUES (null);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+3108
+SELECT MAX(id) FROM t1;
+MAX(id)
+3108
+INSERT INTO t1 () VALUES (),(),(),();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+3885
+SELECT id FROM t1 ORDER BY id;
+id
+777
+1554
+2331
+3108
+3885
+4662
+5439
+6216
+SET INSERT_ID=5000;
+INSERT INTO t1 () VALUES ();
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+5000
+SELECT MAX(id) FROM t1;
+MAX(id)
+6216
+INSERT INTO t1 (id) VALUES (10000);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+5000
+SELECT MAX(id) FROM t1;
+MAX(id)
+10000
+INSERT INTO t1 (id) VALUES (1000);
+SELECT LAST_INSERT_ID();
+LAST_INSERT_ID()
+5000
+SELECT MAX(id) FROM t1;
+MAX(id)
+10000
+
+deinit
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+for slave1_1
+for child3
+for child2
+child2_3
+child2_2
+child2_1
+for master_1
+
+end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/r/vp_fixes.result b/storage/spider/mysql-test/spider/odbc/mariadb/r/vp_fixes.result
new file mode 100644
index 00000000000..e38ca7bba17
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/r/vp_fixes.result
@@ -0,0 +1,99 @@
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+
+drop and create databases
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote', '', 'srv "s_2_1_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE IF EXISTS auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"') ;
+SELECT spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('CREATE DATABASE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+spider_direct_sql('USE auto_test_remote2', '', 'srv "s_2_2_test", default_group "MariaDB ODBC 3.0 Driver"')
+1
+
+test select 1
+connection master_1;
+SELECT 1;
+1
+1
+
+create table and insert
+connection master_1;
+DROP TABLE IF EXISTS tb_l;
+CREATE TABLE tb_l (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE2 MASTER_1_CHARSET2
+INSERT INTO tb_l (a, b, c) VALUES
+(1, 'a', '2008-08-01 10:21:39'),
+(2, 'b', '2000-01-01 00:00:00'),
+(3, 'e', '2007-06-04 20:03:11'),
+(4, 'd', '2003-11-30 05:01:03'),
+(5, 'c', '2001-12-31 23:59:59');
+DROP TABLE IF EXISTS ta_l;
+CREATE TABLE ta_l (
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1
+INSERT INTO ta_l SELECT a, b, c FROM tb_l;
+
+0.9
+create different primary key table
+connection master_1;
+CREATE TABLE ta_l_int (
+a INT DEFAULT 10,
+b INT AUTO_INCREMENT,
+c INT DEFAULT 11,
+PRIMARY KEY(b)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT4_2_1
+connection master_1;
+INSERT INTO ta_l_int (a, b, c) VALUES (2, NULL, 3);
+create un-correspond primary key table
+connection master_1;
+DROP TABLE IF EXISTS ta_l_int;
+connection master_1;
+CREATE TABLE ta_l_int (
+a INT DEFAULT 10,
+b INT DEFAULT 12,
+c INT DEFAULT 11,
+PRIMARY KEY(c)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT4_2_1
+connection master_1;
+INSERT INTO ta_l_int (a, b, c) VALUES (2, NULL, 3);
+
+deinit
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote', '', 'srv "s_2_1", default_group "MariaDB ODBC 3.0 Driver"')
+1
+SELECT spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"');
+spider_direct_sql('DROP DATABASE auto_test_remote2', '', 'srv "s_2_2", default_group "MariaDB ODBC 3.0 Driver"')
+1
+for child3
+for child2
+child2_3
+child2_2
+child2_1
+for master_1
+
+end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/basic_sql.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/t/basic_sql.cnf
new file mode 100644
index 00000000000..a5f020b06e6
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/basic_sql.cnf
@@ -0,0 +1,7 @@
+!include include/default_mysqld.cnf
+!include ../my_1_1.cnf
+!include ../my_2_1.cnf
+!include ../my_2_2.cnf
+!include ../my_2_3.cnf
+[ENV]
+USE_CHILD_GROUP2= 1
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/basic_sql.test b/storage/spider/mysql-test/spider/odbc/mariadb/t/basic_sql.test
new file mode 100644
index 00000000000..f5d7e2bcd9e
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/basic_sql.test
@@ -0,0 +1,1242 @@
+# This test tests by executing basic SQL
+--disable_warnings
+--disable_query_log
+--disable_result_log
+--source test_init.inc
+--enable_result_log
+--enable_query_log
+
+--echo
+--echo drop and create databases
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_1_CREATE_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_2_CREATE_DATABASE;
+}
+--enable_warnings
+
+--echo
+--echo test select 1
+--connection master_1
+SELECT 1;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_DATEFORMAT;
+ eval $CHILD2_1_SELECT1;
+ eval $CHILD2_2_DATEFORMAT;
+ eval $CHILD2_2_SELECT1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo create table select test
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES;
+ echo CHILD2_1_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS tb_l;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE tb_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE2 MASTER_1_CHARSET2;
+eval CREATE TABLE tb_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) $MASTER_1_ENGINE2 $MASTER_1_CHARSET2;
+--enable_query_log
+INSERT INTO tb_l (a, b, c) VALUES
+ (1, 'a', '2008-08-01 10:21:39'),
+ (2, 'b', '2000-01-01 00:00:00'),
+ (3, 'e', '2007-06-04 20:03:11'),
+ (4, 'd', '2003-11-30 05:01:03'),
+ (5, 'c', '2001-12-31 23:59:59');
+--disable_warnings
+DROP TABLE IF EXISTS ta_l;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE ta_l (
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1
+SELECT a, b, c FROM tb_l;
+if ($MASTER_1_MERGE)
+{
+ --error ER_WRONG_OBJECT
+ eval CREATE TABLE ta_l (
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1
+ SELECT a, b, c FROM tb_l;
+ eval CREATE TABLE ta_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1;
+ INSERT INTO ta_l SELECT a, b, c FROM tb_l;
+}
+if (!$MASTER_1_MERGE)
+{
+ eval CREATE TABLE ta_l (
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1
+ SELECT a, b, c FROM tb_l;
+}
+--enable_query_log
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo create table ignore select test
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS ta_l;
+DROP TABLE IF EXISTS tb_l;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE tb_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE2 MASTER_1_CHARSET2;
+eval CREATE TABLE tb_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) $MASTER_1_ENGINE2 $MASTER_1_CHARSET2;
+--enable_query_log
+INSERT INTO tb_l (a, b, c) VALUES
+ (1, 'f', '2008-07-01 10:21:39'),
+ (2, 'g', '2000-02-01 00:00:00'),
+ (3, 'j', '2007-05-04 20:03:11'),
+ (4, 'i', '2003-10-30 05:01:03'),
+ (5, 'h', '2001-10-31 23:59:59');
+--disable_query_log
+echo CREATE TABLE ta_l (
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1
+IGNORE SELECT a, b, c FROM tb_l;
+if ($MASTER_1_MERGE)
+{
+ --error ER_WRONG_OBJECT
+ eval CREATE TABLE ta_l (
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1
+ IGNORE SELECT a, b, c FROM tb_l;
+ eval CREATE TABLE ta_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1;
+ INSERT IGNORE INTO ta_l SELECT a, b, c FROM tb_l;
+}
+if (!$MASTER_1_MERGE)
+{
+ eval CREATE TABLE ta_l (
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1
+ IGNORE SELECT a, b, c FROM tb_l;
+}
+--enable_query_log
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo create table ignore select test
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS ta_l;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE ta_l (
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1
+REPLACE SELECT a, b, c FROM tb_l;
+if ($MASTER_1_MERGE)
+{
+ --error ER_WRONG_OBJECT
+ eval CREATE TABLE ta_l (
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1
+ REPLACE SELECT a, b, c FROM tb_l;
+ eval CREATE TABLE ta_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1;
+ REPLACE INTO ta_l SELECT a, b, c FROM tb_l;
+}
+if (!$MASTER_1_MERGE)
+{
+ eval CREATE TABLE ta_l (
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1
+ REPLACE SELECT a, b, c FROM tb_l;
+}
+--enable_query_log
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo create no index table
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES3;
+ echo CHILD2_1_CREATE_TABLES3;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES3;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES3;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS ta_l_no_idx;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE ta_l_no_idx
+MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT2_2_1
+SELECT a, b, c FROM tb_l;
+if ($MASTER_1_NEEDPK)
+{
+ --error ER_REQUIRES_PRIMARY_KEY
+ eval CREATE TABLE ta_l_no_idx
+ $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT2_2_1
+ SELECT a, b, c FROM tb_l;
+ eval CREATE TABLE ta_l_no_idx (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT2_2_1;
+ INSERT INTO ta_l_no_idx SELECT a, b, c FROM tb_l;
+}
+if (!$MASTER_1_NEEDPK)
+{
+ if ($MASTER_1_MERGE)
+ {
+ --error ER_WRONG_OBJECT
+ eval CREATE TABLE ta_l_no_idx
+ $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT2_2_1
+ SELECT a, b, c FROM tb_l;
+ eval CREATE TABLE ta_l_no_idx (
+ a INT,
+ b CHAR(1),
+ c DATETIME
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT2_2_1;
+ INSERT INTO ta_l_no_idx SELECT a, b, c FROM tb_l;
+ }
+ if (!$MASTER_1_MERGE)
+ {
+ eval CREATE TABLE ta_l_no_idx
+ $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT2_2_1
+ SELECT a, b, c FROM tb_l;
+ }
+}
+--enable_query_log
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES3;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l_no_idx ORDER BY a;
+
+--echo
+--echo select table
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo select table shared mode
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a
+LOCK IN SHARE MODE;
+
+--echo
+--echo select table for update
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a
+FOR UPDATE;
+
+--echo
+--echo select table join
+--connection master_1
+SELECT a.a, a.b, date_format(b.c, '%Y-%m-%d %H:%i:%s') FROM ta_l a, tb_l b
+WHERE a.a = b.a ORDER BY a.a;
+
+--echo
+--echo select table straight_join
+--connection master_1
+SELECT STRAIGHT_JOIN a.a, a.b, date_format(b.c, '%Y-%m-%d %H:%i:%s')
+FROM ta_l a, tb_l b WHERE a.a = b.a ORDER BY a.a;
+
+--echo
+--echo select sql_small_result
+--connection master_1
+SELECT SQL_SMALL_RESULT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+ORDER BY a;
+
+--echo
+--echo select sql_big_result
+--connection master_1
+SELECT SQL_BIG_RESULT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+ORDER BY a;
+
+--echo
+--echo select sql_buffer_result
+--connection master_1
+SELECT SQL_BUFFER_RESULT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+ORDER BY a;
+
+--echo
+--echo select sql_cache
+--connection master_1
+SELECT SQL_CACHE a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+ORDER BY a;
+
+--echo
+--echo select sql_no_cache
+--connection master_1
+SELECT SQL_NO_CACHE a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+ORDER BY a;
+
+--echo
+--echo select sql_calc_found_rows
+--connection master_1
+SELECT SQL_CALC_FOUND_ROWS a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+ORDER BY a LIMIT 4;
+--connection master_1
+SELECT found_rows();
+
+--echo
+--echo select high_priority
+--connection master_1
+SELECT HIGH_PRIORITY a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+ORDER BY a;
+
+--echo
+--echo select distinct
+--connection master_1
+SELECT DISTINCT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+ORDER BY a;
+
+--echo
+--echo select count
+--connection master_1
+SELECT count(*) FROM ta_l;
+
+--echo
+--echo select table join not use index
+--connection master_1
+SELECT a.a, a.b, date_format(a.c, '%Y-%m-%d %H:%i:%s') FROM tb_l a WHERE
+EXISTS (SELECT * FROM ta_l b WHERE b.b = a.b) ORDER BY a.a;
+
+--echo
+--echo select using pushdown
+--connection master_1
+SELECT a.a, a.b, date_format(a.c, '%Y-%m-%d %H:%i:%s') FROM ta_l a WHERE
+a.b = 'g' ORDER BY a.a;
+
+--echo
+--echo select using index and pushdown
+--connection master_1
+SELECT a.a, a.b, date_format(a.c, '%Y-%m-%d %H:%i:%s') FROM ta_l a WHERE
+a.a > 0 AND a.b = 'g' ORDER BY a.a;
+
+--echo
+--echo insert
+--connection master_1
+TRUNCATE TABLE ta_l;
+--connection master_1
+INSERT INTO ta_l (a, b, c) VALUES (2, 'e', '2008-01-01 23:59:59');
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo insert select
+--connection master_1
+TRUNCATE TABLE ta_l;
+--connection master_1
+INSERT INTO ta_l (a, b, c) SELECT a, b, c FROM tb_l;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo insert select a
+--connection master_1
+TRUNCATE TABLE ta_l;
+--connection master_1
+INSERT INTO ta_l (a, b, c) VALUES ((SELECT a FROM tb_l ORDER BY a LIMIT 1),
+'e', '2008-01-01 23:59:59');
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo insert low_priority
+--connection master_1
+TRUNCATE TABLE ta_l;
+--connection master_1
+INSERT LOW_PRIORITY INTO ta_l (a, b, c) values (2, 'e', '2008-01-01 23:59:59');
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo insert high_priority
+--connection master_1
+TRUNCATE TABLE ta_l;
+--connection master_1
+INSERT HIGH_PRIORITY INTO ta_l (a, b, c) VALUES (2, 'e',
+'2008-01-01 23:59:59');
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo insert ignore
+--connection master_1
+INSERT IGNORE INTO ta_l (a, b, c) VALUES (2, 'd', '2009-02-02 01:01:01');
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo insert update (insert)
+--connection master_1
+TRUNCATE TABLE ta_l;
+--connection master_1
+INSERT INTO ta_l (a, b, c) VALUES (2, 'e', '2008-01-01 23:59:59') ON DUPLICATE
+KEY UPDATE b = 'f', c = '2005-08-08 11:11:11';
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo insert update (update)
+--connection master_1
+INSERT INTO ta_l (a, b, c) VALUES (2, 'e', '2008-01-01 23:59:59') ON DUPLICATE
+KEY UPDATE b = 'f', c = '2005-08-08 11:11:11';
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo replace
+--connection master_1
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (2, 'e', '2008-01-01 23:59:59');
+--connection master_1
+REPLACE INTO ta_l (a, b, c) VALUES (2, 'f', '2008-02-02 02:02:02');
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo replace select
+--connection master_1
+REPLACE INTO ta_l (a, b, c) SELECT a, b, c FROM tb_l;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo replace select a
+--connection master_1
+REPLACE INTO ta_l (a, b, c) VALUES ((SELECT a FROM tb_l ORDER BY a LIMIT 1),
+'e', '2008-01-01 23:59:59');
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo replace low_priority
+--connection master_1
+REPLACE LOW_PRIORITY INTO ta_l (a, b, c) VALUES (3, 'g',
+'2009-03-03 03:03:03');
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo update
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59');
+--connection master_1
+UPDATE ta_l SET b = 'f', c = '2008-02-02 02:02:02' WHERE a = 2;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo update select
+--connection master_1
+UPDATE ta_l SET b = 'g', c = '2009-03-03 03:03:03' WHERE a IN (SELECT a FROM
+tb_l);
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo update select a
+--connection master_1
+UPDATE ta_l SET b = 'h', c = '2010-04-04 04:04:04' WHERE a = (SELECT a FROM
+tb_l ORDER BY a LIMIT 1);
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo update join
+--connection master_1
+UPDATE ta_l a, tb_l b SET a.b = b.b, a.c = b.c WHERE a.a = b.a;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo update join a
+--connection master_1
+UPDATE ta_l a, tb_l b SET a.b = 'g', a.c = '2009-03-03 03:03:03' WHERE
+a.a = b.a;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo update low_priority
+--connection master_1
+UPDATE LOW_PRIORITY ta_l SET b = 'f', c = '2008-02-02 02:02:02' WHERE a = 2;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo update ignore
+--connection master_1
+UPDATE IGNORE ta_l SET a = 1, b = 'g', c = '2009-03-03 03:03:03' WHERE a = 2;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo update pushdown
+--connection master_1
+update ta_l set b = 'j', c = '2009-03-03 03:03:03' where b = 'f';
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo update index pushdown
+--connection master_1
+UPDATE ta_l SET b = 'g', c = '2009-03-03 03:03:03' WHERE a > 0 AND b = 'j';
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo delete
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+--connection master_1
+DELETE FROM ta_l WHERE a = 2;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo delete all
+--connection master_1
+DELETE FROM ta_l;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo delete select
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+--connection master_1
+DELETE FROM ta_l WHERE a IN (SELECT a FROM tb_l);
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo delete select a
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+--connection master_1
+DELETE FROM ta_l WHERE a = (SELECT a FROM tb_l ORDER BY a LIMIT 1);
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo delete join
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+--connection master_1
+DELETE a FROM ta_l a, (SELECT a FROM tb_l ORDER BY a) b WHERE a.a = b.a;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo delete low_priority
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+--connection master_1
+DELETE LOW_PRIORITY FROM ta_l WHERE a = 2;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo delete ignore
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+--connection master_1
+DELETE IGNORE FROM ta_l WHERE a = 2;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo delete quick
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+--connection master_1
+DELETE QUICK FROM ta_l WHERE a = 2;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo delete pushdown
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+--connection master_1
+DELETE FROM ta_l WHERE b = 'e';
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo delete index pushdown
+TRUNCATE TABLE ta_l;
+INSERT INTO ta_l (a, b, c) VALUES (1, 'e', '2008-01-01 23:59:59'),
+(2, 'e', '2008-01-01 23:59:59'), (3, 'e', '2008-01-01 23:59:59'),
+(4, 'e', '2008-01-01 23:59:59'), (5, 'e', '2008-01-01 23:59:59'),
+(6, 'e', '2008-01-01 23:59:59'), (7, 'e', '2008-01-01 23:59:59'),
+(8, 'e', '2008-01-01 23:59:59'), (9, 'e', '2008-01-01 23:59:59'),
+(10, 'j', '2008-01-01 23:59:59');
+--connection master_1
+DELETE FROM ta_l WHERE a > 0 AND b = 'e';
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo truncate
+--connection master_1
+TRUNCATE TABLE ta_l;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo deinit
+--disable_warnings
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE;
+}
+--disable_query_log
+--disable_result_log
+--source test_deinit.inc
+--enable_result_log
+--enable_query_log
+--enable_warnings
+--echo
+--echo end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/basic_sql_part.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/t/basic_sql_part.cnf
new file mode 100644
index 00000000000..a5f020b06e6
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/basic_sql_part.cnf
@@ -0,0 +1,7 @@
+!include include/default_mysqld.cnf
+!include ../my_1_1.cnf
+!include ../my_2_1.cnf
+!include ../my_2_2.cnf
+!include ../my_2_3.cnf
+[ENV]
+USE_CHILD_GROUP2= 1
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/basic_sql_part.test b/storage/spider/mysql-test/spider/odbc/mariadb/t/basic_sql_part.test
new file mode 100644
index 00000000000..44ee250229c
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/basic_sql_part.test
@@ -0,0 +1,313 @@
+# This test tests by executing basic SQL
+--disable_warnings
+--disable_query_log
+--disable_result_log
+--source test_init.inc
+--enable_result_log
+--enable_query_log
+if (!$HAVE_PARTITION)
+{
+ --disable_query_log
+ --disable_result_log
+ --source test_deinit.inc
+ --enable_result_log
+ --enable_query_log
+ --enable_warnings
+ skip Test requires partitioning;
+}
+
+--echo
+--echo drop and create databases
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_1_CREATE_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_2_CREATE_DATABASE;
+}
+--enable_warnings
+
+--echo
+--echo test select 1
+--connection master_1
+SELECT 1;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_DATEFORMAT;
+ eval $CHILD2_1_SELECT1;
+ eval $CHILD2_2_DATEFORMAT;
+ eval $CHILD2_2_SELECT1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS tb_l;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE tb_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE2 MASTER_1_CHARSET2;
+eval CREATE TABLE tb_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) $MASTER_1_ENGINE2 $MASTER_1_CHARSET2;
+--enable_query_log
+INSERT INTO tb_l (a, b, c) VALUES
+ (1, 'f', '2008-07-01 10:21:39'),
+ (2, 'g', '2000-02-01 00:00:00'),
+ (3, 'j', '2007-05-04 20:03:11'),
+ (4, 'i', '2003-10-30 05:01:03'),
+ (5, 'h', '2001-10-31 23:59:59');
+
+--echo
+--echo create table with partition and select test
+if ($HAVE_PARTITION)
+{
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_2_DROP_TABLES;
+ echo CHILD2_2_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_2_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_2_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES2;
+ echo CHILD2_1_CREATE_TABLES2;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES2;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES2;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ --disable_query_log
+ echo CREATE TABLE ta_l2 (
+ PRIMARY KEY(a)
+ ) MASTER_1_ENGINE MASTER_1_COMMENT_P_2_1
+ SELECT a, b, c FROM tb_l;
+ if ($MASTER_1_MERGE)
+ {
+ --error ER_WRONG_OBJECT
+ eval CREATE TABLE ta_l2 (
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_COMMENT_P_2_1
+ SELECT a, b, c FROM tb_l;
+ eval CREATE TABLE ta_l2 (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_COMMENT_P_2_1;
+ INSERT INTO ta_l2 SELECT a, b, c FROM tb_l;
+ }
+ if (!$MASTER_1_MERGE)
+ {
+ eval CREATE TABLE ta_l2 (
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_COMMENT_P_2_1
+ SELECT a, b, c FROM tb_l;
+ }
+ --enable_query_log
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_2_SELECT_TABLES;
+ eval $CHILD2_1_SELECT_TABLES2;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+}
+
+--echo
+--echo select partition using pushdown
+if ($HAVE_PARTITION)
+{
+ --connection master_1
+ SELECT a.a, a.b, date_format(a.c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 a WHERE
+ a.b = 'g' ORDER BY a.a;
+}
+
+--echo
+--echo select partition using index pushdown
+if ($HAVE_PARTITION)
+{
+ --connection master_1
+ SELECT a.a, a.b, date_format(a.c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 a WHERE
+ a.a > 0 AND a.b = 'g' ORDER BY a.a;
+}
+
+--echo
+--echo update partition pushdown
+if ($HAVE_PARTITION)
+{
+ --connection master_1
+ UPDATE ta_l2 SET b = 'e', c = '2009-03-03 03:03:03' WHERE b = 'j';
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_2_SELECT_TABLES;
+ eval $CHILD2_1_SELECT_TABLES2;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+}
+
+--echo
+--echo update partition index pushdown
+if ($HAVE_PARTITION)
+{
+ --connection master_1
+ UPDATE ta_l2 SET b = 'j', c = '2009-03-03 03:03:03' WHERE a > 0 AND b = 'e';
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_2_SELECT_TABLES;
+ eval $CHILD2_1_SELECT_TABLES2;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+}
+
+--echo
+--echo delete partition pushdown
+if ($HAVE_PARTITION)
+{
+ TRUNCATE TABLE ta_l2;
+ INSERT INTO ta_l2 SELECT a, b, c FROM tb_l;
+ --connection master_1
+ DELETE FROM ta_l2 WHERE b = 'g';
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_2_SELECT_TABLES;
+ eval $CHILD2_1_SELECT_TABLES2;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+}
+
+--echo
+--echo delete partition index pushdown
+if ($HAVE_PARTITION)
+{
+ TRUNCATE TABLE ta_l2;
+ INSERT INTO ta_l2 SELECT a, b, c FROM tb_l;
+ --connection master_1
+ DELETE FROM ta_l2 WHERE a > 0 AND b = 'g';
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_2_SELECT_TABLES;
+ eval $CHILD2_1_SELECT_TABLES2;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+}
+
+--echo
+--echo deinit
+--disable_warnings
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE;
+}
+--disable_query_log
+--disable_result_log
+--source test_deinit.inc
+--enable_result_log
+--enable_query_log
+--enable_warnings
+--echo
+--echo end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child2_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child2_1.inc
new file mode 100644
index 00000000000..cd9b0c9ca9b
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child2_1.inc
@@ -0,0 +1 @@
+--connect (child2_1, localhost, root, , , $CHILD2_1_MYPORT, $CHILD2_1_MYSOCK)
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child2_2.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child2_2.inc
new file mode 100644
index 00000000000..e145f66b630
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child2_2.inc
@@ -0,0 +1 @@
+--connect (child2_2, localhost, root, , , $CHILD2_2_MYPORT, $CHILD2_2_MYSOCK)
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child2_3.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child2_3.inc
new file mode 100644
index 00000000000..d356348d8ea
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child2_3.inc
@@ -0,0 +1 @@
+--connect (child2_3, localhost, root, , , $CHILD2_3_MYPORT, $CHILD2_3_MYSOCK)
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child3_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child3_1.inc
new file mode 100644
index 00000000000..03e5c188c89
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child3_1.inc
@@ -0,0 +1 @@
+--connect (child3_1, localhost, root, , , $CHILD3_1_MYPORT, $CHILD3_1_MYSOCK)
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child3_2.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child3_2.inc
new file mode 100644
index 00000000000..d62a7ada824
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child3_2.inc
@@ -0,0 +1 @@
+--connect (child3_2, localhost, root, , , $CHILD3_2_MYPORT, $CHILD3_2_MYSOCK)
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child3_3.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child3_3.inc
new file mode 100644
index 00000000000..fb49f5bfdac
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_child3_3.inc
@@ -0,0 +1 @@
+--connect (child3_3, localhost, root, , , $CHILD3_3_MYPORT, $CHILD3_3_MYSOCK)
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_master_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_master_1.inc
new file mode 100644
index 00000000000..0c129ce5775
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_master_1.inc
@@ -0,0 +1 @@
+--connect (master_1, localhost, root, , , $MASTER_1_MYPORT, $MASTER_1_MYSOCK)
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_slave1_1.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_slave1_1.inc
new file mode 100644
index 00000000000..45a822743e0
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/connect_slave1_1.inc
@@ -0,0 +1 @@
+--connect (slave1_1, localhost, root, , , $SLAVE1_1_MYPORT, $SLAVE1_1_MYSOCK)
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_aggregate.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_aggregate.cnf
new file mode 100644
index 00000000000..a5f020b06e6
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_aggregate.cnf
@@ -0,0 +1,7 @@
+!include include/default_mysqld.cnf
+!include ../my_1_1.cnf
+!include ../my_2_1.cnf
+!include ../my_2_2.cnf
+!include ../my_2_3.cnf
+[ENV]
+USE_CHILD_GROUP2= 1
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_aggregate.test b/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_aggregate.test
new file mode 100644
index 00000000000..e8e4cc0c4bf
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_aggregate.test
@@ -0,0 +1,145 @@
+--disable_warnings
+--disable_query_log
+--disable_result_log
+--source test_init.inc
+--enable_result_log
+--enable_query_log
+
+--echo
+--echo drop and create databases
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_1_CREATE_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_2_CREATE_DATABASE;
+}
+--enable_warnings
+
+--echo
+--echo test select 1
+--connection master_1
+SELECT 1;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_DATEFORMAT;
+ eval $CHILD2_1_SELECT1;
+ eval $CHILD2_2_DATEFORMAT;
+ eval $CHILD2_2_SELECT1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo create table select test
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES;
+ echo CHILD2_1_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS ta_l;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE ta_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1;
+eval CREATE TABLE ta_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1;
+--enable_query_log
+INSERT INTO ta_l (a, b, c) VALUES
+ (1, 'a', '2008-08-01 10:21:39'),
+ (2, 'b', '2000-01-01 00:00:00'),
+ (3, 'e', '2007-06-04 20:03:11'),
+ (4, 'd', '2003-11-30 05:01:03'),
+ (5, 'c', '2001-12-31 23:59:59');
+
+--echo
+--echo direct_aggregating test
+--connection master_1
+eval $MASTER_1_CHECK_DIRECT_AGGREGATE_STATUS;
+SELECT COUNT(*) FROM ta_l;
+eval $MASTER_1_CHECK_DIRECT_AGGREGATE_STATUS;
+SELECT MAX(a) FROM ta_l;
+eval $MASTER_1_CHECK_DIRECT_AGGREGATE_STATUS;
+SELECT MIN(a) FROM ta_l;
+eval $MASTER_1_CHECK_DIRECT_AGGREGATE_STATUS;
+SELECT MAX(a) FROM ta_l WHERE a < 5;
+eval $MASTER_1_CHECK_DIRECT_AGGREGATE_STATUS;
+SELECT MIN(a) FROM ta_l WHERE a > 1;
+eval $MASTER_1_CHECK_DIRECT_AGGREGATE_STATUS;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo deinit
+--disable_warnings
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE;
+}
+--disable_query_log
+--disable_result_log
+--source test_deinit.inc
+--enable_result_log
+--enable_query_log
+--enable_warnings
+--echo
+--echo end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_aggregate_part.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_aggregate_part.cnf
new file mode 100644
index 00000000000..a5f020b06e6
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_aggregate_part.cnf
@@ -0,0 +1,7 @@
+!include include/default_mysqld.cnf
+!include ../my_1_1.cnf
+!include ../my_2_1.cnf
+!include ../my_2_2.cnf
+!include ../my_2_3.cnf
+[ENV]
+USE_CHILD_GROUP2= 1
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_aggregate_part.test b/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_aggregate_part.test
new file mode 100644
index 00000000000..cf74918a81c
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_aggregate_part.test
@@ -0,0 +1,166 @@
+--disable_warnings
+--disable_query_log
+--disable_result_log
+--source test_init.inc
+--enable_result_log
+--enable_query_log
+if (!$HAVE_PARTITION)
+{
+ --disable_query_log
+ --disable_result_log
+ --source test_deinit.inc
+ --enable_result_log
+ --enable_query_log
+ --enable_warnings
+ skip Test requires partitioning;
+}
+
+--echo
+--echo drop and create databases
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_1_CREATE_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_2_CREATE_DATABASE;
+}
+--enable_warnings
+
+--echo
+--echo test select 1
+--connection master_1
+SELECT 1;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_DATEFORMAT;
+ eval $CHILD2_1_SELECT1;
+ eval $CHILD2_2_DATEFORMAT;
+ eval $CHILD2_2_SELECT1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo with partition test
+if ($HAVE_PARTITION)
+{
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_2_DROP_TABLES;
+ echo CHILD2_2_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_2_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_2_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES2;
+ echo CHILD2_1_CREATE_TABLES2;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES2;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES2;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ --disable_query_log
+ echo CREATE TABLE ta_l2 (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) MASTER_1_ENGINE MASTER_1_COMMENT2_P_2_1;
+ eval CREATE TABLE ta_l2 (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_COMMENT2_P_2_1;
+ INSERT INTO ta_l2 (a, b, c) VALUES
+ (1, 'a', '2008-08-01 10:21:39'),
+ (2, 'b', '2000-01-01 00:00:00'),
+ (3, 'e', '2007-06-04 20:03:11'),
+ (4, 'd', '2003-11-30 05:01:03'),
+ (5, 'c', '2001-12-31 23:59:59');
+ --enable_query_log
+ eval $MASTER_1_CHECK_DIRECT_AGGREGATE_STATUS;
+ SELECT COUNT(*) FROM ta_l2;
+ eval $MASTER_1_CHECK_DIRECT_AGGREGATE_STATUS;
+ SELECT MAX(a) FROM ta_l2;
+ eval $MASTER_1_CHECK_DIRECT_AGGREGATE_STATUS;
+ SELECT MIN(a) FROM ta_l2;
+ eval $MASTER_1_CHECK_DIRECT_AGGREGATE_STATUS;
+ SELECT MAX(a) FROM ta_l2 WHERE a < 5;
+ eval $MASTER_1_CHECK_DIRECT_AGGREGATE_STATUS;
+ SELECT MIN(a) FROM ta_l2 WHERE a > 1;
+ eval $MASTER_1_CHECK_DIRECT_AGGREGATE_STATUS;
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_2_SELECT_TABLES;
+ eval $CHILD2_1_SELECT_TABLES2;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+}
+
+--echo
+--echo deinit
+--disable_warnings
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE;
+}
+--disable_query_log
+--disable_result_log
+--source test_deinit.inc
+--enable_result_log
+--enable_query_log
+--enable_warnings
+--echo
+--echo end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_update.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_update.cnf
new file mode 100644
index 00000000000..a5f020b06e6
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_update.cnf
@@ -0,0 +1,7 @@
+!include include/default_mysqld.cnf
+!include ../my_1_1.cnf
+!include ../my_2_1.cnf
+!include ../my_2_2.cnf
+!include ../my_2_3.cnf
+[ENV]
+USE_CHILD_GROUP2= 1
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_update.test b/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_update.test
new file mode 100644
index 00000000000..4d74532536e
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_update.test
@@ -0,0 +1,164 @@
+--disable_warnings
+--disable_query_log
+--disable_result_log
+--source test_init.inc
+--enable_result_log
+--enable_query_log
+
+--echo
+--echo drop and create databases
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_1_CREATE_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_2_CREATE_DATABASE;
+}
+--enable_warnings
+
+--echo
+--echo test select 1
+--connection master_1
+SELECT 1;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_DATEFORMAT;
+ eval $CHILD2_1_SELECT1;
+ eval $CHILD2_2_DATEFORMAT;
+ eval $CHILD2_2_SELECT1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo create table select test
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES;
+ echo CHILD2_1_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS ta_l;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE ta_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1;
+eval CREATE TABLE ta_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1;
+--enable_query_log
+INSERT INTO ta_l (a, b, c) VALUES
+ (1, 'a', '2008-08-01 10:21:39'),
+ (2, 'b', '2000-01-01 00:00:00'),
+ (3, 'e', '2007-06-04 20:03:11'),
+ (4, 'd', '2003-11-30 05:01:03'),
+ (5, 'c', '2001-12-31 23:59:59');
+
+--echo
+--echo direct_updating test
+--connection master_1
+eval $MASTER_1_CHECK_DIRECT_UPDATE_STATUS;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+--echo update all rows with function
+UPDATE ta_l SET c = ADDDATE(c, 1);
+eval $MASTER_1_CHECK_DIRECT_UPDATE_STATUS;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+--echo update by primary key
+UPDATE ta_l SET b = 'x' WHERE a = 3;
+eval $MASTER_1_CHECK_DIRECT_UPDATE_STATUS;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+--echo update by a column without index
+UPDATE ta_l SET c = '2011-10-17' WHERE b = 'x';
+eval $MASTER_1_CHECK_DIRECT_UPDATE_STATUS;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+--echo update by primary key with order and limit
+UPDATE ta_l SET c = ADDDATE(c, 1) WHERE a < 4 ORDER BY b DESC LIMIT 1;
+eval $MASTER_1_CHECK_DIRECT_UPDATE_STATUS;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+--echo delete by primary key with order and limit
+DELETE FROM ta_l WHERE a < 4 ORDER BY c LIMIT 1;
+eval $MASTER_1_CHECK_DIRECT_DELETE_STATUS;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+--echo delete by a column without index
+DELETE FROM ta_l WHERE b = 'c';
+eval $MASTER_1_CHECK_DIRECT_DELETE_STATUS;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+--echo delete by primary key
+DELETE FROM ta_l WHERE a = 3;
+eval $MASTER_1_CHECK_DIRECT_DELETE_STATUS;
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo deinit
+--disable_warnings
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE;
+}
+--disable_query_log
+--disable_result_log
+--source test_deinit.inc
+--enable_result_log
+--enable_query_log
+--enable_warnings
+--echo
+--echo end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_update_part.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_update_part.cnf
new file mode 100644
index 00000000000..a5f020b06e6
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_update_part.cnf
@@ -0,0 +1,7 @@
+!include include/default_mysqld.cnf
+!include ../my_1_1.cnf
+!include ../my_2_1.cnf
+!include ../my_2_2.cnf
+!include ../my_2_3.cnf
+[ENV]
+USE_CHILD_GROUP2= 1
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_update_part.test b/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_update_part.test
new file mode 100644
index 00000000000..a6462958c48
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/direct_update_part.test
@@ -0,0 +1,185 @@
+--disable_warnings
+--disable_query_log
+--disable_result_log
+--source test_init.inc
+--enable_result_log
+--enable_query_log
+if (!$HAVE_PARTITION)
+{
+ --disable_query_log
+ --disable_result_log
+ --source test_deinit.inc
+ --enable_result_log
+ --enable_query_log
+ --enable_warnings
+ skip Test requires partitioning;
+}
+
+--echo
+--echo drop and create databases
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_1_CREATE_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_2_CREATE_DATABASE;
+}
+--enable_warnings
+
+--echo
+--echo test select 1
+--connection master_1
+SELECT 1;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_DATEFORMAT;
+ eval $CHILD2_1_SELECT1;
+ eval $CHILD2_2_DATEFORMAT;
+ eval $CHILD2_2_SELECT1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo with partition test
+if ($HAVE_PARTITION)
+{
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_2_DROP_TABLES;
+ echo CHILD2_2_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_2_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_2_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES2;
+ echo CHILD2_1_CREATE_TABLES2;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES2;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES2;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ --disable_query_log
+ echo CREATE TABLE ta_l2 (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) MASTER_1_ENGINE MASTER_1_COMMENT2_P_2_1;
+ eval CREATE TABLE ta_l2 (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_COMMENT2_P_2_1;
+ INSERT INTO ta_l2 (a, b, c) VALUES
+ (1, 'a', '2008-08-01 10:21:39'),
+ (2, 'b', '2000-01-01 00:00:00'),
+ (3, 'e', '2007-06-04 20:03:11'),
+ (4, 'd', '2003-11-30 05:01:03'),
+ (5, 'c', '2001-12-31 23:59:59');
+ --enable_query_log
+ eval $MASTER_1_CHECK_DIRECT_UPDATE_STATUS;
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+ --echo update all rows with function
+ UPDATE ta_l2 SET c = ADDDATE(c, 1);
+ eval $MASTER_1_CHECK_DIRECT_UPDATE_STATUS;
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+ --echo update by primary key
+ UPDATE ta_l2 SET b = 'x' WHERE a = 3;
+ eval $MASTER_1_CHECK_DIRECT_UPDATE_STATUS;
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+ --echo update by a column without index
+ UPDATE ta_l2 SET c = '2011-10-17' WHERE b = 'x';
+ eval $MASTER_1_CHECK_DIRECT_UPDATE_STATUS;
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+ --echo update by primary key with order and limit
+ UPDATE ta_l2 SET c = ADDDATE(c, 1) WHERE a < 4 ORDER BY b DESC LIMIT 1;
+ eval $MASTER_1_CHECK_DIRECT_UPDATE_STATUS;
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+ --echo delete by primary key with order and limit
+ DELETE FROM ta_l2 WHERE a < 4 ORDER BY c LIMIT 1;
+ eval $MASTER_1_CHECK_DIRECT_DELETE_STATUS;
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+ --echo delete by a column without index
+ DELETE FROM ta_l2 WHERE b = 'c';
+ eval $MASTER_1_CHECK_DIRECT_DELETE_STATUS;
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+ --echo delete by primary key
+ DELETE FROM ta_l2 WHERE a = 3;
+ eval $MASTER_1_CHECK_DIRECT_DELETE_STATUS;
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_2_SELECT_TABLES;
+ eval $CHILD2_1_SELECT_TABLES2;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+}
+
+--echo
+--echo deinit
+--disable_warnings
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE;
+}
+--disable_query_log
+--disable_result_log
+--source test_deinit.inc
+--enable_result_log
+--enable_query_log
+--enable_warnings
+--echo
+--echo end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/function.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/t/function.cnf
new file mode 100644
index 00000000000..a5f020b06e6
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/function.cnf
@@ -0,0 +1,7 @@
+!include include/default_mysqld.cnf
+!include ../my_1_1.cnf
+!include ../my_2_1.cnf
+!include ../my_2_2.cnf
+!include ../my_2_3.cnf
+[ENV]
+USE_CHILD_GROUP2= 1
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/function.test b/storage/spider/mysql-test/spider/odbc/mariadb/t/function.test
new file mode 100644
index 00000000000..be64d5410d1
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/function.test
@@ -0,0 +1,213 @@
+# This test tests for using functions
+--disable_warnings
+--disable_query_log
+--disable_result_log
+--source test_init.inc
+--enable_result_log
+--enable_query_log
+
+--echo
+--echo drop and create databases
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_1_CREATE_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_2_CREATE_DATABASE;
+}
+--enable_warnings
+
+--echo
+--echo test select 1
+--connection master_1
+SELECT 1;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_DATEFORMAT;
+ eval $CHILD2_1_SELECT1;
+ eval $CHILD2_2_DATEFORMAT;
+ eval $CHILD2_2_SELECT1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo in()
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_result_log
+ }
+ --disable_query_log
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ echo CHILD2_1_DROP_TEXT_PK_TABLES1;
+ echo CHILD2_1_CREATE_TEXT_PK_TABLES1;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TEXT_PK_TABLES1;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TEXT_PK_TABLES1;
+ --enable_query_log
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_result_log
+ }
+}
+--connection master_1
+--disable_query_log
+echo CREATE TABLE t1 (
+ a VARCHAR(255),
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET3 MASTER_1_COMMENT_TEXT_PK1_1;
+eval CREATE TABLE t1 (
+ a VARCHAR(255),
+ PRIMARY KEY(a)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET3 $MASTER_1_COMMENT_TEXT_PK1_1;
+--enable_query_log
+insert into t1 values ('1');
+insert into t1 select a + 1 from t1;
+insert into t1 select a + 2 from t1;
+insert into t1 select a + 4 from t1;
+insert into t1 select a + 8 from t1;
+insert into t1 select a + 16 from t1;
+insert into t1 select a + 32 from t1;
+insert into t1 select a + 64 from t1;
+insert into t1 select a + 128 from t1;
+insert into t1 select a + 256 from t1;
+insert into t1 select a + 512 from t1;
+flush tables;
+--connection master_1
+select a from t1 where a in ('15', '120');
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TEXT_PK_TABLES1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo date_sub()
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES;
+ echo CHILD2_1_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS ta_l;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE ta_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1;
+eval CREATE TABLE ta_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1;
+--enable_query_log
+INSERT INTO ta_l (a, b, c) VALUES
+ (1, 'a', '2008-08-01 10:21:39'),
+ (2, 'b', '2000-01-01 00:00:00'),
+ (3, 'e', '2007-06-04 20:03:11'),
+ (4, 'd', '2003-11-30 05:01:03'),
+ (5, 'c', '2001-12-31 23:59:59');
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+UPDATE ta_l SET c = DATE_SUB(c, INTERVAL 1 YEAR);
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+UPDATE ta_l SET c = DATE_ADD(c, INTERVAL 1 QUARTER);
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+UPDATE ta_l SET c = DATE_SUB(c, INTERVAL 1 MONTH);
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+UPDATE ta_l SET c = DATE_ADD(c, INTERVAL 1 WEEK);
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+UPDATE ta_l SET c = DATE_SUB(c, INTERVAL 1 DAY);
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+UPDATE ta_l SET c = DATE_ADD(c, INTERVAL 1 HOUR);
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+UPDATE ta_l SET c = DATE_SUB(c, INTERVAL 1 MINUTE);
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+UPDATE ta_l SET c = DATE_ADD(c, INTERVAL 1 SECOND);
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo deinit
+--disable_warnings
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE;
+}
+--disable_query_log
+--disable_result_log
+--source test_deinit.inc
+--enable_result_log
+--enable_query_log
+--enable_warnings
+--echo
+--echo end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/ha.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/t/ha.cnf
new file mode 100644
index 00000000000..acaf1c3420b
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/ha.cnf
@@ -0,0 +1,11 @@
+!include include/default_mysqld.cnf
+!include ../my_1_1.cnf
+!include ../my_2_1.cnf
+!include ../my_2_2.cnf
+!include ../my_2_3.cnf
+!include ../my_3_1.cnf
+!include ../my_3_2.cnf
+!include ../my_3_3.cnf
+[ENV]
+USE_CHILD_GROUP2= 1
+USE_CHILD_GROUP3= 1
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/ha.test b/storage/spider/mysql-test/spider/odbc/mariadb/t/ha.test
new file mode 100644
index 00000000000..ce2883b8a01
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/ha.test
@@ -0,0 +1,724 @@
+# This test tests for ha features
+if ($USE_HA_TEST)
+{
+--disable_warnings
+--disable_query_log
+--disable_result_log
+--source test_init.inc
+--source ha_test_init.inc
+--enable_result_log
+--enable_query_log
+
+--echo
+--echo drop and create databases
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_1_CREATE_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_2_CREATE_DATABASE;
+ eval $CHILD2_3_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_3_CREATE_DATABASE;
+}
+if ($USE_CHILD_GROUP3)
+{
+ --connection child3_1
+ DROP DATABASE IF EXISTS auto_test_local;
+ CREATE DATABASE auto_test_local;
+ USE auto_test_local;
+ --connection child3_2
+ DROP DATABASE IF EXISTS auto_test_local;
+ CREATE DATABASE auto_test_local;
+ USE auto_test_local;
+ --connection child3_3
+ DROP DATABASE IF EXISTS auto_test_local;
+ CREATE DATABASE auto_test_local;
+ USE auto_test_local;
+}
+--enable_warnings
+
+--echo
+--echo test select 1
+--connection master_1
+SELECT 1;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_DATEFORMAT;
+ eval $CHILD2_1_SELECT1;
+ eval $CHILD2_2_DATEFORMAT;
+ eval $CHILD2_2_SELECT1;
+ eval $CHILD2_3_DATEFORMAT;
+ eval $CHILD2_3_SELECT1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+if ($USE_CHILD_GROUP3)
+{
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ SELECT 1;
+ --connection child3_2
+ SELECT 1;
+ --connection child3_3
+ SELECT 1;
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo create table test
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES;
+ echo CHILD2_1_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_2_DROP_TABLES;
+ echo CHILD2_2_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_2_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_2_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+if ($USE_CHILD_GROUP3)
+{
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ --disable_warnings
+ eval $CHILD3_1_DROP_TABLES_HA_2_1;
+ --enable_warnings
+ eval $CHILD3_1_CREATE_TABLES_HA_2_1;
+ --connection child3_2
+ --disable_warnings
+ eval $CHILD3_2_DROP_TABLES_HA_2_1;
+ --enable_warnings
+ eval $CHILD3_2_CREATE_TABLES_HA_2_1;
+ --connection child3_3
+ --disable_warnings
+ eval $CHILD3_3_DROP_TABLES_HA_2_1;
+ --enable_warnings
+ eval $CHILD3_3_CREATE_TABLES_HA_2_1;
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS ta_l;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE ta_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_HA_2_1;
+eval CREATE TABLE ta_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_HA_2_1;
+--enable_query_log
+INSERT INTO ta_l (a, b, c) VALUES
+ (1, 'a', '2008-08-01 10:21:39'),
+ (2, 'b', '2000-01-01 00:00:00'),
+ (3, 'e', '2007-06-04 20:03:11'),
+ (4, 'd', '2003-11-30 05:01:03'),
+ (5, 'c', '2001-12-31 23:59:59');
+
+--echo
+--echo select test
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ eval $CHILD2_2_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo fail-over test
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_2_HA_DROP_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_2_HA_DROP_TABLES;
+ --enable_warnings
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+eval $MASTER_1_CHECK_HA_STATUS;
+--error 12511
+INSERT INTO ta_l (a, b, c) VALUES
+ (6, 'e', '2011-05-05 20:04:05');
+DELETE FROM ta_l WHERE a = 6;
+eval $MASTER_1_CHECK_LINK_STATUS;
+eval $MASTER_1_CHECK_LINK_FAILED_LOG;
+eval $MASTER_1_CHECK_HA_STATUS;
+INSERT INTO ta_l (a, b, c) VALUES
+ (6, 'e', '2011-05-05 20:04:05');
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+if ($USE_CHILD_GROUP3)
+{
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ eval $CHILD3_1_CHECK_LINK_STATUS;
+ eval $CHILD3_1_CHECK_LINK_FAILED_LOG;
+ --connection child3_2
+ eval $CHILD3_2_CHECK_LINK_STATUS;
+ eval $CHILD3_2_CHECK_LINK_FAILED_LOG;
+ --connection child3_3
+ eval $CHILD3_3_CHECK_LINK_STATUS;
+ eval $CHILD3_3_CHECK_LINK_FAILED_LOG;
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo recovery test
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_2_HA_CREATE_TABLES;
+ }
+ eval $CHILD2_2_HA_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+if ($USE_CHILD_GROUP3)
+{
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ eval $CHILD3_1_SET_RECOVERY_STATUS_2_1;
+ eval $CHILD3_1_CHECK_LINK_STATUS;
+ --connection child3_2
+ eval $CHILD3_2_SET_RECOVERY_STATUS_2_1;
+ eval $CHILD3_2_CHECK_LINK_STATUS;
+ --connection child3_3
+ eval $CHILD3_3_SET_RECOVERY_STATUS_2_1;
+ eval $CHILD3_3_CHECK_LINK_STATUS;
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+eval $MASTER_1_SET_RECOVERY_STATUS_2_1;
+eval $MASTER_1_CHECK_LINK_STATUS;
+show create table mysql.spider_tables;
+select * from mysql.spider_tables;
+eval $MASTER_1_COPY_TABLES_2_1;
+if ($USE_CHILD_GROUP3)
+{
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ eval $CHILD3_1_SET_OK_STATUS_2_1;
+ eval $CHILD3_1_CHECK_LINK_STATUS;
+ --connection child3_2
+ eval $CHILD3_2_SET_OK_STATUS_2_1;
+ eval $CHILD3_2_CHECK_LINK_STATUS;
+ --connection child3_3
+ eval $CHILD3_3_SET_OK_STATUS_2_1;
+ eval $CHILD3_3_CHECK_LINK_STATUS;
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+eval $MASTER_1_SET_OK_STATUS_2_1;
+eval $MASTER_1_CHECK_LINK_STATUS;
+INSERT INTO ta_l (a, b, c) VALUES
+ (8, 'g', '2011-05-05 21:33:30');
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+DROP TABLE ta_l;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ eval $CHILD2_2_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+if ($USE_CHILD_GROUP3)
+{
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ --disable_warnings
+ eval $CHILD3_1_DROP_TABLES_HA_2_1;
+ --enable_warnings
+ --connection child3_2
+ --disable_warnings
+ eval $CHILD3_2_DROP_TABLES_HA_2_1;
+ --enable_warnings
+ --connection child3_3
+ --disable_warnings
+ eval $CHILD3_3_DROP_TABLES_HA_2_1;
+ --enable_warnings
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--connection master_1
+eval $MASTER_1_CHANGE_HA_MON;
+
+--echo
+--echo active standby test
+--echo create table test
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES;
+ echo CHILD2_1_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_2_DROP_TABLES;
+ echo CHILD2_2_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_2_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_2_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+if ($USE_CHILD_GROUP3)
+{
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ --disable_warnings
+ eval $CHILD3_1_DROP_TABLES_HA_2_1;
+ --enable_warnings
+ eval $CHILD3_1_CREATE_TABLES_HA_AS_2_1;
+ --connection child3_2
+ --disable_warnings
+ eval $CHILD3_2_DROP_TABLES_HA_2_1;
+ --enable_warnings
+ eval $CHILD3_2_CREATE_TABLES_HA_AS_2_1;
+ --connection child3_3
+ --disable_warnings
+ eval $CHILD3_3_DROP_TABLES_HA_2_1;
+ --enable_warnings
+ eval $CHILD3_3_CREATE_TABLES_HA_AS_2_1;
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS ta_l;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE ta_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_HA_AS_2_1;
+eval CREATE TABLE ta_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_HA_AS_2_1;
+--enable_query_log
+INSERT INTO ta_l (a, b, c) VALUES
+ (1, 'a', '2008-08-01 10:21:39'),
+ (2, 'b', '2000-01-01 00:00:00'),
+ (3, 'e', '2007-06-04 20:03:11'),
+ (4, 'd', '2003-11-30 05:01:03'),
+ (5, 'c', '2001-12-31 23:59:59');
+
+--echo
+--echo select test
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ eval $CHILD2_2_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo fail-over test
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_HA_AS_DROP_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_1_HA_AS_DROP_TABLES;
+ --enable_warnings
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+eval $MASTER_1_CHECK_HA_STATUS;
+--error 12511
+INSERT INTO ta_l (a, b, c) VALUES
+ (6, 'e', '2011-05-05 20:04:05');
+eval $MASTER_1_CHECK_LINK_STATUS;
+eval $MASTER_1_CHECK_LINK_FAILED_LOG;
+eval $MASTER_1_CHECK_HA_STATUS;
+INSERT INTO ta_l (a, b, c) VALUES
+ (6, 'e', '2011-05-05 20:04:05');
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_2_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+if ($USE_CHILD_GROUP3)
+{
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ eval $CHILD3_1_CHECK_LINK_STATUS;
+ eval $CHILD3_1_CHECK_LINK_FAILED_LOG;
+ --connection child3_2
+ eval $CHILD3_2_CHECK_LINK_STATUS;
+ eval $CHILD3_2_CHECK_LINK_FAILED_LOG;
+ --connection child3_3
+ eval $CHILD3_3_CHECK_LINK_STATUS;
+ eval $CHILD3_3_CHECK_LINK_FAILED_LOG;
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo recovery test
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_HA_AS_CREATE_TABLES;
+ }
+ eval $CHILD2_1_HA_AS_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+if ($USE_CHILD_GROUP3)
+{
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ eval $CHILD3_1_SET_OK_STATUS_AS_2_1;
+ eval $CHILD3_1_CHECK_LINK_STATUS;
+ --connection child3_2
+ eval $CHILD3_2_SET_OK_STATUS_AS_2_1;
+ eval $CHILD3_2_CHECK_LINK_STATUS;
+ --connection child3_3
+ eval $CHILD3_3_SET_OK_STATUS_AS_2_1;
+ eval $CHILD3_3_CHECK_LINK_STATUS;
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+eval $MASTER_1_SET_OK_STATUS_AS_2_1;
+eval $MASTER_1_CHECK_LINK_STATUS;
+INSERT INTO ta_l (a, b, c) VALUES
+ (8, 'g', '2011-05-05 21:33:30');
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+DROP TABLE ta_l;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ eval $CHILD2_2_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+if ($USE_CHILD_GROUP3)
+{
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ --disable_warnings
+ eval $CHILD3_1_DROP_TABLES_HA_2_1;
+ --enable_warnings
+ --connection child3_2
+ --disable_warnings
+ eval $CHILD3_2_DROP_TABLES_HA_2_1;
+ --enable_warnings
+ --connection child3_3
+ --disable_warnings
+ eval $CHILD3_3_DROP_TABLES_HA_2_1;
+ --enable_warnings
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--connection master_1
+eval $MASTER_1_CHANGE_HA_MON;
+
+--echo
+--echo deinit
+--disable_warnings
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE;
+ eval $CHILD2_3_DROP_DATABASE;
+}
+if ($USE_CHILD_GROUP3)
+{
+ --connection child3_1
+ DROP DATABASE IF EXISTS auto_test_local;
+ --connection child3_2
+ DROP DATABASE IF EXISTS auto_test_local;
+ --connection child3_3
+ DROP DATABASE IF EXISTS auto_test_local;
+}
+--disable_query_log
+--disable_result_log
+--source ha_test_deinit.inc
+--source test_deinit.inc
+--enable_result_log
+--enable_query_log
+--enable_warnings
+}
+--echo
+--echo end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/ha_part.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/t/ha_part.cnf
new file mode 100644
index 00000000000..acaf1c3420b
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/ha_part.cnf
@@ -0,0 +1,11 @@
+!include include/default_mysqld.cnf
+!include ../my_1_1.cnf
+!include ../my_2_1.cnf
+!include ../my_2_2.cnf
+!include ../my_2_3.cnf
+!include ../my_3_1.cnf
+!include ../my_3_2.cnf
+!include ../my_3_3.cnf
+[ENV]
+USE_CHILD_GROUP2= 1
+USE_CHILD_GROUP3= 1
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/ha_part.test b/storage/spider/mysql-test/spider/odbc/mariadb/t/ha_part.test
new file mode 100644
index 00000000000..e66d3e38ca3
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/ha_part.test
@@ -0,0 +1,783 @@
+# This test tests for ha features
+if ($USE_HA_TEST)
+{
+--disable_warnings
+--disable_query_log
+--disable_result_log
+--source test_init.inc
+--source ha_test_init.inc
+--enable_result_log
+--enable_query_log
+if (!$HAVE_PARTITION)
+{
+ --disable_query_log
+ --disable_result_log
+ --source ha_test_deinit.inc
+ --source test_deinit.inc
+ --enable_result_log
+ --enable_query_log
+ --enable_warnings
+ skip Test requires partitioning;
+}
+
+--echo
+--echo drop and create databases
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_1_CREATE_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_2_CREATE_DATABASE;
+ eval $CHILD2_3_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_3_CREATE_DATABASE;
+}
+if ($USE_CHILD_GROUP3)
+{
+ --connection child3_1
+ DROP DATABASE IF EXISTS auto_test_local;
+ CREATE DATABASE auto_test_local;
+ USE auto_test_local;
+ --connection child3_2
+ DROP DATABASE IF EXISTS auto_test_local;
+ CREATE DATABASE auto_test_local;
+ USE auto_test_local;
+ --connection child3_3
+ DROP DATABASE IF EXISTS auto_test_local;
+ CREATE DATABASE auto_test_local;
+ USE auto_test_local;
+}
+--enable_warnings
+
+--echo
+--echo test select 1
+--connection master_1
+SELECT 1;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_DATEFORMAT;
+ eval $CHILD2_1_SELECT1;
+ eval $CHILD2_2_DATEFORMAT;
+ eval $CHILD2_2_SELECT1;
+ eval $CHILD2_3_DATEFORMAT;
+ eval $CHILD2_3_SELECT1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+if ($USE_CHILD_GROUP3)
+{
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ SELECT 1;
+ --connection child3_2
+ SELECT 1;
+ --connection child3_3
+ SELECT 1;
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+if ($HAVE_PARTITION)
+{
+ --echo
+ --echo create table with partition test
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES;
+ echo CHILD2_1_DROP_TABLES2;
+ echo CHILD2_1_CREATE_TABLES;
+ echo CHILD2_1_CREATE_TABLES2;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES;
+ eval $CHILD2_1_DROP_TABLES2;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES;
+ eval $CHILD2_1_CREATE_TABLES2;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_2_DROP_TABLES;
+ echo CHILD2_2_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_2_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_2_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_3_DROP_TABLES;
+ echo CHILD2_3_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_3_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_3_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ if ($USE_CHILD_GROUP3)
+ {
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ --disable_warnings
+ eval $CHILD3_1_DROP_TABLES_HA_P_2_1;
+ --enable_warnings
+ eval $CHILD3_1_CREATE_TABLES_HA_P_2_1;
+ --connection child3_2
+ --disable_warnings
+ eval $CHILD3_2_DROP_TABLES_HA_P_2_1;
+ --enable_warnings
+ eval $CHILD3_2_CREATE_TABLES_HA_P_2_1;
+ --connection child3_3
+ --disable_warnings
+ eval $CHILD3_3_DROP_TABLES_HA_P_2_1;
+ --enable_warnings
+ eval $CHILD3_3_CREATE_TABLES_HA_P_2_1;
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ --disable_warnings
+ DROP TABLE IF EXISTS ta_l2;
+ --enable_warnings
+ --disable_query_log
+ echo CREATE TABLE ta_l2 (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_HA_P_2_1;
+ eval CREATE TABLE ta_l2 (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_HA_P_2_1;
+ --enable_query_log
+ INSERT INTO ta_l2 (a, b, c) VALUES
+ (1, 'a', '2008-08-01 10:21:39'),
+ (2, 'b', '2000-01-01 00:00:00'),
+ (3, 'e', '2007-06-04 20:03:11'),
+ (4, 'd', '2003-11-30 05:01:03'),
+ (5, 'c', '2001-12-31 23:59:59');
+
+ --echo
+ --echo select test
+ --connection master_1
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ eval $CHILD2_1_SELECT_TABLES2;
+ eval $CHILD2_2_SELECT_TABLES;
+ eval $CHILD2_3_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+
+ --echo
+ --echo fail-over test
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_3_HA_DROP_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_3_HA_DROP_TABLES;
+ --enable_warnings
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ eval $MASTER_1_CHECK_HA_STATUS;
+ --error 12511
+ INSERT INTO ta_l2 (a, b, c) VALUES
+ (6, 'e', '2011-05-05 20:04:05');
+ DELETE FROM ta_l2 WHERE a = 6;
+ eval $MASTER_1_CHECK_LINK_STATUS;
+ eval $MASTER_1_CHECK_LINK_FAILED_LOG;
+ eval $MASTER_1_CHECK_HA_STATUS;
+ INSERT INTO ta_l2 (a, b, c) VALUES
+ (6, 'e', '2011-05-05 20:04:05');
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ eval $CHILD2_1_SELECT_TABLES2;
+ eval $CHILD2_2_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ if ($USE_CHILD_GROUP3)
+ {
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ eval $CHILD3_1_CHECK_LINK_STATUS;
+ eval $CHILD3_1_CHECK_LINK_FAILED_LOG;
+ --connection child3_2
+ eval $CHILD3_2_CHECK_LINK_STATUS;
+ eval $CHILD3_2_CHECK_LINK_FAILED_LOG;
+ --connection child3_3
+ eval $CHILD3_3_CHECK_LINK_STATUS;
+ eval $CHILD3_3_CHECK_LINK_FAILED_LOG;
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+
+ --echo
+ --echo recovery test
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_3_HA_CREATE_TABLES;
+ }
+ eval $CHILD2_3_HA_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ if ($USE_CHILD_GROUP3)
+ {
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ eval $CHILD3_1_SET_RECOVERY_STATUS_P_2_1;
+ eval $CHILD3_1_CHECK_LINK_STATUS;
+ --connection child3_2
+ eval $CHILD3_2_SET_RECOVERY_STATUS_P_2_1;
+ eval $CHILD3_2_CHECK_LINK_STATUS;
+ --connection child3_3
+ eval $CHILD3_3_SET_RECOVERY_STATUS_P_2_1;
+ eval $CHILD3_3_CHECK_LINK_STATUS;
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ eval $MASTER_1_SET_RECOVERY_STATUS_P_2_1;
+ eval $MASTER_1_CHECK_LINK_STATUS;
+ eval $MASTER_1_COPY_TABLES_P_2_1;
+ if ($USE_CHILD_GROUP3)
+ {
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ eval $CHILD3_1_SET_OK_STATUS_P_2_1;
+ eval $CHILD3_1_CHECK_LINK_STATUS;
+ --connection child3_2
+ eval $CHILD3_2_SET_OK_STATUS_P_2_1;
+ eval $CHILD3_2_CHECK_LINK_STATUS;
+ --connection child3_3
+ eval $CHILD3_3_SET_OK_STATUS_P_2_1;
+ eval $CHILD3_3_CHECK_LINK_STATUS;
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ eval $MASTER_1_SET_OK_STATUS_P_2_1;
+ eval $MASTER_1_CHECK_LINK_STATUS;
+ INSERT INTO ta_l2 (a, b, c) VALUES
+ (8, 'g', '2011-05-05 21:33:30'),
+ (9, 'h', '2011-05-05 22:32:10');
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+ DROP TABLE ta_l2;
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ eval $CHILD2_1_SELECT_TABLES2;
+ eval $CHILD2_2_SELECT_TABLES;
+ eval $CHILD2_3_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ if ($USE_CHILD_GROUP3)
+ {
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ --disable_warnings
+ eval $CHILD3_1_DROP_TABLES_HA_P_2_1;
+ --enable_warnings
+ --connection child3_2
+ --disable_warnings
+ eval $CHILD3_2_DROP_TABLES_HA_P_2_1;
+ --enable_warnings
+ --connection child3_3
+ --disable_warnings
+ eval $CHILD3_3_DROP_TABLES_HA_P_2_1;
+ --enable_warnings
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+}
+
+if ($HAVE_PARTITION)
+{
+ --echo
+ --echo create table with partition test
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES;
+ echo CHILD2_1_DROP_TABLES2;
+ echo CHILD2_1_CREATE_TABLES;
+ echo CHILD2_1_CREATE_TABLES2;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES;
+ eval $CHILD2_1_DROP_TABLES2;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES;
+ eval $CHILD2_1_CREATE_TABLES2;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_2_DROP_TABLES;
+ echo CHILD2_2_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_2_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_2_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_3_DROP_TABLES;
+ echo CHILD2_3_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_3_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_3_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ if ($USE_CHILD_GROUP3)
+ {
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ --disable_warnings
+ eval $CHILD3_1_DROP_TABLES_HA_P_2_1;
+ --enable_warnings
+ eval $CHILD3_1_CREATE_TABLES_HA_AS_P_2_1;
+ --connection child3_2
+ --disable_warnings
+ eval $CHILD3_2_DROP_TABLES_HA_P_2_1;
+ --enable_warnings
+ eval $CHILD3_2_CREATE_TABLES_HA_AS_P_2_1;
+ --connection child3_3
+ --disable_warnings
+ eval $CHILD3_3_DROP_TABLES_HA_P_2_1;
+ --enable_warnings
+ eval $CHILD3_3_CREATE_TABLES_HA_AS_P_2_1;
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ --disable_warnings
+ DROP TABLE IF EXISTS ta_l2;
+ --enable_warnings
+ --disable_query_log
+ echo CREATE TABLE ta_l2 (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_HA_AS_P_2_1;
+ eval CREATE TABLE ta_l2 (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_HA_AS_P_2_1;
+ --enable_query_log
+ INSERT INTO ta_l2 (a, b, c) VALUES
+ (1, 'a', '2008-08-01 10:21:39'),
+ (2, 'b', '2000-01-01 00:00:00'),
+ (3, 'e', '2007-06-04 20:03:11'),
+ (4, 'd', '2003-11-30 05:01:03'),
+ (5, 'c', '2001-12-31 23:59:59');
+
+ --echo
+ --echo select test
+ --connection master_1
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ eval $CHILD2_1_SELECT_TABLES2;
+ eval $CHILD2_2_SELECT_TABLES;
+ eval $CHILD2_3_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+
+ --echo
+ --echo fail-over test
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_HA_AS_DROP_TABLES2;
+ }
+ --disable_warnings
+ eval $CHILD2_1_HA_AS_DROP_TABLES2;
+ --enable_warnings
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ eval $MASTER_1_CHECK_HA_STATUS;
+ --error 12511
+ INSERT INTO ta_l2 (a, b, c) VALUES
+ (6, 'e', '2011-05-05 20:04:05');
+ DELETE FROM ta_l2 WHERE a = 6;
+ eval $MASTER_1_CHECK_LINK_STATUS;
+ eval $MASTER_1_CHECK_LINK_FAILED_LOG;
+ eval $MASTER_1_CHECK_HA_STATUS;
+ INSERT INTO ta_l2 (a, b, c) VALUES
+ (6, 'e', '2011-05-05 20:04:05');
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ eval $CHILD2_2_SELECT_TABLES;
+ eval $CHILD2_3_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ if ($USE_CHILD_GROUP3)
+ {
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ eval $CHILD3_1_CHECK_LINK_STATUS;
+ eval $CHILD3_1_CHECK_LINK_FAILED_LOG;
+ --connection child3_2
+ eval $CHILD3_2_CHECK_LINK_STATUS;
+ eval $CHILD3_2_CHECK_LINK_FAILED_LOG;
+ --connection child3_3
+ eval $CHILD3_3_CHECK_LINK_STATUS;
+ eval $CHILD3_3_CHECK_LINK_FAILED_LOG;
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+
+ --echo
+ --echo recovery test
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_HA_AS_CREATE_TABLES2;
+ }
+ eval $CHILD2_1_HA_AS_CREATE_TABLES2;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ if ($USE_CHILD_GROUP3)
+ {
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ eval $CHILD3_1_SET_OK_STATUS_AS_P_2_1;
+ eval $CHILD3_1_CHECK_LINK_STATUS;
+ --connection child3_2
+ eval $CHILD3_2_SET_OK_STATUS_AS_P_2_1;
+ eval $CHILD3_2_CHECK_LINK_STATUS;
+ --connection child3_3
+ eval $CHILD3_3_SET_OK_STATUS_AS_P_2_1;
+ eval $CHILD3_3_CHECK_LINK_STATUS;
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ eval $MASTER_1_SET_OK_STATUS_AS_P_2_1;
+ eval $MASTER_1_CHECK_LINK_STATUS;
+ INSERT INTO ta_l2 (a, b, c) VALUES
+ (8, 'g', '2011-05-05 21:33:30'),
+ (9, 'h', '2011-05-05 22:32:10');
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 ORDER BY a;
+ DROP TABLE ta_l2;
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ eval $CHILD2_1_SELECT_TABLES2;
+ eval $CHILD2_2_SELECT_TABLES;
+ eval $CHILD2_3_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ if ($USE_CHILD_GROUP3)
+ {
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ --connection child3_1
+ --disable_warnings
+ eval $CHILD3_1_DROP_TABLES_HA_P_2_1;
+ --enable_warnings
+ --connection child3_2
+ --disable_warnings
+ eval $CHILD3_2_DROP_TABLES_HA_P_2_1;
+ --enable_warnings
+ --connection child3_3
+ --disable_warnings
+ eval $CHILD3_3_DROP_TABLES_HA_P_2_1;
+ --enable_warnings
+ if (!$OUTPUT_CHILD_GROUP3)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+}
+
+--echo
+--echo deinit
+--disable_warnings
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE;
+ eval $CHILD2_3_DROP_DATABASE;
+}
+if ($USE_CHILD_GROUP3)
+{
+ --connection child3_1
+ DROP DATABASE IF EXISTS auto_test_local;
+ --connection child3_2
+ DROP DATABASE IF EXISTS auto_test_local;
+ --connection child3_3
+ DROP DATABASE IF EXISTS auto_test_local;
+}
+--disable_query_log
+--disable_result_log
+--source ha_test_deinit.inc
+--source test_deinit.inc
+--enable_result_log
+--enable_query_log
+--enable_warnings
+}
+--echo
+--echo end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/ha_test_deinit.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/ha_test_deinit.inc
new file mode 100644
index 00000000000..ae56679f788
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/ha_test_deinit.inc
@@ -0,0 +1,27 @@
+# get connection and exist engine test
+--echo for master_1
+--connection master_1
+--source ../include/ha_deinit_master_1.inc
+--echo for child2
+if ($USE_CHILD_GROUP2)
+{
+ --echo child2_1
+ --source ../include/ha_deinit_child2_1.inc
+ --echo child2_2
+ --source ../include/ha_deinit_child2_2.inc
+ --echo child2_3
+ --source ../include/ha_deinit_child2_3.inc
+}
+--echo for child3
+if ($USE_CHILD_GROUP3)
+{
+ --echo child3_1
+ --connection child3_1
+ --source ../include/ha_deinit_child3_1.inc
+ --echo child3_2
+ --connection child3_2
+ --source ../include/ha_deinit_child3_2.inc
+ --echo child3_3
+ --connection child3_3
+ --source ../include/ha_deinit_child3_3.inc
+}
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/ha_test_init.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/ha_test_init.inc
new file mode 100644
index 00000000000..6f2c5eba273
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/ha_test_init.inc
@@ -0,0 +1,27 @@
+# get connection and exist engine test
+--echo for master_1
+--connection master_1
+--source ../include/ha_init_master_1.inc
+--echo for child2
+if ($USE_CHILD_GROUP2)
+{
+ --echo child2_1
+ --source ../include/ha_init_child2_1.inc
+ --echo child2_2
+ --source ../include/ha_init_child2_2.inc
+ --echo child2_3
+ --source ../include/ha_init_child2_3.inc
+}
+--echo for child3
+if ($USE_CHILD_GROUP3)
+{
+ --echo child3_1
+ --connection child3_1
+ --source ../include/ha_init_child3_1.inc
+ --echo child3_2
+ --connection child3_2
+ --source ../include/ha_init_child3_2.inc
+ --echo child3_3
+ --connection child3_3
+ --source ../include/ha_init_child3_3.inc
+}
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/have_engine.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/have_engine.inc
new file mode 100644
index 00000000000..64bef7499cb
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/have_engine.inc
@@ -0,0 +1,7 @@
+if (!`SELECT count(*) FROM information_schema.engines WHERE
+ (support = 'YES' OR support = 'DEFAULT') AND
+ engine = '$TEST_ENGINE_TYPE'`)
+{
+ SELECT engine, support FROM information_schema.engines;
+ --let $SKIP_REASON= "Need $TEST_ENGINE_TYPE engine"
+}
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/have_func.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/have_func.inc
new file mode 100644
index 00000000000..e0823e73fc8
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/have_func.inc
@@ -0,0 +1,5 @@
+if (!`SELECT count(*) FROM mysql.func WHERE name = '$TEST_FUNC_NAME'`)
+{
+ SELECT name FROM mysql.func;
+ --let $SKIP_REASON= "Need $TEST_FUNC_NAME function"
+}
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/have_odbc.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/have_odbc.inc
new file mode 100644
index 00000000000..ff91838961e
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/have_odbc.inc
@@ -0,0 +1,13 @@
+--disable_abort_on_error
+CREATE TABLE ta_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) ENGINE=Spider DEFAULT CHARSET=utf8 COMMENT='database "test", port "$CHILD2_1_MYPORT", host "localhost", user "root", password "", default_group "MariaDB ODBC 3.0 Driver", table "ta_r", wrapper "odbc_mariadb"';
+if ($mysql_errno)
+{
+ --skip Test requires to build with ODBC driver
+}
+--enable_abort_on_error
+DROP TABLE ta_l;
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/have_partition.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/have_partition.inc
new file mode 100644
index 00000000000..b6e699475db
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/have_partition.inc
@@ -0,0 +1,7 @@
+let $HAVE_PARTITION= 0;
+if (`SELECT count(*) FROM information_schema.plugins WHERE
+ plugin_status = 'ACTIVE' AND
+ plugin_name = 'partition'`)
+{
+ let $HAVE_PARTITION= 1;
+}
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/have_trigger.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/have_trigger.inc
new file mode 100644
index 00000000000..32de484b388
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/have_trigger.inc
@@ -0,0 +1,2 @@
+let $HAVE_TRIGGER= `SELECT COUNT(*) FROM information_schema.tables
+ WHERE TABLE_SCHEMA = 'information_schema' AND TABLE_NAME = 'TRIGGERS'`;
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/hs_test_deinit.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/hs_test_deinit.inc
new file mode 100644
index 00000000000..7ec2e981fd2
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/hs_test_deinit.inc
@@ -0,0 +1,17 @@
+# get connection and exist engine test
+--echo for master_1
+--connection master_1
+--source ../include/hs_deinit_master_1.inc
+--echo for child2
+if ($USE_CHILD_GROUP2)
+{
+ --echo child2_1
+ --connection child2_1
+ --source ../include/hs_deinit_child2_1.inc
+ --echo child2_2
+ --connection child2_2
+ --source ../include/hs_deinit_child2_2.inc
+ --echo child2_3
+ --connection child2_3
+ --source ../include/hs_deinit_child2_3.inc
+}
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/hs_test_init.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/hs_test_init.inc
new file mode 100644
index 00000000000..831bf479524
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/hs_test_init.inc
@@ -0,0 +1,17 @@
+# get connection and exist engine test
+--echo for master_1
+--connection master_1
+--source ../include/hs_init_master_1.inc
+--echo for child2
+if ($USE_CHILD_GROUP2)
+{
+ --echo child2_1
+ --connection child2_1
+ --source ../include/hs_init_child2_1.inc
+ --echo child2_2
+ --connection child2_2
+ --source ../include/hs_init_child2_2.inc
+ --echo child2_3
+ --connection child2_3
+ --source ../include/hs_init_child2_3.inc
+}
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/slave_test_deinit.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/slave_test_deinit.inc
new file mode 100644
index 00000000000..08fa8196a0d
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/slave_test_deinit.inc
@@ -0,0 +1,9 @@
+# get connection and exist engine test
+--echo for slave1_1
+if ($USE_REPLICATION)
+{
+ --connection slave1_1
+ STOP SLAVE;
+ --source ../include/deinit_slave1_1.inc
+ --disconnect slave1_1
+}
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/slave_test_init.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/slave_test_init.inc
new file mode 100644
index 00000000000..fb67bc20249
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/slave_test_init.inc
@@ -0,0 +1,47 @@
+# get connection and exist engine test
+--echo for slave1_1
+if ($USE_REPLICATION)
+{
+ --source connect_slave1_1.inc
+ --connection slave1_1
+ SET SESSION sql_log_bin= 0;
+ --let $SLAVE1_1_SERVER_ID=`SELECT @@global.server_id`
+ --let $TEST_ENGINE_TYPE= $SLAVE1_1_ENGINE_TYPE
+ --source have_partition.inc
+ --source have_trigger.inc
+ --source ../include/init_slave1_1.inc
+ --source have_engine.inc
+ --let $SLAVE1_1_SLAVE_STATUS=`SHOW SLAVE STATUS`
+ if (!$SLAVE1_1_SLAVE_STATUS)
+ {
+ eval CHANGE MASTER TO
+ MASTER_HOST = '127.0.0.1',
+ MASTER_USER = 'root',
+ MASTER_PASSWORD = '',
+ MASTER_PORT = $MASTER_1_MYPORT
+ ;
+ }
+ START SLAVE;
+ --connection master_1
+ call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
+ --connection slave1_1
+ call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
+ if ($USE_CHILD_GROUP2)
+ {
+ --connection child2_1
+ call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
+ --connection child2_2
+ call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
+ --connection child2_3
+ call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
+ }
+ if ($USE_CHILD_GROUP3)
+ {
+ --connection child3_1
+ call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
+ --connection child3_2
+ call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
+ --connection child3_3
+ call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
+ }
+}
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/spider3_fixes.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/t/spider3_fixes.cnf
new file mode 100644
index 00000000000..a5f020b06e6
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/spider3_fixes.cnf
@@ -0,0 +1,7 @@
+!include include/default_mysqld.cnf
+!include ../my_1_1.cnf
+!include ../my_2_1.cnf
+!include ../my_2_2.cnf
+!include ../my_2_3.cnf
+[ENV]
+USE_CHILD_GROUP2= 1
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/spider3_fixes.test b/storage/spider/mysql-test/spider/odbc/mariadb/t/spider3_fixes.test
new file mode 100644
index 00000000000..da5c2f98ccf
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/spider3_fixes.test
@@ -0,0 +1,280 @@
+# This test tests for Spider 3.0's bug fixes
+source include/have_log_bin.inc;
+--disable_warnings
+--disable_query_log
+--disable_result_log
+--source test_init.inc
+--source slave_test_init.inc
+--enable_result_log
+--enable_query_log
+
+--echo
+--echo drop and create databases
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+if ($USE_REPLICATION)
+{
+ --connection slave1_1
+ DROP DATABASE IF EXISTS auto_test_local;
+ CREATE DATABASE auto_test_local;
+ USE auto_test_local;
+}
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_1_CREATE_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_2_CREATE_DATABASE;
+}
+--enable_warnings
+
+--echo
+--echo test select 1
+--connection master_1
+SELECT 1;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_DATEFORMAT;
+ eval $CHILD2_1_SELECT1;
+ eval $CHILD2_2_DATEFORMAT;
+ eval $CHILD2_2_SELECT1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+
+--echo
+--echo 3.1
+--echo auto_increment
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_INCREMENT_TABLES1;
+ echo CHILD2_1_CREATE_INCREMENT_TABLES1;
+ echo CHILD2_1_AUTO_INCREMENT_INCREMENT2;
+ echo CHILD2_1_AUTO_INCREMENT_OFFSET2;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_INCREMENT_TABLES1;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_INCREMENT_TABLES1;
+ eval $CHILD2_1_AUTO_INCREMENT_INCREMENT2;
+ eval $CHILD2_1_AUTO_INCREMENT_OFFSET2;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if ($USE_GENERAL_LOG)
+ {
+ TRUNCATE TABLE mysql.general_log;
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+if ($USE_REPLICATION)
+{
+ save_master_pos;
+ --connection slave1_1
+ sync_with_master;
+ --connection master_1
+ --disable_query_log
+ SET SESSION sql_log_bin= 0;
+ --enable_query_log
+}
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE t1 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_INCREMENT1_1;
+echo CREATE TABLE t2 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_INCREMENT1_1;
+echo MASTER_1_AUTO_INCREMENT_INCREMENT2;
+echo MASTER_1_AUTO_INCREMENT_OFFSET2;
+eval CREATE TABLE t1 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_INCREMENT1_1;
+eval CREATE TABLE t2 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_INCREMENT1_1;
+eval $MASTER_1_AUTO_INCREMENT_INCREMENT2;
+eval $MASTER_1_AUTO_INCREMENT_OFFSET2;
+if ($USE_REPLICATION)
+{
+ SET SESSION sql_log_bin= 1;
+ --connection slave1_1
+ --disable_warnings
+ DROP TABLE IF EXISTS t1, t2;
+ --enable_warnings
+ echo CREATE TABLE t1 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) SLAVE1_1_ENGINE SLAVE1_1_CHARSET SLAVE1_1_COMMENT_INCREMENT1_1;
+ echo CREATE TABLE t2 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) SLAVE1_1_ENGINE SLAVE1_1_CHARSET SLAVE1_1_COMMENT_INCREMENT1_1;
+ eval CREATE TABLE t1 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) $SLAVE1_1_ENGINE $SLAVE1_1_CHARSET $SLAVE1_1_COMMENT_INCREMENT1_1;
+ eval CREATE TABLE t2 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) $SLAVE1_1_ENGINE $SLAVE1_1_CHARSET $SLAVE1_1_COMMENT_INCREMENT1_1;
+ --connection master_1
+}
+--enable_query_log
+INSERT INTO t1 () VALUES ();
+SELECT LAST_INSERT_ID();
+SELECT MAX(id) FROM t1;
+INSERT INTO t2 () VALUES ();
+SELECT LAST_INSERT_ID();
+SELECT MAX(id) FROM t2;
+--disable_query_log
+echo MASTER_1_AUTO_INCREMENT_OFFSET3;
+eval $MASTER_1_AUTO_INCREMENT_OFFSET3;
+--enable_query_log
+INSERT INTO t1 (id) VALUES (null);
+SELECT LAST_INSERT_ID();
+SELECT MAX(id) FROM t1;
+--disable_query_log
+echo MASTER_1_AUTO_INCREMENT_OFFSET4;
+eval $MASTER_1_AUTO_INCREMENT_OFFSET4;
+--enable_query_log
+INSERT INTO t2 (id) VALUES (null);
+SELECT LAST_INSERT_ID();
+SELECT MAX(id) FROM t2;
+--disable_query_log
+echo MASTER_1_AUTO_INCREMENT_OFFSET3;
+eval $MASTER_1_AUTO_INCREMENT_OFFSET3;
+--enable_query_log
+INSERT INTO t1 () VALUES (),(),(),();
+SELECT LAST_INSERT_ID();
+SELECT id FROM t1 ORDER BY id;
+--disable_query_log
+echo MASTER_1_AUTO_INCREMENT_OFFSET4;
+eval $MASTER_1_AUTO_INCREMENT_OFFSET4;
+--enable_query_log
+INSERT INTO t2 () VALUES (),(),(),();
+SELECT LAST_INSERT_ID();
+SELECT id FROM t2 ORDER BY id;
+TRUNCATE TABLE t1;
+TRUNCATE TABLE t2;
+INSERT INTO t1 () VALUES (),(),(),();
+SELECT LAST_INSERT_ID();
+SELECT id FROM t1 ORDER BY id;
+INSERT INTO t2 () VALUES (),(),(),();
+SELECT LAST_INSERT_ID();
+SELECT id FROM t2 ORDER BY id;
+SET INSERT_ID=5000;
+--disable_query_log
+echo MASTER_1_AUTO_INCREMENT_OFFSET3;
+eval $MASTER_1_AUTO_INCREMENT_OFFSET3;
+--enable_query_log
+INSERT INTO t1 () VALUES ();
+SELECT LAST_INSERT_ID();
+SELECT MAX(id) FROM t1;
+--disable_query_log
+echo MASTER_1_AUTO_INCREMENT_OFFSET4;
+eval $MASTER_1_AUTO_INCREMENT_OFFSET4;
+--enable_query_log
+INSERT INTO t2 () VALUES ();
+SELECT LAST_INSERT_ID();
+SELECT MAX(id) FROM t2;
+INSERT INTO t1 (id) VALUES (10000);
+SELECT LAST_INSERT_ID();
+SELECT MAX(id) FROM t1;
+INSERT INTO t2 (id) VALUES (1000);
+SELECT LAST_INSERT_ID();
+SELECT MAX(id) FROM t2;
+if ($USE_REPLICATION)
+{
+ save_master_pos;
+ --connection slave1_1
+ sync_with_master;
+ SELECT id FROM t1 ORDER BY id;
+ --connection master_1
+ --disable_query_log
+ SET SESSION sql_log_bin= 0;
+ --enable_query_log
+}
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_INCREMENT_TABLES1;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_AUTO_INCREMENT_INCREMENT1;
+ echo CHILD2_1_AUTO_INCREMENT_OFFSET1;
+ }
+ eval $CHILD2_1_AUTO_INCREMENT_INCREMENT1;
+ eval $CHILD2_1_AUTO_INCREMENT_OFFSET1;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+
+--echo
+--echo deinit
+--disable_warnings
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+if ($USE_REPLICATION)
+{
+ --connection slave1_1
+ DROP DATABASE IF EXISTS auto_test_local;
+}
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE;
+}
+--disable_query_log
+--disable_result_log
+--source slave_test_deinit.inc
+--source test_deinit.inc
+--enable_result_log
+--enable_query_log
+--enable_warnings
+--echo
+--echo end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/spider3_fixes_part.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/t/spider3_fixes_part.cnf
new file mode 100644
index 00000000000..a5f020b06e6
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/spider3_fixes_part.cnf
@@ -0,0 +1,7 @@
+!include include/default_mysqld.cnf
+!include ../my_1_1.cnf
+!include ../my_2_1.cnf
+!include ../my_2_2.cnf
+!include ../my_2_3.cnf
+[ENV]
+USE_CHILD_GROUP2= 1
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/spider3_fixes_part.test b/storage/spider/mysql-test/spider/odbc/mariadb/t/spider3_fixes_part.test
new file mode 100644
index 00000000000..472b808a27f
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/spider3_fixes_part.test
@@ -0,0 +1,319 @@
+# This test tests for Spider 3.0's bug fixes
+source include/have_log_bin.inc;
+--disable_warnings
+--disable_query_log
+--disable_result_log
+--source test_init.inc
+--source slave_test_init.inc
+--enable_result_log
+--enable_query_log
+if (!$HAVE_PARTITION)
+{
+ --disable_query_log
+ --disable_result_log
+ --source slave_test_deinit.inc
+ --source test_deinit.inc
+ --enable_result_log
+ --enable_query_log
+ --enable_warnings
+ skip Test requires partitioning;
+}
+
+--echo
+--echo drop and create databases
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+if ($USE_REPLICATION)
+{
+ --connection slave1_1
+ DROP DATABASE IF EXISTS auto_test_local;
+ CREATE DATABASE auto_test_local;
+ USE auto_test_local;
+}
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_1_CREATE_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_2_CREATE_DATABASE;
+}
+--enable_warnings
+
+--echo
+--echo test select 1
+--connection master_1
+SELECT 1;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_DATEFORMAT;
+ eval $CHILD2_1_SELECT1;
+ eval $CHILD2_2_DATEFORMAT;
+ eval $CHILD2_2_SELECT1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+
+--echo auto_increment with partition
+if ($HAVE_PARTITION)
+{
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_INCREMENT_TABLES1;
+ echo CHILD2_1_CREATE_INCREMENT_TABLES1;
+ echo CHILD2_1_AUTO_INCREMENT_INCREMENT2;
+ echo CHILD2_1_AUTO_INCREMENT_OFFSET2;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_INCREMENT_TABLES1;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_INCREMENT_TABLES1;
+ eval $CHILD2_1_AUTO_INCREMENT_INCREMENT2;
+ eval $CHILD2_1_AUTO_INCREMENT_OFFSET2;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_2_DROP_INCREMENT_TABLES1;
+ echo CHILD2_2_CREATE_INCREMENT_TABLES1;
+ echo CHILD2_2_AUTO_INCREMENT_INCREMENT2;
+ echo CHILD2_2_AUTO_INCREMENT_OFFSET2;
+ }
+ --disable_warnings
+ eval $CHILD2_2_DROP_INCREMENT_TABLES1;
+ --enable_warnings
+ eval $CHILD2_2_CREATE_INCREMENT_TABLES1;
+ eval $CHILD2_2_AUTO_INCREMENT_INCREMENT2;
+ eval $CHILD2_2_AUTO_INCREMENT_OFFSET2;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ if ($USE_REPLICATION)
+ {
+ save_master_pos;
+ --connection slave1_1
+ sync_with_master;
+ --connection master_1
+ --disable_query_log
+ SET SESSION sql_log_bin= 0;
+ --enable_query_log
+ }
+ --disable_warnings
+ DROP TABLE IF EXISTS t1, t2;
+ --enable_warnings
+ --disable_query_log
+ echo CREATE TABLE t1 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_INCREMENT1_P_1;
+ echo CREATE TABLE t2 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_INCREMENT1_P_1;
+ echo MASTER_1_AUTO_INCREMENT_INCREMENT2;
+ echo MASTER_1_AUTO_INCREMENT_OFFSET2;
+ eval CREATE TABLE t1 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_INCREMENT1_P_1;
+ eval CREATE TABLE t2 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_INCREMENT1_P_1;
+ eval $MASTER_1_AUTO_INCREMENT_INCREMENT2;
+ eval $MASTER_1_AUTO_INCREMENT_OFFSET2;
+ if ($USE_REPLICATION)
+ {
+ SET SESSION sql_log_bin= 1;
+ --connection slave1_1
+ --disable_warnings
+ DROP TABLE IF EXISTS t1, t2;
+ --enable_warnings
+ echo CREATE TABLE t1 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) SLAVE1_1_ENGINE SLAVE1_1_CHARSET SLAVE1_1_COMMENT_INCREMENT1_P_1;
+ echo CREATE TABLE t2 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) SLAVE1_1_ENGINE SLAVE1_1_CHARSET SLAVE1_1_COMMENT_INCREMENT1_P_1;
+ eval CREATE TABLE t1 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) $SLAVE1_1_ENGINE $SLAVE1_1_CHARSET $SLAVE1_1_COMMENT_INCREMENT1_P_1;
+ eval CREATE TABLE t2 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) $SLAVE1_1_ENGINE $SLAVE1_1_CHARSET $SLAVE1_1_COMMENT_INCREMENT1_P_1;
+ --connection master_1
+ }
+ --enable_query_log
+ INSERT INTO t1 () VALUES ();
+ SELECT LAST_INSERT_ID();
+ SELECT MAX(id) FROM t1;
+ INSERT INTO t2 () VALUES ();
+ SELECT LAST_INSERT_ID();
+ SELECT MAX(id) FROM t2;
+ --disable_query_log
+ echo MASTER_1_AUTO_INCREMENT_OFFSET3;
+ eval $MASTER_1_AUTO_INCREMENT_OFFSET3;
+ --enable_query_log
+ INSERT INTO t1 (id) VALUES (null);
+ SELECT LAST_INSERT_ID();
+ SELECT MAX(id) FROM t1;
+ --disable_query_log
+ echo MASTER_1_AUTO_INCREMENT_OFFSET4;
+ eval $MASTER_1_AUTO_INCREMENT_OFFSET4;
+ --enable_query_log
+ INSERT INTO t2 (id) VALUES (null);
+ SELECT LAST_INSERT_ID();
+ SELECT MAX(id) FROM t2;
+ --disable_query_log
+ echo MASTER_1_AUTO_INCREMENT_OFFSET3;
+ eval $MASTER_1_AUTO_INCREMENT_OFFSET3;
+ --enable_query_log
+ INSERT INTO t1 () VALUES (),(),(),();
+ SELECT LAST_INSERT_ID();
+ SELECT id FROM t1 ORDER BY id;
+ --disable_query_log
+ echo MASTER_1_AUTO_INCREMENT_OFFSET4;
+ eval $MASTER_1_AUTO_INCREMENT_OFFSET4;
+ --enable_query_log
+ INSERT INTO t2 () VALUES (),(),(),();
+ SELECT LAST_INSERT_ID();
+ SELECT id FROM t2 ORDER BY id;
+ TRUNCATE TABLE t1;
+ TRUNCATE TABLE t2;
+ INSERT INTO t1 () VALUES (),(),(),();
+ SELECT LAST_INSERT_ID();
+ SELECT id FROM t1 ORDER BY id;
+ INSERT INTO t2 () VALUES (),(),(),();
+ SELECT LAST_INSERT_ID();
+ SELECT id FROM t2 ORDER BY id;
+ SET INSERT_ID=5000;
+ --disable_query_log
+ echo MASTER_1_AUTO_INCREMENT_OFFSET3;
+ eval $MASTER_1_AUTO_INCREMENT_OFFSET3;
+ --enable_query_log
+ INSERT INTO t1 () VALUES ();
+ SELECT LAST_INSERT_ID();
+ SELECT MAX(id) FROM t1;
+ --disable_query_log
+ echo MASTER_1_AUTO_INCREMENT_OFFSET4;
+ eval $MASTER_1_AUTO_INCREMENT_OFFSET4;
+ --enable_query_log
+ INSERT INTO t2 () VALUES ();
+ SELECT LAST_INSERT_ID();
+ SELECT MAX(id) FROM t2;
+ INSERT INTO t1 (id) VALUES (10000);
+ SELECT LAST_INSERT_ID();
+ SELECT MAX(id) FROM t1;
+ INSERT INTO t2 (id) VALUES (1000);
+ SELECT LAST_INSERT_ID();
+ SELECT MAX(id) FROM t2;
+ if ($USE_REPLICATION)
+ {
+ save_master_pos;
+ --connection slave1_1
+ sync_with_master;
+ SELECT id FROM t1 ORDER BY id;
+ --connection master_1
+ --disable_query_log
+ SET SESSION sql_log_bin= 0;
+ --enable_query_log
+ }
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_INCREMENT_TABLES1;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_AUTO_INCREMENT_INCREMENT1;
+ echo CHILD2_1_AUTO_INCREMENT_OFFSET1;
+ }
+ eval $CHILD2_1_AUTO_INCREMENT_INCREMENT1;
+ eval $CHILD2_1_AUTO_INCREMENT_OFFSET1;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ eval $CHILD2_2_SELECT_INCREMENT_TABLES1;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_2_AUTO_INCREMENT_INCREMENT1;
+ echo CHILD2_2_AUTO_INCREMENT_OFFSET1;
+ }
+ eval $CHILD2_2_AUTO_INCREMENT_INCREMENT1;
+ eval $CHILD2_2_AUTO_INCREMENT_OFFSET1;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+}
+
+
+--echo
+--echo deinit
+--disable_warnings
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+if ($USE_REPLICATION)
+{
+ --connection slave1_1
+ DROP DATABASE IF EXISTS auto_test_local;
+}
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE;
+}
+--disable_query_log
+--disable_result_log
+--source slave_test_deinit.inc
+--source test_deinit.inc
+--enable_result_log
+--enable_query_log
+--enable_warnings
+--echo
+--echo end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/spider_fixes.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/t/spider_fixes.cnf
new file mode 100644
index 00000000000..a5f020b06e6
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/spider_fixes.cnf
@@ -0,0 +1,7 @@
+!include include/default_mysqld.cnf
+!include ../my_1_1.cnf
+!include ../my_2_1.cnf
+!include ../my_2_2.cnf
+!include ../my_2_3.cnf
+[ENV]
+USE_CHILD_GROUP2= 1
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/spider_fixes.test b/storage/spider/mysql-test/spider/odbc/mariadb/t/spider_fixes.test
new file mode 100644
index 00000000000..2031bf0331a
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/spider_fixes.test
@@ -0,0 +1,842 @@
+# This test tests for Spider's bug fixes
+source include/have_log_bin.inc;
+--disable_warnings
+--disable_query_log
+--disable_result_log
+--source test_init.inc
+--source slave_test_init.inc
+--enable_result_log
+--enable_query_log
+
+--echo
+--echo drop and create databases
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+if ($USE_REPLICATION)
+{
+ --connection slave1_1
+ DROP DATABASE IF EXISTS auto_test_local;
+ CREATE DATABASE auto_test_local;
+ USE auto_test_local;
+}
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_1_CREATE_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_2_CREATE_DATABASE;
+}
+--enable_warnings
+
+--echo
+--echo test select 1
+--connection master_1
+SELECT 1;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_DATEFORMAT;
+ eval $CHILD2_1_SELECT1;
+ eval $CHILD2_2_DATEFORMAT;
+ eval $CHILD2_2_SELECT1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo create table and insert
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES;
+ echo CHILD2_1_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS tb_l;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE tb_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE2 MASTER_1_CHARSET2;
+eval CREATE TABLE tb_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) $MASTER_1_ENGINE2 $MASTER_1_CHARSET2;
+--enable_query_log
+INSERT INTO tb_l (a, b, c) VALUES
+ (1, 'a', '2008-08-01 10:21:39'),
+ (2, 'b', '2000-01-01 00:00:00'),
+ (3, 'e', '2007-06-04 20:03:11'),
+ (4, 'd', '2003-11-30 05:01:03'),
+ (5, 'c', '2001-12-31 23:59:59');
+--disable_warnings
+DROP TABLE IF EXISTS ta_l;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE ta_l (
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1;
+eval CREATE TABLE ta_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1;
+--enable_query_log
+INSERT INTO ta_l SELECT a, b, c FROM tb_l;
+
+--echo
+--echo 2.13
+--echo select table with "order by desc" and "<"
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+WHERE a < 5 ORDER BY a DESC LIMIT 3;
+
+--echo
+--echo select table with "order by desc" and "<="
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l
+WHERE a <= 5 ORDER BY a DESC LIMIT 3;
+
+--echo
+--echo 2.14
+--echo update table with range scan and split_read
+--connection master_1
+UPDATE ta_l SET c = '2000-02-02 00:00:00' WHERE a > 1;
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l ORDER BY a;
+
+--echo
+--echo 2.15
+--echo select table with range scan
+TRUNCATE TABLE ta_l;
+--disable_warnings
+DROP TABLE IF EXISTS ta_l;
+--enable_warnings
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES6;
+ echo CHILD2_1_CREATE_TABLES6;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES6;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES6;
+ --enable_query_log
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_result_log
+ }
+}
+--connection master_1
+--disable_query_log
+echo CREATE TABLE ta_l (
+ a int(11) NOT NULL DEFAULT '0',
+ b char(1) DEFAULT NULL,
+ c datetime DEFAULT NULL,
+ PRIMARY KEY (a, b, c)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT5_2_1;
+eval CREATE TABLE ta_l (
+ a int(11) NOT NULL DEFAULT '0',
+ b char(1) DEFAULT NULL,
+ c datetime DEFAULT NULL,
+ PRIMARY KEY (a, b, c)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT5_2_1;
+--enable_query_log
+INSERT INTO ta_l SELECT a, b, c FROM tb_l;
+--connection master_1
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a = 4 AND b >= 'b'
+AND c = '2003-11-30 05:01:03';
+--connection master_1
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a = 4 AND b > 'b'
+AND c = '2003-11-30 05:01:03';
+--connection master_1
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a >= 4 AND b = 'd'
+AND c = '2003-11-30 05:01:03';
+--connection master_1
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a > 4 AND b = 'c'
+AND c = '2001-12-31 23:59:59';
+--connection master_1
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a = 4 AND b <= 'd'
+AND c = '2003-11-30 05:01:03';
+--connection master_1
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a = 4 AND b < 'e'
+AND c = '2003-11-30 05:01:03';
+--connection master_1
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a <= 4 AND b = 'b'
+AND c = '2000-01-01 00:00:00';
+--connection master_1
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a < 4 AND b = 'b'
+AND c = '2000-01-01 00:00:00';
+--connection master_1
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a = 4 AND b >= 'b'
+AND b <= 'd' AND c = '2003-11-30 05:01:03';
+--connection master_1
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a = 4 AND b > 'b'
+AND b < 'e' AND c = '2003-11-30 05:01:03';
+--connection master_1
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a <= 4 AND a >= 1
+AND b >= 'b' AND c = '2003-11-30 05:01:03';
+--connection master_1
+SELECT a, b, c FROM ta_l FORCE INDEX(PRIMARY) WHERE a < 4 AND a > 1
+AND b >= 'b' AND c = '2000-01-01 00:00:00';
+
+--echo
+--echo 2.16
+--echo auto_increment insert with trigger
+if ($HAVE_TRIGGER)
+{
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_result_log
+ }
+ --disable_query_log
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ echo CHILD2_1_DROP_TABLES4;
+ echo CHILD2_1_CREATE_TABLES4;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES4;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES4;
+ --enable_query_log
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ --disable_query_log
+ echo CREATE TABLE ta_l_auto_inc (
+ a INT AUTO_INCREMENT,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT3_2_1;
+ eval CREATE TABLE ta_l_auto_inc (
+ a INT AUTO_INCREMENT,
+ b CHAR(1) DEFAULT 'c',
+ c DATETIME DEFAULT '1999-10-10 10:10:10',
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT3_2_1;
+ echo CREATE TABLE tc_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) MASTER_1_ENGINE2 MASTER_1_CHARSET2;
+ eval CREATE TABLE tc_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE2 $MASTER_1_CHARSET2;
+ --enable_query_log
+ --eval CREATE TRIGGER ins_ta_l_auto_inc AFTER INSERT ON ta_l_auto_inc FOR EACH ROW BEGIN INSERT INTO tc_l (a, b, c) VALUES (NEW.a, NEW.b, NEW.c); END;
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ INSERT INTO ta_l_auto_inc (a, b, c) VALUES
+ (NULL, 's', '2008-12-31 20:59:59');
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES4;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM tc_l ORDER BY a;
+}
+
+--echo
+--echo 2.17
+--echo engine-condition-pushdown with "or" and joining
+--connection master_1
+SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l WHERE a = 1 OR a IN (SELECT a FROM tb_l);
+
+--echo
+--echo 2.23
+--echo index merge
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_result_log
+ }
+ --disable_query_log
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ echo CHILD2_1_DROP_TABLES5;
+ echo CHILD2_1_CREATE_TABLES5;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES5;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES5;
+ --enable_query_log
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_result_log
+ }
+}
+--connection master_1
+--disable_query_log
+echo CREATE TABLE ta_l_int (
+ a INT AUTO_INCREMENT,
+ b INT DEFAULT 10,
+ c INT DEFAULT 11,
+ PRIMARY KEY(a),
+ KEY idx1(b),
+ KEY idx2(c)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT4_2_1;
+eval CREATE TABLE ta_l_int (
+ a INT AUTO_INCREMENT,
+ b INT DEFAULT 10,
+ c INT DEFAULT 11,
+ PRIMARY KEY(a),
+ KEY idx1(b),
+ KEY idx2(c)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT4_2_1;
+--enable_query_log
+INSERT INTO ta_l_int (a, b, c) VALUES (1, 2, 3);
+INSERT INTO ta_l_int (a, b, c) SELECT a + 1, b + 1, c + 1 FROM ta_l_int;
+INSERT INTO ta_l_int (a, b, c) SELECT a + 2, b + 2, c + 2 FROM ta_l_int;
+INSERT INTO ta_l_int (a, b, c) SELECT a + 4, b + 4, c + 4 FROM ta_l_int;
+INSERT INTO ta_l_int (a, b, c) SELECT a + 8, b + 8, c + 8 FROM ta_l_int;
+--connection master_1
+SELECT a, b, c FROM ta_l_int force index(primary, idx1, idx2)
+WHERE a = 5 OR b = 5 OR c = 5 ORDER BY a;
+
+--echo
+--echo 2.24
+--echo index scan update without PK
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS ta_l_int;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE ta_l_int (
+ a INT NOT NULL,
+ b INT DEFAULT 10,
+ c INT DEFAULT 11,
+ KEY idx1(b),
+ KEY idx2(c)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT4_2_1;
+if ($MASTER_1_NEEDPK)
+{
+ --error ER_REQUIRES_PRIMARY_KEY
+ eval CREATE TABLE ta_l_int (
+ a INT NOT NULL,
+ b INT DEFAULT 10,
+ c INT DEFAULT 11,
+ KEY idx1(b),
+ KEY idx2(c)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT4_2_1;
+ eval CREATE TABLE ta_l_int (
+ a INT NOT NULL,
+ b INT DEFAULT 10,
+ c INT DEFAULT 11,
+ PRIMARY KEY(a),
+ KEY idx1(b),
+ KEY idx2(c)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT4_2_1;
+}
+if (!$MASTER_1_NEEDPK)
+{
+ eval CREATE TABLE ta_l_int (
+ a INT NOT NULL,
+ b INT DEFAULT 10,
+ c INT DEFAULT 11,
+ KEY idx1(b),
+ KEY idx2(c)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT4_2_1;
+}
+--enable_query_log
+SELECT a, b, c FROM ta_l_int ORDER BY a;
+INSERT INTO ta_l_int (a, b, c) VALUES (0, 2, 3);
+INSERT INTO ta_l_int (a, b, c) VALUES (18, 2, 3);
+--connection master_1
+UPDATE ta_l_int SET c = 4 WHERE b = 2;
+--connection master_1
+SELECT a, b, c FROM ta_l_int ORDER BY a;
+
+
+--echo
+--echo 2.25
+--echo direct order limit
+--connection master_1
+eval $MASTER_1_CHECK_DIRECT_ORDER_LIMIT_STATUS;
+SELECT a, b, c FROM ta_l_int ORDER BY a LIMIT 3;
+eval $MASTER_1_CHECK_DIRECT_ORDER_LIMIT_STATUS;
+
+
+--echo
+--echo 2.26
+--echo lock tables
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_LOCK_TABLES1;
+ echo CHILD2_1_DROP_LOCK_TABLES2;
+ echo CHILD2_1_CREATE_LOCK_TABLES1;
+ echo CHILD2_1_CREATE_LOCK_TABLES2;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_LOCK_TABLES1;
+ eval $CHILD2_1_DROP_LOCK_TABLES2;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_LOCK_TABLES1;
+ eval $CHILD2_1_CREATE_LOCK_TABLES2;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_2_DROP_LOCK_TABLES1;
+ echo CHILD2_2_DROP_LOCK_TABLES2;
+ echo CHILD2_2_CREATE_LOCK_TABLES1;
+ echo CHILD2_2_CREATE_LOCK_TABLES2;
+ }
+ --disable_warnings
+ eval $CHILD2_2_DROP_LOCK_TABLES1;
+ eval $CHILD2_2_DROP_LOCK_TABLES2;
+ --enable_warnings
+ eval $CHILD2_2_CREATE_LOCK_TABLES1;
+ eval $CHILD2_2_CREATE_LOCK_TABLES2;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t2;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE t1 (
+ id int(11) NOT NULL,
+ PRIMARY KEY (id)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_LOCK1;
+eval CREATE TABLE t1 (
+ id int(11) NOT NULL,
+ PRIMARY KEY (id)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_LOCK1;
+echo CREATE TABLE t2 (
+ id int(11) NOT NULL,
+ PRIMARY KEY (id)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_LOCK2;
+eval CREATE TABLE t2 (
+ id int(11) NOT NULL,
+ PRIMARY KEY (id)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_LOCK2;
+--enable_query_log
+LOCK TABLES t1 READ, t2 READ;
+UNLOCK TABLES;
+
+
+--echo
+--echo auto_increment
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_INCREMENT_TABLES1;
+ echo CHILD2_1_CREATE_INCREMENT_TABLES1;
+ echo CHILD2_1_AUTO_INCREMENT_INCREMENT2;
+ echo CHILD2_1_AUTO_INCREMENT_OFFSET2;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_INCREMENT_TABLES1;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_INCREMENT_TABLES1;
+ eval $CHILD2_1_AUTO_INCREMENT_INCREMENT2;
+ eval $CHILD2_1_AUTO_INCREMENT_OFFSET2;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+if ($USE_REPLICATION)
+{
+ save_master_pos;
+ --connection slave1_1
+ sync_with_master;
+ --connection master_1
+ --disable_query_log
+ SET SESSION sql_log_bin= 0;
+ --enable_query_log
+}
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE t1 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_INCREMENT1_1;
+echo MASTER_1_AUTO_INCREMENT_INCREMENT2;
+echo MASTER_1_AUTO_INCREMENT_OFFSET2;
+eval CREATE TABLE t1 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_INCREMENT1_1;
+eval $MASTER_1_AUTO_INCREMENT_INCREMENT2;
+eval $MASTER_1_AUTO_INCREMENT_OFFSET2;
+if ($USE_REPLICATION)
+{
+ SET SESSION sql_log_bin= 1;
+ --connection slave1_1
+ --disable_warnings
+ DROP TABLE IF EXISTS t1;
+ --enable_warnings
+ echo CREATE TABLE t1 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) SLAVE1_1_ENGINE SLAVE1_1_CHARSET SLAVE1_1_COMMENT_INCREMENT1_1;
+ eval CREATE TABLE t1 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) $SLAVE1_1_ENGINE $SLAVE1_1_CHARSET $SLAVE1_1_COMMENT_INCREMENT1_1;
+ --connection master_1
+}
+--enable_query_log
+INSERT INTO t1 () VALUES ();
+SELECT LAST_INSERT_ID();
+SELECT MAX(id) FROM t1;
+INSERT INTO t1 () VALUES ();
+SELECT LAST_INSERT_ID();
+SELECT MAX(id) FROM t1;
+INSERT INTO t1 (id) VALUES (null);
+SELECT LAST_INSERT_ID();
+SELECT MAX(id) FROM t1;
+INSERT INTO t1 (id) VALUES (null);
+SELECT LAST_INSERT_ID();
+SELECT MAX(id) FROM t1;
+INSERT INTO t1 () VALUES (),(),(),();
+SELECT LAST_INSERT_ID();
+SELECT id FROM t1 ORDER BY id;
+SET INSERT_ID=5000;
+INSERT INTO t1 () VALUES ();
+SELECT LAST_INSERT_ID();
+SELECT MAX(id) FROM t1;
+INSERT INTO t1 (id) VALUES (10000);
+SELECT LAST_INSERT_ID();
+SELECT MAX(id) FROM t1;
+INSERT INTO t1 (id) VALUES (1000);
+SELECT LAST_INSERT_ID();
+SELECT MAX(id) FROM t1;
+if ($USE_REPLICATION)
+{
+ save_master_pos;
+ --connection slave1_1
+ sync_with_master;
+ SELECT id FROM t1 ORDER BY id;
+ --connection master_1
+ --disable_query_log
+ SET SESSION sql_log_bin= 0;
+ --enable_query_log
+}
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_INCREMENT_TABLES1;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_AUTO_INCREMENT_INCREMENT1;
+ echo CHILD2_1_AUTO_INCREMENT_OFFSET1;
+ }
+ eval $CHILD2_1_AUTO_INCREMENT_INCREMENT1;
+ eval $CHILD2_1_AUTO_INCREMENT_OFFSET1;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+
+--echo
+--echo read only
+let $MASTER_1_ENGINE_IS_SPIDER=
+ `SELECT IF('$MASTER_1_ENGINE_TYPE' = 'Spider' OR
+ '$MASTER_1_HIDDEN_ENGINE_TYPE' = 'Spider', 1, 0)`;
+if ($MASTER_1_ENGINE_IS_SPIDER)
+{
+ --connection master_1
+ --disable_warnings
+ DROP TABLE IF EXISTS t1;
+ --enable_warnings
+ --disable_query_log
+ echo CREATE TABLE t1 (
+ id int(11) NOT NULL,
+ PRIMARY KEY (id)
+ ) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_READONLY1_1;
+ eval CREATE TABLE t1 (
+ id int(11) NOT NULL,
+ PRIMARY KEY (id)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_READONLY1_1;
+ --let $MIN_VAL= `SELECT MIN(id) FROM t1`
+ --enable_query_log
+ SELECT id FROM t1 ORDER BY id;
+ --error 12518
+ INSERT INTO t1 (id) VALUES (1);
+ --error 12518
+ eval UPDATE t1 SET id = 4 WHERE id = $MIN_VAL;
+ --error 12518
+ eval DELETE FROM t1 WHERE id = $MIN_VAL;
+ --error 12518
+ DELETE FROM t1;
+ --error 12518
+ TRUNCATE t1;
+}
+if (!$MASTER_1_ENGINE_IS_SPIDER)
+{
+ --echo skipped
+}
+
+
+--echo
+--echo 2.27
+--echo error mode
+--echo skipped
+
+
+--echo
+--echo 3.0
+--echo is null
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_result_log
+ }
+ --disable_query_log
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ echo CHILD2_1_DROP_TEXT_KEY_TABLES1;
+ echo CHILD2_1_CREATE_TEXT_KEY_TABLES1;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TEXT_KEY_TABLES1;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TEXT_KEY_TABLES1;
+ --enable_query_log
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_result_log
+ }
+}
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE t1 (
+ a VARCHAR(255),
+ b VARCHAR(255),
+ c VARCHAR(255),
+ KEY idx1(a,b),
+ KEY idx2(b),
+ PRIMARY KEY(c)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_TEXT_KEY1_1;
+eval CREATE TABLE t1 (
+ a VARCHAR(255),
+ b VARCHAR(255),
+ c VARCHAR(255),
+ KEY idx1(a,b),
+ KEY idx2(b),
+ PRIMARY KEY(c)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_TEXT_KEY1_1;
+--enable_query_log
+insert into t1 values (null, null, '2048');
+insert into t1 values ('1', '1', '1');
+insert into t1 select a + 1, b + 1, c + 1 from t1;
+insert into t1 select a + 2, b + 2, c + 2 from t1;
+insert into t1 select a + 4, b + 4, c + 4 from t1;
+insert into t1 select a + 8, b + 8, c + 8 from t1;
+insert into t1 select a + 16, b + 16, c + 16 from t1;
+insert into t1 select a + 32, b + 32, c + 32 from t1;
+insert into t1 select a + 64, b + 64, c + 64 from t1;
+insert into t1 select a + 128, b + 128, c + 128 from t1;
+insert into t1 select a + 256, b + 256, c + 256 from t1;
+insert into t1 select a + 512, b + 512, c + 512 from t1;
+flush tables;
+--connection master_1
+select a from t1 where a is null order by a limit 30;
+select b from t1 where b is null order by b limit 30;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TEXT_PK_TABLES1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+
+--echo
+--echo direct_order_limit
+--connection master_1
+TRUNCATE TABLE t1;
+insert into t1 values ('1', '1', '1');
+insert into t1 select a + 1, b + 1, c + 1 from t1;
+insert into t1 select a + 2, b + 2, c + 2 from t1;
+insert into t1 select a + 4, b + 4, c + 4 from t1;
+insert into t1 select a + 8, b + 8, c + 8 from t1;
+insert into t1 select a + 16, b + 16, c + 16 from t1;
+insert into t1 select a, b + 32, c + 32 from t1;
+insert into t1 select a, b + 64, c + 64 from t1;
+insert into t1 select a, b + 128, c + 128 from t1;
+flush tables;
+--connection master_1
+select a, b, c from t1 where a = '10' and b <> '100' order by c desc limit 5;
+select a, c from t1 where a = '10' order by b desc limit 5;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TEXT_PK_TABLES1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+
+--echo
+--echo deinit
+--disable_warnings
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+if ($USE_REPLICATION)
+{
+ --connection slave1_1
+ DROP DATABASE IF EXISTS auto_test_local;
+}
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE;
+}
+--disable_query_log
+--disable_result_log
+--source slave_test_deinit.inc
+--source test_deinit.inc
+--enable_result_log
+--enable_query_log
+--enable_warnings
+--echo
+--echo end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/spider_fixes_part.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/t/spider_fixes_part.cnf
new file mode 100644
index 00000000000..a5f020b06e6
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/spider_fixes_part.cnf
@@ -0,0 +1,7 @@
+!include include/default_mysqld.cnf
+!include ../my_1_1.cnf
+!include ../my_2_1.cnf
+!include ../my_2_2.cnf
+!include ../my_2_3.cnf
+[ENV]
+USE_CHILD_GROUP2= 1
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/spider_fixes_part.test b/storage/spider/mysql-test/spider/odbc/mariadb/t/spider_fixes_part.test
new file mode 100644
index 00000000000..256fcc1d34a
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/spider_fixes_part.test
@@ -0,0 +1,525 @@
+# This test tests for Spider's bug fixes
+source include/have_log_bin.inc;
+--disable_warnings
+--disable_query_log
+--disable_result_log
+--source test_init.inc
+--source slave_test_init.inc
+--enable_result_log
+--enable_query_log
+if (!$HAVE_PARTITION)
+{
+ --disable_query_log
+ --disable_result_log
+ --source slave_test_deinit.inc
+ --source test_deinit.inc
+ --enable_result_log
+ --enable_query_log
+ --enable_warnings
+ skip Test requires partitioning;
+}
+
+--echo
+--echo drop and create databases
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+if ($USE_REPLICATION)
+{
+ --connection slave1_1
+ DROP DATABASE IF EXISTS auto_test_local;
+ CREATE DATABASE auto_test_local;
+ USE auto_test_local;
+}
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_1_CREATE_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_2_CREATE_DATABASE;
+}
+--enable_warnings
+
+--echo
+--echo test select 1
+--connection master_1
+SELECT 1;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_DATEFORMAT;
+ eval $CHILD2_1_SELECT1;
+ eval $CHILD2_2_DATEFORMAT;
+ eval $CHILD2_2_SELECT1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS tb_l;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE tb_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE2 MASTER_1_CHARSET2;
+eval CREATE TABLE tb_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) $MASTER_1_ENGINE2 $MASTER_1_CHARSET2;
+--enable_query_log
+INSERT INTO tb_l (a, b, c) VALUES
+ (1, 'a', '2008-08-01 10:21:39'),
+ (2, 'b', '2000-01-01 00:00:00'),
+ (3, 'e', '2007-06-04 20:03:11'),
+ (4, 'd', '2003-11-30 05:01:03'),
+ (5, 'c', '2001-12-31 23:59:59');
+
+--echo
+--echo 2.17
+--echo partition with sort
+if ($HAVE_PARTITION)
+{
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_2_DROP_TABLES;
+ echo CHILD2_2_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_2_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_2_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES2;
+ echo CHILD2_1_CREATE_TABLES2;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES2;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES2;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ --disable_query_log
+ echo CREATE TABLE ta_l2 (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) MASTER_1_ENGINE MASTER_1_COMMENT2_P_2_1;
+ eval CREATE TABLE ta_l2 (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_COMMENT2_P_2_1;
+ --enable_query_log
+ INSERT INTO ta_l2 SELECT a, b, c FROM tb_l;
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2 WHERE a > 1
+ ORDER BY a;
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_2_SELECT_TABLES;
+ eval $CHILD2_1_SELECT_TABLES2;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+}
+
+--echo
+--echo 2.23
+--echo partition update with moving partition
+if ($HAVE_PARTITION)
+{
+ --connection master_1
+ --disable_warnings
+ DROP TABLE IF EXISTS ta_l2;
+ --enable_warnings
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_2_DROP_TABLES;
+ echo CHILD2_2_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_2_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_2_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES2;
+ echo CHILD2_1_CREATE_TABLES2;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES2;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES2;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ --disable_query_log
+ echo CREATE TABLE ta_l2 (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) MASTER_1_ENGINE MASTER_1_COMMENT2_P_2_1;
+ eval CREATE TABLE ta_l2 (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+ ) $MASTER_1_ENGINE $MASTER_1_COMMENT2_P_2_1;
+ --enable_query_log
+ INSERT INTO ta_l2 (a, b, c) VALUES (3, 'B', '2010-09-26 00:00:00');
+ UPDATE ta_l2 SET a = 4 WHERE a = 3;
+ SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_l2;
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_2_SELECT_TABLES;
+ eval $CHILD2_1_SELECT_TABLES2;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+}
+
+--echo index merge with partition
+if ($HAVE_PARTITION)
+{
+ --connection master_1
+ --disable_warnings
+ DROP TABLE IF EXISTS ta_l_int;
+ --enable_warnings
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_result_log
+ }
+ --disable_query_log
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ echo CHILD2_2_DROP_TABLES5;
+ echo CHILD2_2_CREATE_TABLES5;
+ }
+ --disable_warnings
+ eval $CHILD2_2_DROP_TABLES5;
+ --enable_warnings
+ eval $CHILD2_2_CREATE_TABLES5;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ echo CHILD2_1_DROP_TABLES5;
+ echo CHILD2_1_CREATE_TABLES5;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES5;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES5;
+ --enable_query_log
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ --disable_query_log
+ echo CREATE TABLE ta_l_int (
+ a INT AUTO_INCREMENT,
+ b INT DEFAULT 10,
+ c INT DEFAULT 11,
+ PRIMARY KEY(a),
+ KEY idx1(b),
+ KEY idx2(c)
+ ) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT3_P_2_1;
+ eval CREATE TABLE ta_l_int (
+ a INT AUTO_INCREMENT,
+ b INT DEFAULT 10,
+ c INT DEFAULT 11,
+ PRIMARY KEY(a),
+ KEY idx1(b),
+ KEY idx2(c)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT3_P_2_1;
+ --enable_query_log
+ INSERT INTO ta_l_int (a, b, c) VALUES (1, 2, 3);
+ INSERT INTO ta_l_int (a, b, c) SELECT a + 1, b + 1, c + 1 FROM ta_l_int;
+ INSERT INTO ta_l_int (a, b, c) SELECT a + 2, b + 2, c + 2 FROM ta_l_int;
+ INSERT INTO ta_l_int (a, b, c) SELECT a + 4, b + 4, c + 4 FROM ta_l_int;
+ INSERT INTO ta_l_int (a, b, c) SELECT a + 8, b + 8, c + 8 FROM ta_l_int;
+ --connection master_1
+ SELECT a, b, c FROM ta_l_int force index(primary, idx1, idx2)
+ WHERE a = 5 OR b = 5 OR c = 5 ORDER BY a;
+}
+
+
+--echo
+--echo 2.26
+--echo auto_increment with partition
+if ($HAVE_PARTITION)
+{
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_INCREMENT_TABLES1;
+ echo CHILD2_1_CREATE_INCREMENT_TABLES1;
+ echo CHILD2_1_AUTO_INCREMENT_INCREMENT2;
+ echo CHILD2_1_AUTO_INCREMENT_OFFSET2;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_INCREMENT_TABLES1;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_INCREMENT_TABLES1;
+ eval $CHILD2_1_AUTO_INCREMENT_INCREMENT2;
+ eval $CHILD2_1_AUTO_INCREMENT_OFFSET2;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_2_DROP_INCREMENT_TABLES1;
+ echo CHILD2_2_CREATE_INCREMENT_TABLES1;
+ echo CHILD2_2_AUTO_INCREMENT_INCREMENT2;
+ echo CHILD2_2_AUTO_INCREMENT_OFFSET2;
+ }
+ --disable_warnings
+ eval $CHILD2_2_DROP_INCREMENT_TABLES1;
+ --enable_warnings
+ eval $CHILD2_2_CREATE_INCREMENT_TABLES1;
+ eval $CHILD2_2_AUTO_INCREMENT_INCREMENT2;
+ eval $CHILD2_2_AUTO_INCREMENT_OFFSET2;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+ --connection master_1
+ if ($USE_REPLICATION)
+ {
+ save_master_pos;
+ --connection slave1_1
+ sync_with_master;
+ --connection master_1
+ --disable_query_log
+ SET SESSION sql_log_bin= 0;
+ --enable_query_log
+ }
+ --disable_warnings
+ DROP TABLE IF EXISTS t1;
+ --enable_warnings
+ --disable_query_log
+ echo CREATE TABLE t1 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_INCREMENT1_P_1;
+ echo MASTER_1_AUTO_INCREMENT_INCREMENT2;
+ echo MASTER_1_AUTO_INCREMENT_OFFSET2;
+ eval CREATE TABLE t1 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_INCREMENT1_P_1;
+ eval $MASTER_1_AUTO_INCREMENT_INCREMENT2;
+ eval $MASTER_1_AUTO_INCREMENT_OFFSET2;
+ if ($USE_REPLICATION)
+ {
+ SET SESSION sql_log_bin= 1;
+ --connection slave1_1
+ --disable_warnings
+ DROP TABLE IF EXISTS t1;
+ --enable_warnings
+ echo CREATE TABLE t1 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) SLAVE1_1_ENGINE SLAVE1_1_CHARSET SLAVE1_1_COMMENT_INCREMENT1_P_1;
+ eval CREATE TABLE t1 (
+ id int(11) NOT NULL AUTO_INCREMENT,
+ PRIMARY KEY (id)
+ ) $SLAVE1_1_ENGINE $SLAVE1_1_CHARSET $SLAVE1_1_COMMENT_INCREMENT1_P_1;
+ --connection master_1
+ }
+ --enable_query_log
+ INSERT INTO t1 () VALUES ();
+ SELECT LAST_INSERT_ID();
+ SELECT MAX(id) FROM t1;
+ INSERT INTO t1 () VALUES ();
+ SELECT LAST_INSERT_ID();
+ SELECT MAX(id) FROM t1;
+ INSERT INTO t1 (id) VALUES (null);
+ SELECT LAST_INSERT_ID();
+ SELECT MAX(id) FROM t1;
+ INSERT INTO t1 (id) VALUES (null);
+ SELECT LAST_INSERT_ID();
+ SELECT MAX(id) FROM t1;
+ INSERT INTO t1 () VALUES (),(),(),();
+ SELECT LAST_INSERT_ID();
+ SELECT id FROM t1 ORDER BY id;
+ SET INSERT_ID=5000;
+ INSERT INTO t1 () VALUES ();
+ SELECT LAST_INSERT_ID();
+ SELECT MAX(id) FROM t1;
+ INSERT INTO t1 (id) VALUES (10000);
+ SELECT LAST_INSERT_ID();
+ SELECT MAX(id) FROM t1;
+ INSERT INTO t1 (id) VALUES (1000);
+ SELECT LAST_INSERT_ID();
+ SELECT MAX(id) FROM t1;
+ if ($USE_REPLICATION)
+ {
+ save_master_pos;
+ --connection slave1_1
+ sync_with_master;
+ SELECT id FROM t1 ORDER BY id;
+ --connection master_1
+ --disable_query_log
+ SET SESSION sql_log_bin= 0;
+ --enable_query_log
+ }
+ if ($USE_CHILD_GROUP2)
+ {
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_INCREMENT_TABLES1;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_AUTO_INCREMENT_INCREMENT1;
+ echo CHILD2_1_AUTO_INCREMENT_OFFSET1;
+ }
+ eval $CHILD2_1_AUTO_INCREMENT_INCREMENT1;
+ eval $CHILD2_1_AUTO_INCREMENT_OFFSET1;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ eval $CHILD2_2_SELECT_INCREMENT_TABLES1;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_2_AUTO_INCREMENT_INCREMENT1;
+ echo CHILD2_2_AUTO_INCREMENT_OFFSET1;
+ }
+ eval $CHILD2_2_AUTO_INCREMENT_INCREMENT1;
+ eval $CHILD2_2_AUTO_INCREMENT_OFFSET1;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+ }
+}
+
+
+--echo
+--echo deinit
+--disable_warnings
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+if ($USE_REPLICATION)
+{
+ --connection slave1_1
+ DROP DATABASE IF EXISTS auto_test_local;
+}
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE;
+}
+--disable_query_log
+--disable_result_log
+--source slave_test_deinit.inc
+--source test_deinit.inc
+--enable_result_log
+--enable_query_log
+--enable_warnings
+--echo
+--echo end of test
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/test_deinit.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/test_deinit.inc
new file mode 100644
index 00000000000..1fc8670b17a
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/test_deinit.inc
@@ -0,0 +1,31 @@
+# get connection and exist engine test
+--echo for child3
+if ($USE_CHILD_GROUP3)
+{
+ --echo child3_3
+ --connection child3_3
+ --source ../include/deinit_child3_3.inc
+ --disconnect child3_3
+ --echo child3_2
+ --connection child3_2
+ --source ../include/deinit_child3_2.inc
+ --disconnect child3_2
+ --echo child3_1
+ --connection child3_1
+ --source ../include/deinit_child3_1.inc
+ --disconnect child3_1
+}
+--echo for child2
+if ($USE_CHILD_GROUP2)
+{
+ --echo child2_3
+ --source ../include/deinit_child2_3.inc
+ --echo child2_2
+ --source ../include/deinit_child2_2.inc
+ --echo child2_1
+ --source ../include/deinit_child2_1.inc
+}
+--echo for master_1
+--connection master_1
+--source ../include/deinit_master_1.inc
+--disconnect master_1
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/test_init.inc b/storage/spider/mysql-test/spider/odbc/mariadb/t/test_init.inc
new file mode 100644
index 00000000000..fbeaa8862fa
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/test_init.inc
@@ -0,0 +1,54 @@
+# get connection and exist engine test
+--echo for master_1
+--source connect_master_1.inc
+--connection master_1
+CALL mtr.add_suppression("unknown variable");
+SET SESSION sql_log_bin= 0;
+--let $MASTER_1_SERVER_ID=`SELECT @@global.server_id`
+--let $TEST_ENGINE_TYPE= $MASTER_1_ENGINE_TYPE
+--source have_partition.inc
+--source have_trigger.inc
+--source ../include/init_master_1.inc
+--source have_engine.inc
+--source have_odbc.inc
+--echo for child2
+if ($USE_CHILD_GROUP2)
+{
+ --echo child2_1
+ --source ../include/init_child2_1.inc
+ --echo child2_2
+ --source ../include/init_child2_2.inc
+ --echo child2_3
+ --source ../include/init_child2_3.inc
+}
+--echo for child3
+if ($USE_CHILD_GROUP3)
+{
+ --echo child3_1
+ --source connect_child3_1.inc
+ --connection child3_1
+ CALL mtr.add_suppression("unknown variable *");
+ SET SESSION sql_log_bin= 0;
+ --let $CHILD3_1_SERVER_ID=`SELECT @@global.server_id`
+ --let $TEST_ENGINE_TYPE= $CHILD3_1_ENGINE_TYPE
+ --source ../include/init_child3_1.inc
+ --source have_engine.inc
+ --echo child3_2
+ --source connect_child3_2.inc
+ --connection child3_2
+ CALL mtr.add_suppression("unknown variable *");
+ SET SESSION sql_log_bin= 0;
+ --let $CHILD3_2_SERVER_ID=`SELECT @@global.server_id`
+ --let $TEST_ENGINE_TYPE= $CHILD3_2_ENGINE_TYPE
+ --source ../include/init_child3_2.inc
+ --source have_engine.inc
+ --echo child3_3
+ --source connect_child3_3.inc
+ --connection child3_3
+ CALL mtr.add_suppression("unknown variable *");
+ SET SESSION sql_log_bin= 0;
+ --let $CHILD3_3_SERVER_ID=`SELECT @@global.server_id`
+ --let $TEST_ENGINE_TYPE= $CHILD3_3_ENGINE_TYPE
+ --source ../include/init_child3_3.inc
+ --source have_engine.inc
+}
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/vp_fixes.cnf b/storage/spider/mysql-test/spider/odbc/mariadb/t/vp_fixes.cnf
new file mode 100644
index 00000000000..a5f020b06e6
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/vp_fixes.cnf
@@ -0,0 +1,7 @@
+!include include/default_mysqld.cnf
+!include ../my_1_1.cnf
+!include ../my_2_1.cnf
+!include ../my_2_2.cnf
+!include ../my_2_3.cnf
+[ENV]
+USE_CHILD_GROUP2= 1
diff --git a/storage/spider/mysql-test/spider/odbc/mariadb/t/vp_fixes.test b/storage/spider/mysql-test/spider/odbc/mariadb/t/vp_fixes.test
new file mode 100644
index 00000000000..8b6865fb170
--- /dev/null
+++ b/storage/spider/mysql-test/spider/odbc/mariadb/t/vp_fixes.test
@@ -0,0 +1,289 @@
+# This test tests for VP's bug fixes
+--disable_warnings
+--disable_query_log
+--disable_result_log
+--source test_init.inc
+--enable_result_log
+--enable_query_log
+
+--echo
+--echo drop and create databases
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_1_CREATE_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE_IFEXISTS;
+ eval $CHILD2_2_CREATE_DATABASE;
+}
+--enable_warnings
+
+--echo
+--echo test select 1
+--connection master_1
+SELECT 1;
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_DATEFORMAT;
+ eval $CHILD2_1_SELECT1;
+ eval $CHILD2_2_DATEFORMAT;
+ eval $CHILD2_2_SELECT1;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo create table and insert
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ echo CHILD2_1_DROP_TABLES;
+ echo CHILD2_1_CREATE_TABLES;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES;
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ }
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS tb_l;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE tb_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE2 MASTER_1_CHARSET2;
+eval CREATE TABLE tb_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) $MASTER_1_ENGINE2 $MASTER_1_CHARSET2;
+--enable_query_log
+INSERT INTO tb_l (a, b, c) VALUES
+ (1, 'a', '2008-08-01 10:21:39'),
+ (2, 'b', '2000-01-01 00:00:00'),
+ (3, 'e', '2007-06-04 20:03:11'),
+ (4, 'd', '2003-11-30 05:01:03'),
+ (5, 'c', '2001-12-31 23:59:59');
+--disable_warnings
+DROP TABLE IF EXISTS ta_l;
+--enable_warnings
+--disable_query_log
+echo CREATE TABLE ta_l (
+ PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1;
+eval CREATE TABLE ta_l (
+ a INT,
+ b CHAR(1),
+ c DATETIME,
+ PRIMARY KEY(a)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1;
+--enable_query_log
+INSERT INTO ta_l SELECT a, b, c FROM tb_l;
+
+--echo
+--echo 0.9
+--echo create different primary key table
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_result_log
+ }
+ --disable_query_log
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ echo CHILD2_1_DROP_TABLES5;
+ echo CHILD2_1_CREATE_TABLES5;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES5;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES5;
+ --enable_query_log
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_result_log
+ }
+}
+--connection master_1
+--disable_query_log
+echo CREATE TABLE ta_l_int (
+ a INT DEFAULT 10,
+ b INT AUTO_INCREMENT,
+ c INT DEFAULT 11,
+ PRIMARY KEY(b)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT4_2_1;
+eval CREATE TABLE ta_l_int (
+ a INT DEFAULT 10,
+ b INT AUTO_INCREMENT,
+ c INT DEFAULT 11,
+ PRIMARY KEY(b)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT4_2_1;
+--enable_query_log
+--connection master_1
+--let $MASTER_1_IS_VP= `SELECT IF('$MASTER_1_ENGINE_TYPE' = 'VP', 1, 0)`
+if ($MASTER_1_IS_VP)
+{
+ --error 14514
+ INSERT INTO ta_l_int (a, b, c) VALUES (2, NULL, 3);
+}
+if (!$MASTER_1_IS_VP)
+{
+ INSERT INTO ta_l_int (a, b, c) VALUES (2, NULL, 3);
+ --disable_query_log
+ --disable_result_log
+ TRUNCATE TABLE ta_l_int;
+ --enable_query_log
+ --enable_result_log
+}
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES5;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo create un-correspond primary key table
+--connection master_1
+--disable_warnings
+DROP TABLE IF EXISTS ta_l_int;
+--enable_warnings
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_result_log
+ }
+ --disable_query_log
+ if ($OUTPUT_CHILD_GROUP2)
+ {
+ echo CHILD2_1_DROP_TABLES5;
+ echo CHILD2_1_CREATE_TABLES5;
+ }
+ --disable_warnings
+ eval $CHILD2_1_DROP_TABLES5;
+ --enable_warnings
+ eval $CHILD2_1_CREATE_TABLES5;
+ --enable_query_log
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_result_log
+ }
+}
+--connection master_1
+--disable_query_log
+echo CREATE TABLE ta_l_int (
+ a INT DEFAULT 10,
+ b INT DEFAULT 12,
+ c INT DEFAULT 11,
+ PRIMARY KEY(c)
+) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT4_2_1;
+eval CREATE TABLE ta_l_int (
+ a INT DEFAULT 10,
+ b INT DEFAULT 12,
+ c INT DEFAULT 11,
+ PRIMARY KEY(c)
+) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT4_2_1;
+--enable_query_log
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+--connection master_1
+if ($MASTER_1_IS_VP)
+{
+ --error 14514
+ INSERT INTO ta_l_int (a, b, c) VALUES (2, NULL, 3);
+}
+if (!$MASTER_1_IS_VP)
+{
+ INSERT INTO ta_l_int (a, b, c) VALUES (2, NULL, 3);
+ --disable_query_log
+ --disable_result_log
+ TRUNCATE TABLE ta_l_int;
+ --enable_query_log
+ --enable_result_log
+}
+if ($USE_CHILD_GROUP2)
+{
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --disable_query_log
+ --disable_result_log
+ }
+ eval $CHILD2_1_SELECT_TABLES5;
+ if (!$OUTPUT_CHILD_GROUP2)
+ {
+ --enable_query_log
+ --enable_result_log
+ }
+}
+
+--echo
+--echo deinit
+--disable_warnings
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+ eval $CHILD2_1_DROP_DATABASE;
+ eval $CHILD2_2_DROP_DATABASE;
+}
+--disable_query_log
+--disable_result_log
+--source test_deinit.inc
+--enable_result_log
+--enable_query_log
+--enable_warnings
+--echo
+--echo end of test
diff --git a/storage/spider/mysql-test/spider/odbc/pg/include/ha_init_child3_1.inc b/storage/spider/mysql-test/spider/odbc/pg/include/ha_init_child3_1.inc
index ac724359545..e0a62cd339b 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/include/ha_init_child3_1.inc
+++ b/storage/spider/mysql-test/spider/odbc/pg/include/ha_init_child3_1.inc
@@ -4,13 +4,13 @@
eval INSERT INTO mysql.spider_link_mon_servers
(db_name, table_name, link_id, sid, server, scheme, host, port, socket,
username, password, ssl_ca, ssl_capath, ssl_cert, ssl_cipher, ssl_key,
- ssl_verify_server_cert, default_file, default_group) VALUES
+ ssl_verify_server_cert, default_file, default_group, dsn) VALUES
('%auto_test_local%', '%ta_l%', '%', $CHILD3_1_SERVER_ID, 's_3_1', NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL),
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL),
('%auto_test_local%', '%ta_l%', '%', $CHILD3_2_SERVER_ID, 's_3_2', NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL),
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL),
('%auto_test_local%', '%ta_l%', '%', $CHILD3_3_SERVER_ID, 's_3_3', NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL);
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL);
let $CHILD3_1_CHECK_LINK_STATUS=
SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
ORDER BY db_name, table_name, link_id;
@@ -18,16 +18,16 @@ let $CHILD3_1_CHECK_LINK_FAILED_LOG=
SELECT db_name, table_name, link_id FROM mysql.spider_link_failed_log;
let $CHILD3_1_SET_RECOVERY_STATUS_2_1=
ALTER TABLE ta_l
- CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "0 2"';
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", wrapper "odbc",
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "0 2"';
let $CHILD3_1_SET_OK_STATUS_2_1=
ALTER TABLE ta_l
- CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "0 1"';
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", wrapper "odbc",
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "0 1"';
let $CHILD3_1_SET_OK_STATUS_AS_2_1=
ALTER TABLE ta_l
- CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "1 0"';
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1", wrapper "odbc",
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "1 0"';
let $CHILD3_1_DROP_TABLES_HA_2_1=
DROP TABLE IF EXISTS ta_l;
@@ -41,8 +41,8 @@ if ($VERSION_COMPILE_OS_WIN)
PRIMARY KEY(a)
) $CHILD3_1_ENGINE $CHILD3_1_CHARSET
COMMENT='table "ta_r ta_r3"'
- CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", wrapper "odbc",
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
let $CHILD3_1_CREATE_TABLES_HA_AS_2_1=
CREATE TABLE ta_l (
a INT DEFAULT 10,
@@ -51,8 +51,8 @@ if ($VERSION_COMPILE_OS_WIN)
PRIMARY KEY(a)
) $CHILD3_1_ENGINE $CHILD3_1_CHARSET
COMMENT='table "ta_r ta_r3"'
- CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1", wrapper "odbc",
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
}
if (!$VERSION_COMPILE_OS_WIN)
{
@@ -64,8 +64,8 @@ if (!$VERSION_COMPILE_OS_WIN)
PRIMARY KEY(a)
) $CHILD3_1_ENGINE $CHILD3_1_CHARSET
COMMENT='table "ta_r ta_r3"'
- CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", wrapper "odbc",
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
let $CHILD3_1_CREATE_TABLES_HA_AS_2_1=
CREATE TABLE ta_l (
a INT DEFAULT 10,
@@ -74,8 +74,8 @@ if (!$VERSION_COMPILE_OS_WIN)
PRIMARY KEY(a)
) $CHILD3_1_ENGINE $CHILD3_1_CHARSET
COMMENT='table "ta_r ta_r3"'
- CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1", wrapper "odbc",
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
}
let $CHILD3_1_DROP_TABLES_HA_P_2_1=
DROP TABLE IF EXISTS ta_l2;
@@ -86,11 +86,11 @@ let $CHILD3_1_CREATE_TABLES_HA_P_2_1=
c DATETIME DEFAULT '1999-10-10 10:10:10',
PRIMARY KEY(a)
) $CHILD3_1_ENGINE $CHILD3_1_CHARSET
- COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2"'
+ COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2", wrapper "odbc"'
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001"'
);
let $CHILD3_1_CREATE_TABLES_HA_AS_P_2_1=
@@ -100,34 +100,34 @@ let $CHILD3_1_CREATE_TABLES_HA_AS_P_2_1=
c DATETIME DEFAULT '1999-10-10 10:10:10',
PRIMARY KEY(a)
) $CHILD3_1_ENGINE $CHILD3_1_CHARSET
- COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1"'
+ COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1", wrapper "odbc"'
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001"'
);
let $CHILD3_1_SET_RECOVERY_STATUS_P_2_1=
ALTER TABLE ta_l2
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001", lst "0 2"'
);
let $CHILD3_1_SET_OK_STATUS_P_2_1=
ALTER TABLE ta_l2
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001", lst "0 1"'
);
let $CHILD3_1_SET_OK_STATUS_AS_P_2_1=
ALTER TABLE ta_l2
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001", lst "1 0"'
);
diff --git a/storage/spider/mysql-test/spider/odbc/pg/include/ha_init_child3_2.inc b/storage/spider/mysql-test/spider/odbc/pg/include/ha_init_child3_2.inc
index fab6525e503..0c4d03577b0 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/include/ha_init_child3_2.inc
+++ b/storage/spider/mysql-test/spider/odbc/pg/include/ha_init_child3_2.inc
@@ -4,13 +4,13 @@
eval INSERT INTO mysql.spider_link_mon_servers
(db_name, table_name, link_id, sid, server, scheme, host, port, socket,
username, password, ssl_ca, ssl_capath, ssl_cert, ssl_cipher, ssl_key,
- ssl_verify_server_cert, default_file, default_group) VALUES
+ ssl_verify_server_cert, default_file, default_group, dsn) VALUES
('%auto_test_local%', '%ta_l%', '%', $CHILD3_1_SERVER_ID, 's_3_1', NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL),
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL),
('%auto_test_local%', '%ta_l%', '%', $CHILD3_2_SERVER_ID, 's_3_2', NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL),
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL),
('%auto_test_local%', '%ta_l%', '%', $CHILD3_3_SERVER_ID, 's_3_3', NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL);
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL);
let $CHILD3_2_CHECK_LINK_STATUS=
SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
ORDER BY db_name, table_name, link_id;
@@ -18,16 +18,16 @@ let $CHILD3_2_CHECK_LINK_FAILED_LOG=
SELECT db_name, table_name, link_id FROM mysql.spider_link_failed_log;
let $CHILD3_2_SET_RECOVERY_STATUS_2_1=
ALTER TABLE ta_l
- CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "0 2"';
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", wrapper "odbc",
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "0 2"';
let $CHILD3_2_SET_OK_STATUS_2_1=
ALTER TABLE ta_l
- CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "0 1"';
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", wrapper "odbc",
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "0 1"';
let $CHILD3_2_SET_OK_STATUS_AS_2_1=
ALTER TABLE ta_l
- CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "1 0"';
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1", wrapper "odbc",
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "1 0"';
let $CHILD3_2_DROP_TABLES_HA_2_1=
DROP TABLE IF EXISTS ta_l;
@@ -41,8 +41,8 @@ if ($VERSION_COMPILE_OS_WIN)
PRIMARY KEY(a)
) $CHILD3_2_ENGINE $CHILD3_2_CHARSET
COMMENT='table "ta_r ta_r3"'
- CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", wrapper "odbc",
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
let $CHILD3_2_CREATE_TABLES_HA_AS_2_1=
CREATE TABLE ta_l (
a INT DEFAULT 10,
@@ -51,8 +51,8 @@ if ($VERSION_COMPILE_OS_WIN)
PRIMARY KEY(a)
) $CHILD3_2_ENGINE $CHILD3_2_CHARSET
COMMENT='table "ta_r ta_r3"'
- CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1", wrapper "odbc",
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
}
if (!$VERSION_COMPILE_OS_WIN)
{
@@ -64,8 +64,8 @@ if (!$VERSION_COMPILE_OS_WIN)
PRIMARY KEY(a)
) $CHILD3_2_ENGINE $CHILD3_2_CHARSET
COMMENT='table "ta_r ta_r3"'
- CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", wrapper "odbc",
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
let $CHILD3_2_CREATE_TABLES_HA_AS_2_1=
CREATE TABLE ta_l (
a INT DEFAULT 10,
@@ -74,8 +74,8 @@ if (!$VERSION_COMPILE_OS_WIN)
PRIMARY KEY(a)
) $CHILD3_2_ENGINE $CHILD3_2_CHARSET
COMMENT='table "ta_r ta_r3"'
- CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
+ CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1", wrapper "odbc",
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
}
let $CHILD3_2_DROP_TABLES_HA_P_2_1=
DROP TABLE IF EXISTS ta_l2;
@@ -86,11 +86,11 @@ let $CHILD3_2_CREATE_TABLES_HA_P_2_1=
c DATETIME DEFAULT '1999-10-10 10:10:10',
PRIMARY KEY(a)
) $CHILD3_2_ENGINE $CHILD3_2_CHARSET
- COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2"'
+ COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2", wrapper "odbc"'
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001"'
);
let $CHILD3_2_CREATE_TABLES_HA_AS_P_2_1=
@@ -100,34 +100,34 @@ let $CHILD3_2_CREATE_TABLES_HA_AS_P_2_1=
c DATETIME DEFAULT '1999-10-10 10:10:10',
PRIMARY KEY(a)
) $CHILD3_2_ENGINE $CHILD3_2_CHARSET
- COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1"'
+ COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1", wrapper "odbc"'
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001"'
);
let $CHILD3_2_SET_RECOVERY_STATUS_P_2_1=
ALTER TABLE ta_l2
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001", lst "0 2"'
);
let $CHILD3_2_SET_OK_STATUS_P_2_1=
ALTER TABLE ta_l2
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001", lst "0 1"'
);
let $CHILD3_2_SET_OK_STATUS_AS_P_2_1=
ALTER TABLE ta_l2
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001", lst "1 0"'
);
diff --git a/storage/spider/mysql-test/spider/odbc/pg/include/ha_init_child3_3.inc b/storage/spider/mysql-test/spider/odbc/pg/include/ha_init_child3_3.inc
index 58bec867919..0492883873b 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/include/ha_init_child3_3.inc
+++ b/storage/spider/mysql-test/spider/odbc/pg/include/ha_init_child3_3.inc
@@ -4,13 +4,13 @@
eval INSERT INTO mysql.spider_link_mon_servers
(db_name, table_name, link_id, sid, server, scheme, host, port, socket,
username, password, ssl_ca, ssl_capath, ssl_cert, ssl_cipher, ssl_key,
- ssl_verify_server_cert, default_file, default_group) VALUES
+ ssl_verify_server_cert, default_file, default_group, dsn) VALUES
('%auto_test_local%', '%ta_l%', '%', $CHILD3_1_SERVER_ID, 's_3_1', NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL),
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL),
('%auto_test_local%', '%ta_l%', '%', $CHILD3_2_SERVER_ID, 's_3_2', NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL),
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL),
('%auto_test_local%', '%ta_l%', '%', $CHILD3_3_SERVER_ID, 's_3_3', NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL);
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL);
let $CHILD3_3_CHECK_LINK_STATUS=
SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
ORDER BY db_name, table_name, link_id;
@@ -19,15 +19,15 @@ let $CHILD3_3_CHECK_LINK_FAILED_LOG=
let $CHILD3_3_SET_RECOVERY_STATUS_2_1=
ALTER TABLE ta_l
CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "0 2"';
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "0 2"';
let $CHILD3_3_SET_OK_STATUS_2_1=
ALTER TABLE ta_l
CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "0 1"';
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "0 1"';
let $CHILD3_3_SET_OK_STATUS_AS_2_1=
ALTER TABLE ta_l
CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "1 0"';
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", lst "1 0"';
let $CHILD3_3_DROP_TABLES_HA_2_1=
DROP TABLE IF EXISTS ta_l;
@@ -40,9 +40,9 @@ if ($VERSION_COMPILE_OS_WIN)
c DATETIME DEFAULT '1999-10-10 10:10:10',
PRIMARY KEY(a)
) $CHILD3_3_ENGINE $CHILD3_3_CHARSET
- COMMENT='table "ta_r ta_r3"'
+ COMMENT='table "ta_r ta_r3", wrapper "odbc"'
CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
let $CHILD3_3_CREATE_TABLES_HA_AS_2_1=
CREATE TABLE ta_l (
a INT DEFAULT 10,
@@ -50,9 +50,9 @@ if ($VERSION_COMPILE_OS_WIN)
c DATETIME DEFAULT '1999-10-10 10:10:10',
PRIMARY KEY(a)
) $CHILD3_3_ENGINE $CHILD3_3_CHARSET
- COMMENT='table "ta_r ta_r3"'
+ COMMENT='table "ta_r ta_r3", wrapper "odbc"'
CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
}
if (!$VERSION_COMPILE_OS_WIN)
{
@@ -63,9 +63,9 @@ if (!$VERSION_COMPILE_OS_WIN)
c DATETIME DEFAULT '1999-10-10 10:10:10',
PRIMARY KEY(a)
) $CHILD3_3_ENGINE $CHILD3_3_CHARSET
- COMMENT='table "ta_r ta_r3"'
+ COMMENT='table "ta_r ta_r3", wrapper "odbc"'
CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
let $CHILD3_3_CREATE_TABLES_HA_AS_2_1=
CREATE TABLE ta_l (
a INT DEFAULT 10,
@@ -73,9 +73,9 @@ if (!$VERSION_COMPILE_OS_WIN)
c DATETIME DEFAULT '1999-10-10 10:10:10',
PRIMARY KEY(a)
) $CHILD3_3_ENGINE $CHILD3_3_CHARSET
- COMMENT='table "ta_r ta_r3"'
+ COMMENT='table "ta_r ta_r3", wrapper "odbc"'
CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1",
- socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
+ dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2"';
}
let $CHILD3_3_DROP_TABLES_HA_P_2_1=
DROP TABLE IF EXISTS ta_l2;
@@ -86,11 +86,11 @@ let $CHILD3_3_CREATE_TABLES_HA_P_2_1=
c DATETIME DEFAULT '1999-10-10 10:10:10',
PRIMARY KEY(a)
) $CHILD3_3_ENGINE $CHILD3_3_CHARSET
- COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2"'
+ COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2", wrapper "odbc"'
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001"'
);
let $CHILD3_3_CREATE_TABLES_HA_AS_P_2_1=
@@ -100,34 +100,34 @@ let $CHILD3_3_CREATE_TABLES_HA_AS_P_2_1=
c DATETIME DEFAULT '1999-10-10 10:10:10',
PRIMARY KEY(a)
) $CHILD3_3_ENGINE $CHILD3_3_CHARSET
- COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1"'
+ COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1", wrapper "odbc"'
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001"'
);
let $CHILD3_3_SET_RECOVERY_STATUS_P_2_1=
ALTER TABLE ta_l2
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001", lst "0 2"'
);
let $CHILD3_3_SET_OK_STATUS_P_2_1=
ALTER TABLE ta_l2
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001", lst "0 1"'
);
let $CHILD3_3_SET_OK_STATUS_AS_P_2_1=
ALTER TABLE ta_l2
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001", lst "1 0"'
);
diff --git a/storage/spider/mysql-test/spider/odbc/pg/include/ha_init_master_1.inc b/storage/spider/mysql-test/spider/odbc/pg/include/ha_init_master_1.inc
index b7d369e6d62..232775caabc 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/include/ha_init_master_1.inc
+++ b/storage/spider/mysql-test/spider/odbc/pg/include/ha_init_master_1.inc
@@ -1,13 +1,13 @@
eval INSERT INTO mysql.spider_link_mon_servers
(db_name, table_name, link_id, sid, server, scheme, host, port, socket,
username, password, ssl_ca, ssl_capath, ssl_cert, ssl_cipher, ssl_key,
- ssl_verify_server_cert, default_file, default_group) VALUES
+ ssl_verify_server_cert, default_file, default_group, dsn) VALUES
('%auto_test_local%', '%ta_l%', '%', $CHILD3_1_SERVER_ID, 's_3_1', NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL),
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL),
('%auto_test_local%', '%ta_l%', '%', $CHILD3_2_SERVER_ID, 's_3_2', NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL),
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL),
('%auto_test_local%', '%ta_l%', '%', $CHILD3_3_SERVER_ID, 's_3_3', NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL);
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL);
let $MASTER_1_CHECK_LINK_STATUS=
SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
ORDER BY db_name, table_name, link_id;
@@ -26,51 +26,51 @@ let $MASTER_1_COPY_TABLES_2_1=
SELECT spider_copy_tables('ta_l', '0', '1');
let $MASTER_1_COMMENT_HA_2_1=
- COMMENT='socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2", table "ta_r ta_r3",
+ COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", table "ta_r ta_r3",
wrapper "odbc"'
CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2"';
let $MASTER_1_COMMENT_HA_AS_2_1=
- COMMENT='socket "$ODBC_DSN_HA1 $ODBC_DSN_HA2", table "ta_r ta_r3",
+ COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", table "ta_r ta_r3",
wrapper "odbc"'
CONNECTION='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1"';
let $MASTER_1_COMMENT_HA_P_2_1=
- COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2"'
+ COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2", wrapper "odbc"'
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001"'
);
let $MASTER_1_COMMENT_HA_AS_P_2_1=
- COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1"'
+ COMMENT='msi "$CHILD3_1_SERVER_ID", mkd "2", alc "1", wrapper "odbc"'
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001"'
);
let $MASTER_1_SET_RECOVERY_STATUS_P_2_1=
ALTER TABLE ta_l2
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001", lst "0 2"'
);
let $MASTER_1_SET_OK_STATUS_P_2_1=
ALTER TABLE ta_l2
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001", lst "0 1"'
);
let $MASTER_1_SET_OK_STATUS_AS_P_2_1=
ALTER TABLE ta_l2
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", tbl "ta_r ta_r3",
priority "1000"',
- PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA3", tbl "ta_r2 ta_r4",
priority "1000001", lst "1 0"'
);
let $MASTER_1_COPY_TABLES_P_2_1=
diff --git a/storage/spider/mysql-test/spider/odbc/pg/include/hs_init_child2_1.inc b/storage/spider/mysql-test/spider/odbc/pg/include/hs_init_child2_1.inc
index 16ce81304cd..88948dd39ab 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/include/hs_init_child2_1.inc
+++ b/storage/spider/mysql-test/spider/odbc/pg/include/hs_init_child2_1.inc
@@ -1,5 +1,5 @@
let $CHILD2_1_HS_DROP_TABLES=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "hs_r"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "hs_r"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_HS_CREATE_TABLES=
SELECT spider_direct_sql('CREATE TABLE "hs_r" (
"a" INT DEFAULT 10,
@@ -7,11 +7,11 @@ let $CHILD2_1_HS_CREATE_TABLES=
"c" DATE DEFAULT TO_DATE(\'1999-10-10 10:10:10\', \'YYYY-MM-DD HH24:MI:SS\'),
"d" INT DEFAULT 11,
CONSTRAINT "pk_s_2_1_hs_r" PRIMARY KEY("a")
- )', '', 'srv "s_2_1"');
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_HS_SELECT_TABLES=
- SELECT spider_direct_sql('SELECT "a", "b", "c", "d" FROM "hs_r" ORDER BY "a"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c", "d" FROM "hs_r" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_HS_DROP_TABLES2=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "hs_r2"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "hs_r2"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_HS_CREATE_TABLES2=
SELECT spider_direct_sql('CREATE TABLE "hs_r2" (
"a" INT DEFAULT 10,
@@ -19,6 +19,6 @@ let $CHILD2_1_HS_CREATE_TABLES2=
"c" DATE DEFAULT TO_DATE(\'1999-10-10 10:10:10\', \'YYYY-MM-DD HH24:MI:SS\'),
"d" INT DEFAULT 11,
CONSTRAINT "pk_s_2_1_hs_r2" PRIMARY KEY("a")
- )', '', 'srv "s_2_1"');
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_HS_SELECT_TABLES2=
- SELECT spider_direct_sql('SELECT "a", "b", "c", "d" FROM "hs_r2" ORDER BY "a"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c", "d" FROM "hs_r2" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
diff --git a/storage/spider/mysql-test/spider/odbc/pg/include/hs_init_child2_2.inc b/storage/spider/mysql-test/spider/odbc/pg/include/hs_init_child2_2.inc
index 6f5ac6e5dae..e949094ca75 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/include/hs_init_child2_2.inc
+++ b/storage/spider/mysql-test/spider/odbc/pg/include/hs_init_child2_2.inc
@@ -1,5 +1,5 @@
let $CHILD2_2_HS_DROP_TABLES=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "hs_r3"', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "hs_r3"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_HS_CREATE_TABLES=
SELECT spider_direct_sql('CREATE TABLE "hs_r3" (
"a" INT DEFAULT 10,
@@ -7,6 +7,6 @@ let $CHILD2_2_HS_CREATE_TABLES=
"c" DATE DEFAULT TO_DATE(\'1999-10-10 10:10:10\', \'YYYY-MM-DD HH24:MI:SS\'),
"d" INT DEFAULT 11,
CONSTRAINT "pk_s_2_2_hs_r3" PRIMARY KEY("a")
- )', '', 'srv "s_2_2"');
+ )', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_HS_SELECT_TABLES=
- SELECT spider_direct_sql('SELECT "a", "b", "c", "d" FROM "hs_r3" ORDER BY "a"', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c", "d" FROM "hs_r3" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
diff --git a/storage/spider/mysql-test/spider/odbc/pg/include/hs_init_master_1.inc b/storage/spider/mysql-test/spider/odbc/pg/include/hs_init_master_1.inc
index 0ff5e2a10d9..a304ff96050 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/include/hs_init_master_1.inc
+++ b/storage/spider/mysql-test/spider/odbc/pg/include/hs_init_master_1.inc
@@ -1,12 +1,12 @@
let $MASTER_1_HS_COMMENT_TMP=
COMMENT='';
let $MASTER_1_HS_COMMENT_2_1=
- COMMENT='srv "s_2_1", table "hs_r", uhr "1", uhw "1", hrp "$CHILD2_1_HSRPORT", hwp "$CHILD2_1_HSWPORT"';
+ COMMENT='dsn "$ODBC_DSN_HA1", wrapper "odbc", table "hs_r", uhr "1", uhw "1", hrp "$CHILD2_1_HSRPORT", hwp "$CHILD2_1_HSWPORT"';
let $MASTER_1_HS_COMMENT_P_2_1=
COMMENT='uhr "1", uhw "1"'
PARTITION BY RANGE(a) (
PARTITION pt1 VALUES LESS THAN (4)
- COMMENT='srv "s_2_1", table "hs_r2", hrp "$CHILD2_1_HSRPORT", hwp "$CHILD2_1_HSWPORT"',
+ COMMENT='dsn "$ODBC_DSN_HA1", wrapper "odbc", table "hs_r2", hrp "$CHILD2_1_HSRPORT", hwp "$CHILD2_1_HSWPORT"',
PARTITION pt2 VALUES LESS THAN MAXVALUE
- COMMENT='srv "s_2_2", table "hs_r3", hrp "$CHILD2_2_HSRPORT", hwp "$CHILD2_2_HSWPORT"'
+ COMMENT='dsn "$ODBC_DSN_HA2", wrapper "odbc", table "hs_r3", hrp "$CHILD2_2_HSRPORT", hwp "$CHILD2_2_HSWPORT"'
);
diff --git a/storage/spider/mysql-test/spider/odbc/pg/include/init_child2_1.inc b/storage/spider/mysql-test/spider/odbc/pg/include/init_child2_1.inc
index dbff0c73057..f656665d96e 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/include/init_child2_1.inc
+++ b/storage/spider/mysql-test/spider/odbc/pg/include/init_child2_1.inc
@@ -1,5 +1,5 @@
let $CHILD2_1_DATEFORMAT=
- SELECT spider_direct_sql('set datestyle=\'ISO, YMD\'', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('set datestyle=\'ISO, YMD\'', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_DROP_DATABASE=
SELECT 1;
let $CHILD2_1_DROP_DATABASE_IFEXISTS=
@@ -7,80 +7,80 @@ let $CHILD2_1_DROP_DATABASE_IFEXISTS=
let $CHILD2_1_CREATE_DATABASE=
SELECT 1;
let $CHILD2_1_SELECT1=
- SELECT spider_direct_sql('SELECT 1', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('SELECT 1', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_DROP_TABLES=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "ta_r"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "ta_r"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_CREATE_TABLES=
SELECT spider_direct_sql('CREATE TABLE "ta_r" (
"a" INT DEFAULT 10,
"b" CHAR(1) DEFAULT \'c\',
"c" DATE DEFAULT TO_DATE(\'1999-10-10 10:10:10\', \'YYYY-MM-DD HH24:MI:SS\'),
CONSTRAINT "pk_s_2_1_ta_r" PRIMARY KEY("a")
- )', '', 'srv "s_2_1"')
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE INDEX "idx1" ON "ta_r"("b")', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('CREATE INDEX "idx1" ON "ta_r"("b")', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_SELECT_TABLES=
- SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "ta_r" ORDER BY "a"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "ta_r" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_DROP_TABLES2=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "ta_r2"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "ta_r2"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_CREATE_TABLES2=
SELECT spider_direct_sql('CREATE TABLE "ta_r2" (
"a" INT DEFAULT 10,
"b" CHAR(1) DEFAULT \'c\',
"c" DATE DEFAULT TO_DATE(\'1999-10-10 10:10:10\', \'YYYY-MM-DD HH24:MI:SS\'),
CONSTRAINT "pk_s_2_1_ta_r2" PRIMARY KEY("a")
- )', '', 'srv "s_2_1"');
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_SELECT_TABLES2=
- SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "ta_r2" ORDER BY "a"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "ta_r2" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_DROP_TABLES3=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "ta_r_no_idx"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "ta_r_no_idx"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_CREATE_TABLES3=
SELECT spider_direct_sql('CREATE TABLE "ta_r_no_idx" (
"a" INT DEFAULT 10,
"b" CHAR(1) DEFAULT \'c\',
"c" DATE DEFAULT TO_DATE(\'1999-10-10 10:10:10\', \'YYYY-MM-DD HH24:MI:SS\')
- )', '', 'srv "s_2_1"');
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_SELECT_TABLES3=
- SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "ta_r_no_idx" ORDER BY "a"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "ta_r_no_idx" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_DROP_TABLES4=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "ta_r_auto_inc"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "ta_r_auto_inc"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_CREATE_TABLES4=
SELECT spider_direct_sql('CREATE TABLE "ta_r_auto_inc" (
"a" INT DEFAULT 10,
"b" CHAR(1) DEFAULT \'c\',
"c" DATE DEFAULT TO_DATE(\'1999-10-10 10:10:10\', \'YYYY-MM-DD HH24:MI:SS\'),
CONSTRAINT "pk_s_2_1_ta_r_auto_inc" PRIMARY KEY("a")
- )', '', 'srv "s_2_1"');
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_SELECT_TABLES4=
SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "ta_r_auto_inc"
- ORDER BY "a"', '', 'srv "s_2_1"');
+ ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_DROP_TABLES5=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "s_2_1_ta_r_int"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "s_2_1_ta_r_int"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_CREATE_TABLES5=
SELECT spider_direct_sql('CREATE TABLE "s_2_1_ta_r_int" (
"a" INT DEFAULT 3,
"b" INT DEFAULT 10,
"c" INT DEFAULT 11,
CONSTRAINT "pk_s_2_1_ta_r_int" PRIMARY KEY("a")
- )', '', 'srv "s_2_1"')
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE INDEX "idx1_s_2_1_ta_r_int" ON "s_2_1_ta_r_int"("b")', '', 'srv "s_2_1"')
+ SELECT spider_direct_sql('CREATE INDEX "idx1_s_2_1_ta_r_int" ON "s_2_1_ta_r_int"("b")', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE INDEX "idx2_s_2_1_ta_r_int" ON "s_2_1_ta_r_int"("c")', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('CREATE INDEX "idx2_s_2_1_ta_r_int" ON "s_2_1_ta_r_int"("c")', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_SELECT_TABLES5=
- SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "s_2_1_ta_r_int" ORDER BY "a"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "s_2_1_ta_r_int" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_DROP_TABLES6=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "ta_r_3"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "ta_r_3"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_CREATE_TABLES6=
SELECT spider_direct_sql('CREATE TABLE "ta_r_3" (
"a" INT DEFAULT 10,
"b" CHAR(1) DEFAULT \'c\',
"c" DATE DEFAULT TO_DATE(\'1999-10-10 10:10:10\', \'YYYY-MM-DD HH24:MI:SS\')
- )', '', 'srv "s_2_1"');
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_SELECT_TABLES6=
- SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "ta_r_3" ORDER BY "a"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "ta_r_3" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_DROP_FT_TABLES=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "ft_r"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "ft_r"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_CREATE_FT_TABLES=
SELECT spider_direct_sql('CREATE TABLE "ft_r" (
"a" INT DEFAULT 0,
@@ -90,11 +90,11 @@ let $CHILD2_1_CREATE_FT_TABLES=
CONSTRAINT "pk_s_2_1_ft_r" PRIMARY KEY("a"),
FULLTEXT INDEX "ft_idx1"("b"),
FULLTEXT INDEX "ft_idx2"("c")
- )', '', 'srv "s_2_1"');
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_SELECT_FT_TABLES=
- SELECT spider_direct_sql('SELECT "a", "b", "c", "d" FROM "ft_r" ORDER BY "a"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c", "d" FROM "ft_r" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_DROP_FT_TABLES2=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "ft_r2"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "ft_r2"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_CREATE_FT_TABLES2=
SELECT spider_direct_sql('CREATE TABLE "ft_r2" (
"a" INT DEFAULT 0,
@@ -104,11 +104,11 @@ let $CHILD2_1_CREATE_FT_TABLES2=
CONSTRAINT "pk_s_2_1_ft_r2" PRIMARY KEY("a"),
FULLTEXT INDEX "ft_idx1"("b"),
FULLTEXT INDEX "ft_idx2"("c")
- )', '', 'srv "s_2_1"');
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_SELECT_FT_TABLES2=
- SELECT spider_direct_sql('SELECT "a", "b", "c", "d" FROM "ft_r2" ORDER BY "a"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c", "d" FROM "ft_r2" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_DROP_GM_TABLES=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "gm_r"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "gm_r"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_CREATE_GM_TABLES=
SELECT spider_direct_sql('CREATE TABLE "gm_r" (
"a" INT DEFAULT 0,
@@ -117,11 +117,11 @@ let $CHILD2_1_CREATE_GM_TABLES=
CONSTRAINT "pk_s_2_1_gm_r" PRIMARY KEY("a"),
SPATIAL INDEX "sp_idx1"("b"),
SPATIAL INDEX "sp_idx2"("c")
- )', '', 'srv "s_2_1"');
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_SELECT_GM_TABLES=
- SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "gm_r" ORDER BY "a"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "gm_r" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_DROP_GM_TABLES2=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "gm_r2"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "gm_r2"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_CREATE_GM_TABLES2=
SELECT spider_direct_sql('CREATE TABLE "gm_r2" (
"a" INT DEFAULT 0,
@@ -130,69 +130,69 @@ let $CHILD2_1_CREATE_GM_TABLES2=
CONSTRAINT "pk_s_2_1_gm_r2" PRIMARY KEY("a"),
SPATIAL INDEX "sp_idx1"("b"),
SPATIAL INDEX "sp_idx2"("c")
- )', '', 'srv "s_2_1"');
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_SELECT_GM_TABLES2=
- SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "gm_r2" ORDER BY "a"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "gm_r2" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_DROP_LOCK_TABLES1=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "t1_1"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "t1_1"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_CREATE_LOCK_TABLES1=
SELECT spider_direct_sql('CREATE TABLE "t1_1" (
"id" INT NOT NULL,
CONSTRAINT "pk_s_2_1_t1_1" PRIMARY KEY ("id")
- )', '', 'srv "s_2_1"');
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_DROP_LOCK_TABLES2=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "t2_2"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "t2_2"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_CREATE_LOCK_TABLES2=
SELECT spider_direct_sql('CREATE TABLE "t2_2" (
"id" INT NOT NULL,
CONSTRAINT "pk_s_2_1_t2_2" PRIMARY KEY ("id")
- )', '', 'srv "s_2_1"');
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_DROP_INCREMENT_TABLES1=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "t1_1"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "t1_1"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_CREATE_INCREMENT_TABLES1=
SELECT spider_direct_sql('CREATE TABLE "t1_1" (
"id" INT NOT NULL,
CONSTRAINT "pk_s_2_1_t1_1" PRIMARY KEY ("id")
- )', '', 'srv "s_2_1"');
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_SELECT_INCREMENT_TABLES1=
- SELECT spider_direct_sql('SELECT "id" FROM "t1_1" ORDER BY "id"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('SELECT "id" FROM "t1_1" ORDER BY "id"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_DROP_TEXT_PK_TABLES1=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "t1"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "t1"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_CREATE_TEXT_PK_TABLES1=
SELECT spider_direct_sql('CREATE TABLE "t1" (
"a" VARCHAR(255),
CONSTRAINT "pk_s_2_1_t1" PRIMARY KEY ("a")
- )', '', 'srv "s_2_1"');
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_SELECT_TEXT_PK_TABLES1=
- SELECT spider_direct_sql('SELECT "a" FROM "t1" ORDER BY "a"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('SELECT "a" FROM "t1" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_DROP_TEXT_KEY_TABLES1=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "t1"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "t1"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_CREATE_TEXT_KEY_TABLES1=
SELECT spider_direct_sql('CREATE TABLE "t1" (
"a" VARCHAR(255),
"b" VARCHAR(255),
"c" VARCHAR(255),
CONSTRAINT "pk_s_2_1_t1" PRIMARY KEY ("c")
- )', '', 'srv "s_2_1"')
+ )', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE INDEX "idx1_t1" ON "t1"("a","b")', '', 'srv "s_2_1"')
+ SELECT spider_direct_sql('CREATE INDEX "idx1_t1" ON "t1"("a","b")', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE INDEX "idx2_t1" ON "t1"("b")', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('CREATE INDEX "idx2_t1" ON "t1"("b")', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_SELECT_TEXT_KEY_TABLES1=
- SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "t1" ORDER BY "c"', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "t1" ORDER BY "c"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_AUTO_INCREMENT_INCREMENT1=
- SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'srv "s_2_1"')
+ SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 1 INCREMENT BY 1', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 1 INCREMENT BY 1', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_AUTO_INCREMENT_INCREMENT2=
- SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'srv "s_2_1"')
+ SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_AUTO_INCREMENT_OFFSET1=
- SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'srv "s_2_1"')
+ SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 1 INCREMENT BY 1', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 1 INCREMENT BY 1', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
let $CHILD2_1_AUTO_INCREMENT_OFFSET2=
- SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'srv "s_2_1"')
+ SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'srv "s_2_1"');
+ SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"');
diff --git a/storage/spider/mysql-test/spider/odbc/pg/include/init_child2_2.inc b/storage/spider/mysql-test/spider/odbc/pg/include/init_child2_2.inc
index 574cd18d38e..186e8a90ebb 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/include/init_child2_2.inc
+++ b/storage/spider/mysql-test/spider/odbc/pg/include/init_child2_2.inc
@@ -1,5 +1,5 @@
let $CHILD2_2_DATEFORMAT=
- SELECT spider_direct_sql('set datestyle=\'ISO, YMD\'', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('set datestyle=\'ISO, YMD\'', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_DROP_DATABASE=
SELECT 1;
let $CHILD2_2_DROP_DATABASE_IFEXISTS=
@@ -7,33 +7,33 @@ let $CHILD2_2_DROP_DATABASE_IFEXISTS=
let $CHILD2_2_CREATE_DATABASE=
SELECT 1;
let $CHILD2_2_SELECT1=
- SELECT spider_direct_sql('SELECT 1', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('SELECT 1', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_DROP_TABLES=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "ta_r3"', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "ta_r3"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_CREATE_TABLES=
SELECT spider_direct_sql('CREATE TABLE "ta_r3" (
"a" INT DEFAULT 10,
"b" CHAR(1) DEFAULT \'c\',
"c" DATE DEFAULT TO_DATE(\'1999-10-10 10:10:10\', \'YYYY-MM-DD HH24:MI:SS\'),
CONSTRAINT "pk_s_2_2_ta_r3" PRIMARY KEY("a")
- )', '', 'srv "s_2_2"');
+ )', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_DROP_TABLES5=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "s_2_2_ta_r_int"', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "s_2_2_ta_r_int"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_CREATE_TABLES5=
SELECT spider_direct_sql('CREATE TABLE "s_2_2_ta_r_int" (
"a" INT DEFAULT 3,
"b" INT DEFAULT 10,
"c" INT DEFAULT 11,
CONSTRAINT "pk_s_2_2_ta_r_int" PRIMARY KEY("a")
- )', '', 'srv "s_2_2"')
+ )', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE INDEX "idx1_s_2_2_ta_r_int" ON "s_2_2_ta_r_int"("b")', '', 'srv "s_2_2"')
+ SELECT spider_direct_sql('CREATE INDEX "idx1_s_2_2_ta_r_int" ON "s_2_2_ta_r_int"("b")', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE INDEX "idx2_s_2_2_ta_r_int" ON "s_2_2_ta_r_int"("c")', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('CREATE INDEX "idx2_s_2_2_ta_r_int" ON "s_2_2_ta_r_int"("c")', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_SELECT_TABLES=
- SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "ta_r3" ORDER BY "a"', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "ta_r3" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_DROP_FT_TABLES=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "ft_r3"', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "ft_r3"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_CREATE_FT_TABLES=
SELECT spider_direct_sql('CREATE TABLE "ft_r3" (
"a" INT DEFAULT 0,
@@ -43,11 +43,11 @@ let $CHILD2_2_CREATE_FT_TABLES=
CONSTRAINT "pk_s_2_2_ft_r3" PRIMARY KEY("a"),
FULLTEXT INDEX "ft_idx1"("b"),
FULLTEXT INDEX "ft_idx2"("c")
- )', '', 'srv "s_2_2"');
+ )', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_SELECT_FT_TABLES=
- SELECT spider_direct_sql('SELECT "a", "b", "c", "d" FROM "ft_r3" ORDER BY "a"', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c", "d" FROM "ft_r3" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_DROP_GM_TABLES=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "gm_r3"', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "gm_r3"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_CREATE_GM_TABLES=
SELECT spider_direct_sql('CREATE TABLE "gm_r3" (
"a" INT DEFAULT 0,
@@ -56,45 +56,45 @@ let $CHILD2_2_CREATE_GM_TABLES=
CONSTRAINT "pk_s_2_2_gm_r3" PRIMARY KEY("a"),
SPATIAL INDEX "sp_idx1"("b"),
SPATIAL INDEX "sp_idx2"("c")
- )', '', 'srv "s_2_2"');
+ )', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_SELECT_GM_TABLES=
- SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "gm_r3" ORDER BY "a"', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "gm_r3" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_DROP_LOCK_TABLES1=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "t1_2"', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "t1_2"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_CREATE_LOCK_TABLES1=
SELECT spider_direct_sql('CREATE TABLE "t1_2" (
"id" INT NOT NULL,
CONSTRAINT "pk_s_2_2_t1_2" PRIMARY KEY ("id")
- )', '', 'srv "s_2_2"');
+ )', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_DROP_LOCK_TABLES2=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "t2_1"', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "t2_1"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_CREATE_LOCK_TABLES2=
SELECT spider_direct_sql('CREATE TABLE "t2_1" (
"id" INT NOT NULL,
CONSTRAINT "pk_s_2_2_t2_1" PRIMARY KEY ("id")
- )', '', 'srv "s_2_2"');
+ )', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_DROP_INCREMENT_TABLES1=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "t1_2"', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "t1_2"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_CREATE_INCREMENT_TABLES1=
SELECT spider_direct_sql('CREATE TABLE "t1_2" (
"id" INT NOT NULL,
CONSTRAINT "pk_s_2_2_t1_2" PRIMARY KEY ("id")
- )', '', 'srv "s_2_2"');
+ )', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_SELECT_INCREMENT_TABLES1=
- SELECT spider_direct_sql('SELECT "id" FROM "t1_2" ORDER BY "id"', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('SELECT "id" FROM "t1_2" ORDER BY "id"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_AUTO_INCREMENT_INCREMENT1=
- SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'srv "s_2_2"')
+ SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 1 INCREMENT BY 1', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 1 INCREMENT BY 1', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_AUTO_INCREMENT_INCREMENT2=
- SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'srv "s_2_2"')
+ SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_AUTO_INCREMENT_OFFSET1=
- SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'srv "s_2_2"')
+ SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 1 INCREMENT BY 1', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 1 INCREMENT BY 1', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $CHILD2_2_AUTO_INCREMENT_OFFSET2=
- SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'srv "s_2_2"')
+ SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
diff --git a/storage/spider/mysql-test/spider/odbc/pg/include/init_child2_3.inc b/storage/spider/mysql-test/spider/odbc/pg/include/init_child2_3.inc
index 6ad6b20ac45..70eb4e7fa29 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/include/init_child2_3.inc
+++ b/storage/spider/mysql-test/spider/odbc/pg/include/init_child2_3.inc
@@ -1,5 +1,5 @@
let $CHILD2_3_DATEFORMAT=
- SELECT spider_direct_sql('set datestyle=\'ISO, YMD\'', '', 'srv "s_2_3"');
+ SELECT spider_direct_sql('set datestyle=\'ISO, YMD\'', '', 'dsn "$ODBC_DSN_HA3", wrapper "odbc"');
let $CHILD2_3_DROP_DATABASE=
SELECT 1;
let $CHILD2_3_DROP_DATABASE_IFEXISTS=
@@ -7,15 +7,15 @@ let $CHILD2_3_DROP_DATABASE_IFEXISTS=
let $CHILD2_3_CREATE_DATABASE=
SELECT 1;
let $CHILD2_3_SELECT1=
- SELECT spider_direct_sql('SELECT 1', '', 'srv "s_2_3"');
+ SELECT spider_direct_sql('SELECT 1', '', 'dsn "$ODBC_DSN_HA3", wrapper "odbc"');
let $CHILD2_3_DROP_TABLES=
- SELECT spider_direct_sql('DROP TABLE IF EXISTS "ta_r4"', '', 'srv "s_2_3"');
+ SELECT spider_direct_sql('DROP TABLE IF EXISTS "ta_r4"', '', 'dsn "$ODBC_DSN_HA3", wrapper "odbc"');
let $CHILD2_3_CREATE_TABLES=
SELECT spider_direct_sql('CREATE TABLE "ta_r4" (
"a" INT DEFAULT 10,
"b" CHAR(1) DEFAULT \'c\',
"c" DATE DEFAULT TO_DATE(\'1999-10-10 10:10:10\', \'YYYY-MM-DD HH24:MI:SS\'),
CONSTRAINT "pk_s_2_3_ta_r4" PRIMARY KEY("a")
- )', '', 'srv "s_2_3"');
+ )', '', 'dsn "$ODBC_DSN_HA3", wrapper "odbc"');
let $CHILD2_3_SELECT_TABLES=
- SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "ta_r4" ORDER BY "a"', '', 'srv "s_2_3"');
+ SELECT spider_direct_sql('SELECT "a", "b", "c" FROM "ta_r4" ORDER BY "a"', '', 'dsn "$ODBC_DSN_HA3", wrapper "odbc"');
diff --git a/storage/spider/mysql-test/spider/odbc/pg/include/init_master_1.inc b/storage/spider/mysql-test/spider/odbc/pg/include/init_master_1.inc
index 295c5be52dd..84a2f70c96f 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/include/init_master_1.inc
+++ b/storage/spider/mysql-test/spider/odbc/pg/include/init_master_1.inc
@@ -3,95 +3,95 @@ SET spider_direct_order_limit= 10000;
SET spider_init_sql_alloc_size= 1;
SET spider_conn_recycle_mode= 0;
let $MASTER_1_COMMENT_2_1=
- COMMENT='socket "$ODBC_DSN_HA1", table "ta_r", wrapper "odbc",
+ COMMENT='dsn "$ODBC_DSN_HA1", table "ta_r", wrapper "odbc",
pk_name "pk_s_2_1_ta_r"';
let $MASTER_1_COMMENT2_2_1=
- COMMENT='socket "$ODBC_DSN_HA1", table "ta_r_no_idx", wrapper "odbc",
+ COMMENT='dsn "$ODBC_DSN_HA1", table "ta_r_no_idx", wrapper "odbc",
pk_name "pk_s_2_1_ta_r_no_idx"'
CONNECTION='prt "2000000"';
let $MASTER_1_COMMENT_P_2_1=
- COMMENT='table "ta_r3"'
+ COMMENT='table "ta_r3", wrapper "odbc"'
PARTITION BY KEY(a) (
- PARTITION pt1 COMMENT='srv "s_2_1", table "ta_r2",
+ PARTITION pt1 COMMENT='dsn "$ODBC_DSN_HA1", table "ta_r2",
priority "1000", pk_name "pk_s_2_1_ta_r2"',
- PARTITION pt2 COMMENT='srv "s_2_2", priority "1000001",
+ PARTITION pt2 COMMENT='dsn "$ODBC_DSN_HA2", priority "1000001",
pk_name "pk_s_2_2_ta_r3"'
);
let $MASTER_1_COMMENT2_P_2_1=
- COMMENT='table "ta_r3"'
+ COMMENT='table "ta_r3", wrapper "odbc"'
PARTITION BY RANGE(a) (
- PARTITION pt1 VALUES LESS THAN (4) COMMENT='srv "s_2_1",
+ PARTITION pt1 VALUES LESS THAN (4) COMMENT='dsn "$ODBC_DSN_HA1",
table "ta_r2", priority "1000", pk_name "pk_s_2_1_ta_r2"',
PARTITION pt2 VALUES LESS THAN MAXVALUE
- COMMENT='srv "s_2_2", priority "1000001", pk_name "pk_s_2_2_ta_r3"'
+ COMMENT='dsn "$ODBC_DSN_HA2", priority "1000001", pk_name "pk_s_2_2_ta_r3"'
);
let $MASTER_1_COMMENT3_2_1=
- COMMENT='socket "$ODBC_DSN_HA1", table "ta_r_auto_inc",
+ COMMENT='dsn "$ODBC_DSN_HA1", table "ta_r_auto_inc",
wrapper "odbc"'
CONNECTION='pk_name "pk_s_2_1_ta_r_auto_inc"';
let $MASTER_1_COMMENT3_P_2_1=
- COMMENT='table "s_2_1_ta_r_int"'
+ COMMENT='table "s_2_1_ta_r_int", wrapper "odbc"'
PARTITION BY LIST(MOD(a, 2)) (
PARTITION pt1 VALUES IN (0)
- COMMENT='srv "s_2_1", priority "1000", pk_name "pk_s_2_1_ta_r_int"',
+ COMMENT='dsn "$ODBC_DSN_HA1", priority "1000", pk_name "pk_s_2_1_ta_r_int"',
PARTITION pt2 VALUES IN (1)
- COMMENT='srv "s_2_2", priority "1000001", pk_name "pk_s_2_2_ta_r_int",
+ COMMENT='dsn "$ODBC_DSN_HA2", priority "1000001", pk_name "pk_s_2_2_ta_r_int",
table "s_2_2_ta_r_int"'
);
let $MASTER_1_COMMENT4_2_1=
- COMMENT='socket "$ODBC_DSN_HA1", table "s_2_1_ta_r_int",
+ COMMENT='dsn "$ODBC_DSN_HA1", table "s_2_1_ta_r_int",
wrapper "odbc"'
CONNECTION='pk_name "pk_s_2_1_ta_r_int"';
let $MASTER_1_COMMENT5_2_1=
- COMMENT='socket "$ODBC_DSN_HA1", table "ta_r_3", wrapper "odbc"'
+ COMMENT='dsn "$ODBC_DSN_HA1", table "ta_r_3", wrapper "odbc"'
CONNECTION='pk_name "pk_s_2_1_ta_r_3"';
let $MASTER_1_COMMENT_FT_2_1=
- COMMENT='socket "$ODBC_DSN_HA1", table "ft_r", wrapper "odbc"'
+ COMMENT='dsn "$ODBC_DSN_HA1", table "ft_r", wrapper "odbc"'
CONNECTION='pk_name "pk_s_2_1_ft_r"';
let $MASTER_1_COMMENT2_FT_P_2_1=
- COMMENT='table "ft_r3"'
+ COMMENT='table "ft_r3", wrapper "odbc"'
PARTITION BY RANGE(a) (
- PARTITION pt1 VALUES LESS THAN (4) COMMENT='srv "s_2_1",
+ PARTITION pt1 VALUES LESS THAN (4) COMMENT='dsn "$ODBC_DSN_HA1",
table "ft_r2", priority "1000", pk_name "pk_s_2_1_ft_r2"',
PARTITION pt2 VALUES LESS THAN MAXVALUE
- COMMENT='srv "s_2_2", priority "1000001", pk_name "pk_s_2_2_ft_r3"'
+ COMMENT='dsn "$ODBC_DSN_HA2", priority "1000001", pk_name "pk_s_2_2_ft_r3"'
);
let $MASTER_1_COMMENT_GM_2_1=
- COMMENT='srv "s_2_1", table "gm_r", pk_name "pk_s_2_1_gm_r"';
+ COMMENT='dsn "$ODBC_DSN_HA1", wrapper "odbc", table "gm_r", pk_name "pk_s_2_1_gm_r"';
let $MASTER_1_COMMENT2_GM_P_2_1=
- COMMENT='table "gm_r3"'
+ COMMENT='table "gm_r3", wrapper "odbc"'
PARTITION BY RANGE(a) (
- PARTITION pt1 VALUES LESS THAN (4) COMMENT='srv "s_2_1",
+ PARTITION pt1 VALUES LESS THAN (4) COMMENT='dsn "$ODBC_DSN_HA1",
table "gm_r2", priority "1000", pk_name "pk_s_2_1_gm_r2"',
PARTITION pt2 VALUES LESS THAN MAXVALUE
- COMMENT='srv "s_2_2", priority "1000001", pk_name "pk_s_2_2_gm_r3"'
+ COMMENT='dsn "$ODBC_DSN_HA2", priority "1000001", pk_name "pk_s_2_2_gm_r3"'
);
let $MASTER_1_COMMENT_LOCK1=
- COMMENT 'tbl "t1_1 t1_2", srv "s_2_1 s_2_2",
+ COMMENT 'tbl "t1_1 t1_2", dsn "$ODBC_DSN_HA1 $ODBC_DSN_HA2", wrapper "odbc",
pk_name "pk_s_2_1_t1_1 pk_s_2_2_t1_2"';
let $MASTER_1_COMMENT_LOCK2=
- COMMENT 'tbl "t2_1 t2_2", srv "s_2_2 s_2_1",
+ COMMENT 'tbl "t2_1 t2_2", dsn "$ODBC_DSN_HA2 $ODBC_DSN_HA1", wrapper "odbc",
pk_name "pk_s_2_2_t2_1 pk_s_2_1_t2_2"';
let $MASTER_1_COMMENT_INCREMENT1_1=
- COMMENT 'aim "0", tbl "t1_1", srv "s_2_1", pk_name "pk_s_2_1_t1_1"';
+ COMMENT 'aim "0", tbl "t1_1", dsn "$ODBC_DSN_HA1", wrapper "odbc", pk_name "pk_s_2_1_t1_1"';
let $MASTER_1_COMMENT_INCREMENT1_P_1=
- COMMENT 'aim "0"'
+ COMMENT 'aim "0", wrapper "odbc"'
PARTITION BY LIST(MOD(id, 2)) (
PARTITION pt1 VALUES IN (0)
- COMMENT='tbl "t1_1", srv "s_2_1", pk_name "pk_s_2_1_t1_1"',
+ COMMENT='tbl "t1_1", dsn "$ODBC_DSN_HA1", pk_name "pk_s_2_1_t1_1"',
PARTITION pt2 VALUES IN (1)
- COMMENT='tbl "t1_2", srv "s_2_2", pk_name "pk_s_2_2_t1_2"'
+ COMMENT='tbl "t1_2", dsn "$ODBC_DSN_HA2", pk_name "pk_s_2_2_t1_2"'
);
let $MASTER_1_COMMENT_READONLY1_1=
- COMMENT 'read_only_mode "1", tbl "t1_1", srv "s_2_1",
+ COMMENT 'read_only_mode "1", tbl "t1_1", dsn "$ODBC_DSN_HA1", wrapper "odbc",
pk_name "pk_s_2_1_t1_1"';
let $MASTER_1_COMMENT_ERROR_MODE1_1=
- COMMENT 'erm "1", ewm "1", tbl "ter1_1", srv "s_2_1",
+ COMMENT 'erm "1", ewm "1", tbl "ter1_1", dsn "$ODBC_DSN_HA1", wrapper "odbc",
pk_name "pk_s_2_1_ter1_1"';
let $MASTER_1_COMMENT_TEXT_PK1_1=
- COMMENT 'tbl "t1", srv "s_2_1", pk_name "pk_s_2_1_t1"';
+ COMMENT 'tbl "t1", dsn "$ODBC_DSN_HA1", wrapper "odbc", pk_name "pk_s_2_1_t1"';
let $MASTER_1_COMMENT_TEXT_KEY1_1=
- COMMENT 'tbl "t1", srv "s_2_1", pk_name "pk_s_2_1_t1"';
+ COMMENT 'tbl "t1", dsn "$ODBC_DSN_HA1", wrapper "odbc", pk_name "pk_s_2_1_t1"';
let $MASTER_1_CHECK_DIRECT_UPDATE_STATUS=
SHOW GLOBAL STATUS LIKE 'Spider_direct_update%';
let $MASTER_1_CHECK_DIRECT_DELETE_STATUS=
@@ -102,40 +102,40 @@ let $MASTER_1_CHECK_DIRECT_AGGREGATE_STATUS=
SHOW GLOBAL STATUS LIKE 'Spider_direct_aggregate%';
let $MASTER_1_AUTO_INCREMENT_INCREMENT1=
SET SESSION AUTO_INCREMENT_INCREMENT = 1 $STR_SEMICOLON
- SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'srv "s_2_1"')
+ SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 1 INCREMENT BY 1', '', 'srv "s_2_1"')
+ SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 1 INCREMENT BY 1', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'srv "s_2_2"')
+ SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 1 INCREMENT BY 1', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 1 INCREMENT BY 1', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $MASTER_1_AUTO_INCREMENT_INCREMENT2=
SET SESSION AUTO_INCREMENT_INCREMENT = 777 $STR_SEMICOLON
- SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'srv "s_2_1"')
+ SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'srv "s_2_1"')
+ SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'srv "s_2_2"')
+ SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $MASTER_1_AUTO_INCREMENT_OFFSET1=
SET SESSION AUTO_INCREMENT_OFFSET = 1 $STR_SEMICOLON
- SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'srv "s_2_1"')
+ SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 1 INCREMENT BY 1', '', 'srv "s_2_1"')
+ SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 1 INCREMENT BY 1', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'srv "s_2_2"')
+ SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 1 INCREMENT BY 1', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 1 INCREMENT BY 1', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $MASTER_1_AUTO_INCREMENT_OFFSET2=
SET SESSION AUTO_INCREMENT_OFFSET = 777 $STR_SEMICOLON
- SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'srv "s_2_1"')
+ SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'srv "s_2_1"')
+ SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'dsn "$ODBC_DSN_HA1", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'srv "s_2_2"')
+ SELECT spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"')
$STR_SEMICOLON
- SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'srv "s_2_2"');
+ SELECT spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'dsn "$ODBC_DSN_HA2", wrapper "odbc"');
let $MASTER_1_AUTO_INCREMENT_OFFSET3=
SET SESSION AUTO_INCREMENT_OFFSET = 1;
let $MASTER_1_AUTO_INCREMENT_OFFSET4=
diff --git a/storage/spider/mysql-test/spider/odbc/pg/include/init_spider.inc b/storage/spider/mysql-test/spider/odbc/pg/include/init_spider.inc
index 27285967024..1cbcb003905 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/include/init_spider.inc
+++ b/storage/spider/mysql-test/spider/odbc/pg/include/init_spider.inc
@@ -3,22 +3,6 @@ let $VERSION_COMPILE_OS_WIN=
`SELECT IF(@@version_compile_os like 'Win%', 1, 0)`;
if ($VERSION_COMPILE_OS_WIN)
{
- eval DROP SERVER IF EXISTS s_2;
- eval CREATE SERVER s_2 FOREIGN DATA WRAPPER odbc OPTIONS (
- SOCKET '$ODBC_DSN'
- );
- eval DROP SERVER IF EXISTS s_2_1;
- eval CREATE SERVER s_2_1 FOREIGN DATA WRAPPER odbc OPTIONS (
- SOCKET '$ODBC_DSN_HA1'
- );
- eval DROP SERVER IF EXISTS s_2_2;
- eval CREATE SERVER s_2_2 FOREIGN DATA WRAPPER odbc OPTIONS (
- SOCKET '$ODBC_DSN_HA2'
- );
- eval DROP SERVER IF EXISTS s_2_3;
- eval CREATE SERVER s_2_3 FOREIGN DATA WRAPPER odbc OPTIONS (
- SOCKET '$ODBC_DSN_HA3'
- );
eval DROP SERVER IF EXISTS s_3_1;
eval CREATE SERVER s_3_1 FOREIGN DATA WRAPPER mysql OPTIONS (
HOST 'localhost',
@@ -46,22 +30,6 @@ if ($VERSION_COMPILE_OS_WIN)
}
if (!$VERSION_COMPILE_OS_WIN)
{
- eval DROP SERVER IF EXISTS s_2;
- eval CREATE SERVER s_2 FOREIGN DATA WRAPPER odbc OPTIONS (
- SOCKET '$ODBC_DSN'
- );
- eval DROP SERVER IF EXISTS s_2_1;
- eval CREATE SERVER s_2_1 FOREIGN DATA WRAPPER odbc OPTIONS (
- SOCKET '$ODBC_DSN_HA1'
- );
- eval DROP SERVER IF EXISTS s_2_2;
- eval CREATE SERVER s_2_2 FOREIGN DATA WRAPPER odbc OPTIONS (
- SOCKET '$ODBC_DSN_HA2'
- );
- eval DROP SERVER IF EXISTS s_2_3;
- eval CREATE SERVER s_2_3 FOREIGN DATA WRAPPER odbc OPTIONS (
- SOCKET '$ODBC_DSN_HA3'
- );
eval DROP SERVER IF EXISTS s_3_1;
eval CREATE SERVER s_3_1 FOREIGN DATA WRAPPER mysql OPTIONS (
HOST 'localhost',
diff --git a/storage/spider/mysql-test/spider/odbc/pg/r/ha_part.result b/storage/spider/mysql-test/spider/odbc/pg/r/ha_part.result
index 6e2224632d4..d7571187017 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/r/ha_part.result
+++ b/storage/spider/mysql-test/spider/odbc/pg/r/ha_part.result
@@ -124,9 +124,9 @@ recovery test
connection master_1;
ALTER TABLE ta_l2
PARTITION BY KEY(a) (
-PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+PARTITION pt1 COMMENT='dsn "postgres_auto_test_remote postgres_auto_test_remote2", tbl "ta_r ta_r3",
priority "1000"',
-PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+PARTITION pt2 COMMENT='dsn "postgres_auto_test_remote postgres_auto_test_remote3", tbl "ta_r2 ta_r4",
priority "1000001", lst "0 2"'
);
SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
@@ -142,9 +142,9 @@ spider_copy_tables('ta_l2#P#pt2', '0', '1')
connection master_1;
ALTER TABLE ta_l2
PARTITION BY KEY(a) (
-PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+PARTITION pt1 COMMENT='dsn "postgres_auto_test_remote postgres_auto_test_remote2", tbl "ta_r ta_r3",
priority "1000"',
-PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+PARTITION pt2 COMMENT='dsn "postgres_auto_test_remote postgres_auto_test_remote3", tbl "ta_r2 ta_r4",
priority "1000001", lst "0 1"'
);
SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
@@ -233,9 +233,9 @@ recovery test
connection master_1;
ALTER TABLE ta_l2
PARTITION BY KEY(a) (
-PARTITION pt1 COMMENT='srv "s_2_1 s_2_2", tbl "ta_r ta_r3",
+PARTITION pt1 COMMENT='dsn "postgres_auto_test_remote postgres_auto_test_remote2", tbl "ta_r ta_r3",
priority "1000"',
-PARTITION pt2 COMMENT='srv "s_2_1 s_2_3", tbl "ta_r2 ta_r4",
+PARTITION pt2 COMMENT='dsn "postgres_auto_test_remote postgres_auto_test_remote3", tbl "ta_r2 ta_r4",
priority "1000001", lst "1 0"'
);
SELECT db_name, table_name, link_id, link_status FROM mysql.spider_tables
diff --git a/storage/spider/mysql-test/spider/odbc/pg/r/spider3_fixes.result b/storage/spider/mysql-test/spider/odbc/pg/r/spider3_fixes.result
index 75dbf0c0548..bf431a7595e 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/r/spider3_fixes.result
+++ b/storage/spider/mysql-test/spider/odbc/pg/r/spider3_fixes.result
@@ -44,21 +44,21 @@ PRIMARY KEY (id)
) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_INCREMENT1_1
MASTER_1_AUTO_INCREMENT_INCREMENT2
MASTER_1_AUTO_INCREMENT_OFFSET2
-spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'srv "s_2_1"')
+spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'dsn "postgres_auto_test_remote", wrapper "odbc"')
1
-spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'srv "s_2_1"')
+spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'dsn "postgres_auto_test_remote", wrapper "odbc"')
1
-spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'srv "s_2_2"')
+spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'dsn "postgres_auto_test_remote2", wrapper "odbc"')
1
-spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'srv "s_2_2"')
+spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'dsn "postgres_auto_test_remote2", wrapper "odbc"')
1
-spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'srv "s_2_1"')
+spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'dsn "postgres_auto_test_remote", wrapper "odbc"')
1
-spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'srv "s_2_1"')
+spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'dsn "postgres_auto_test_remote", wrapper "odbc"')
1
-spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'srv "s_2_2"')
+spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'dsn "postgres_auto_test_remote2", wrapper "odbc"')
1
-spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'srv "s_2_2"')
+spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'dsn "postgres_auto_test_remote2", wrapper "odbc"')
1
INSERT INTO t1 () VALUES ();
SELECT LAST_INSERT_ID();
diff --git a/storage/spider/mysql-test/spider/odbc/pg/r/spider3_fixes_part.result b/storage/spider/mysql-test/spider/odbc/pg/r/spider3_fixes_part.result
index da6ff87d625..111961a2057 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/r/spider3_fixes_part.result
+++ b/storage/spider/mysql-test/spider/odbc/pg/r/spider3_fixes_part.result
@@ -42,21 +42,21 @@ PRIMARY KEY (id)
) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_INCREMENT1_P_1
MASTER_1_AUTO_INCREMENT_INCREMENT2
MASTER_1_AUTO_INCREMENT_OFFSET2
-spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'srv "s_2_1"')
+spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'dsn "postgres_auto_test_remote", wrapper "odbc"')
1
-spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'srv "s_2_1"')
+spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'dsn "postgres_auto_test_remote", wrapper "odbc"')
1
-spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'srv "s_2_2"')
+spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'dsn "postgres_auto_test_remote2", wrapper "odbc"')
1
-spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'srv "s_2_2"')
+spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'dsn "postgres_auto_test_remote2", wrapper "odbc"')
1
-spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'srv "s_2_1"')
+spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'dsn "postgres_auto_test_remote", wrapper "odbc"')
1
-spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'srv "s_2_1"')
+spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'dsn "postgres_auto_test_remote", wrapper "odbc"')
1
-spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'srv "s_2_2"')
+spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'dsn "postgres_auto_test_remote2", wrapper "odbc"')
1
-spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'srv "s_2_2"')
+spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'dsn "postgres_auto_test_remote2", wrapper "odbc"')
1
INSERT INTO t1 () VALUES ();
SELECT LAST_INSERT_ID();
diff --git a/storage/spider/mysql-test/spider/odbc/pg/r/spider_fixes.result b/storage/spider/mysql-test/spider/odbc/pg/r/spider_fixes.result
index 98c466a7557..0ca8cb241e0 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/r/spider_fixes.result
+++ b/storage/spider/mysql-test/spider/odbc/pg/r/spider_fixes.result
@@ -301,21 +301,21 @@ PRIMARY KEY (id)
) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_INCREMENT1_1
MASTER_1_AUTO_INCREMENT_INCREMENT2
MASTER_1_AUTO_INCREMENT_OFFSET2
-spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'srv "s_2_1"')
+spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'dsn "postgres_auto_test_remote", wrapper "odbc"')
1
-spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'srv "s_2_1"')
+spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'dsn "postgres_auto_test_remote", wrapper "odbc"')
1
-spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'srv "s_2_2"')
+spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'dsn "postgres_auto_test_remote2", wrapper "odbc"')
1
-spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'srv "s_2_2"')
+spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'dsn "postgres_auto_test_remote2", wrapper "odbc"')
1
-spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'srv "s_2_1"')
+spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'dsn "postgres_auto_test_remote", wrapper "odbc"')
1
-spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'srv "s_2_1"')
+spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'dsn "postgres_auto_test_remote", wrapper "odbc"')
1
-spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'srv "s_2_2"')
+spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'dsn "postgres_auto_test_remote2", wrapper "odbc"')
1
-spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'srv "s_2_2"')
+spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'dsn "postgres_auto_test_remote2", wrapper "odbc"')
1
INSERT INTO t1 () VALUES ();
SELECT LAST_INSERT_ID();
diff --git a/storage/spider/mysql-test/spider/odbc/pg/r/spider_fixes_part.result b/storage/spider/mysql-test/spider/odbc/pg/r/spider_fixes_part.result
index b90042dc81f..e94f3f30274 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/r/spider_fixes_part.result
+++ b/storage/spider/mysql-test/spider/odbc/pg/r/spider_fixes_part.result
@@ -113,21 +113,21 @@ PRIMARY KEY (id)
) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_INCREMENT1_P_1
MASTER_1_AUTO_INCREMENT_INCREMENT2
MASTER_1_AUTO_INCREMENT_OFFSET2
-spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'srv "s_2_1"')
+spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'dsn "postgres_auto_test_remote", wrapper "odbc"')
1
-spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'srv "s_2_1"')
+spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'dsn "postgres_auto_test_remote", wrapper "odbc"')
1
-spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'srv "s_2_2"')
+spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'dsn "postgres_auto_test_remote2", wrapper "odbc"')
1
-spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'srv "s_2_2"')
+spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'dsn "postgres_auto_test_remote2", wrapper "odbc"')
1
-spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'srv "s_2_1"')
+spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_1"', '', 'dsn "postgres_auto_test_remote", wrapper "odbc"')
1
-spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'srv "s_2_1"')
+spider_direct_sql('CREATE SEQUENCE "seq_t1_1" START WITH 2 INCREMENT BY 4', '', 'dsn "postgres_auto_test_remote", wrapper "odbc"')
1
-spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'srv "s_2_2"')
+spider_direct_sql('DROP SEQUENCE IF EXISTS "seq_t1_2"', '', 'dsn "postgres_auto_test_remote2", wrapper "odbc"')
1
-spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'srv "s_2_2"')
+spider_direct_sql('CREATE SEQUENCE "seq_t1_2" START WITH 3 INCREMENT BY 4', '', 'dsn "postgres_auto_test_remote2", wrapper "odbc"')
1
INSERT INTO t1 () VALUES ();
SELECT LAST_INSERT_ID();
diff --git a/storage/spider/mysql-test/spider/odbc/include/have_odbc.inc b/storage/spider/mysql-test/spider/odbc/pg/t/have_odbc.inc
index 57fb056e1d2..6924e61dd75 100644
--- a/storage/spider/mysql-test/spider/odbc/include/have_odbc.inc
+++ b/storage/spider/mysql-test/spider/odbc/pg/t/have_odbc.inc
@@ -4,7 +4,7 @@ CREATE TABLE ta_l (
b CHAR(1),
c DATETIME,
PRIMARY KEY(a)
-) ENGINE=Spider DEFAULT CHARSET=utf8 COMMENT='socket "$ODBC_DSN_HA1", table "ta_r", wrapper "odbc", pk_name "pk_s_2_1_ta_r"';
+) ENGINE=Spider DEFAULT CHARSET=utf8 COMMENT='dsn "$ODBC_DSN_HA1", table "ta_r", wrapper "odbc", pk_name "pk_s_2_1_ta_r"';
if ($mysql_errno)
{
--skip Test requires to build with ODBC driver
diff --git a/storage/spider/mysql-test/spider/odbc/pg/t/test_init.inc b/storage/spider/mysql-test/spider/odbc/pg/t/test_init.inc
index c4d7f414f4e..fbeaa8862fa 100644
--- a/storage/spider/mysql-test/spider/odbc/pg/t/test_init.inc
+++ b/storage/spider/mysql-test/spider/odbc/pg/t/test_init.inc
@@ -10,7 +10,7 @@ SET SESSION sql_log_bin= 0;
--source have_trigger.inc
--source ../include/init_master_1.inc
--source have_engine.inc
---source ../../include/have_odbc.inc
+--source have_odbc.inc
--echo for child2
if ($USE_CHILD_GROUP2)
{