Permalink
Show file tree
Hide file tree
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Add direct join support for Spider
Includes Spider patches - 062_mariadb-10.2.0.direct_join_1and3.diff - 063_mariadb-10.2.0.direct_join_for_single_partition.diff - Test cases from Kentoku Allows Spider to push full joins to the Spider engine trough the create_group_by interface. Other things: - Increased MYSQL_VERSION_ID to check for 10211 (latest 10.2 version) - Fix for const_table at calling create_group_by(). Original author: Kentoku SHIBA
- Loading branch information
Showing
15 changed files
with
851 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| --let $OUTPUT_CHILD_GROUP2= $OUTPUT_CHILD_GROUP2_BACKUP | ||
| --let $USE_GENERAL_LOG= $USE_GENERAL_LOG_BACKUP | ||
| --disable_warnings | ||
| --disable_query_log | ||
| --disable_result_log | ||
| --source ../t/test_deinit.inc | ||
| --enable_result_log | ||
| --enable_query_log | ||
| --enable_warnings |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| --disable_warnings | ||
| --disable_query_log | ||
| --disable_result_log | ||
| --source ../t/test_init.inc | ||
| --enable_result_log | ||
| --enable_query_log | ||
| --enable_warnings | ||
| let $CHILD2_1_SELECT_ARGUMENT1= | ||
| SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'; | ||
| --let $OUTPUT_CHILD_GROUP2_BACKUP= $OUTPUT_CHILD_GROUP2 | ||
| --let $OUTPUT_CHILD_GROUP2= 1 | ||
| --let $USE_GENERAL_LOG_BACKUP= $USE_GENERAL_LOG | ||
| --let $USE_GENERAL_LOG= 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| --connection master_1 | ||
| --let $MASTER_1_COMMENT_2_1= $MASTER_1_COMMENT_2_1_BACKUP | ||
| --let $MASTER_1_COMMENT_2_2= $MASTER_1_COMMENT_2_2_BACKUP | ||
| --let $CHILD2_1_DROP_TABLES= $CHILD2_1_DROP_TABLES_BACKUP | ||
| --let $CHILD2_1_CREATE_TABLES= $CHILD2_1_CREATE_TABLES_BACKUP | ||
| --let $CHILD2_1_SELECT_TABLES= $CHILD2_1_SELECT_TABLES_BACKUP | ||
| --let $CHILD2_1_DROP_TABLES2= $CHILD2_1_DROP_TABLES2_BACKUP | ||
| --let $CHILD2_1_CREATE_TABLES2= $CHILD2_1_CREATE_TABLES2_BACKUP | ||
| --let $CHILD2_1_SELECT_TABLES2= $CHILD2_1_SELECT_TABLES2_BACKUP | ||
| --let $CHILD2_2_DROP_TABLES= $CHILD2_2_DROP_TABLES_BACKUP | ||
| --let $CHILD2_2_CREATE_TABLES= $CHILD2_2_CREATE_TABLES_BACKUP | ||
| --let $CHILD2_2_SELECT_TABLES= $CHILD2_2_SELECT_TABLES_BACKUP | ||
| --let $CHILD2_2_DROP_TABLES2= $CHILD2_2_DROP_TABLES2_BACKUP | ||
| --let $CHILD2_2_CREATE_TABLES2= $CHILD2_2_CREATE_TABLES2_BACKUP | ||
| --let $CHILD2_2_SELECT_TABLES2= $CHILD2_2_SELECT_TABLES2_BACKUP | ||
| --let $CHILD2_3_DROP_TABLES= $CHILD2_3_DROP_TABLES_BACKUP | ||
| --let $CHILD2_3_CREATE_TABLES= $CHILD2_3_CREATE_TABLES_BACKUP | ||
| --let $CHILD2_3_SELECT_TABLES= $CHILD2_3_SELECT_TABLES_BACKUP | ||
| --let $CHILD2_3_DROP_TABLES2= $CHILD2_3_DROP_TABLES2_BACKUP | ||
| --let $CHILD2_3_CREATE_TABLES2= $CHILD2_3_CREATE_TABLES2_BACKUP | ||
| --let $CHILD2_3_SELECT_TABLES2= $CHILD2_3_SELECT_TABLES2_BACKUP | ||
| --let $OUTPUT_CHILD_GROUP2= $OUTPUT_CHILD_GROUP2_BACKUP | ||
| --let $USE_GENERAL_LOG= $USE_GENERAL_LOG_BACKUP | ||
| --disable_warnings | ||
| --disable_query_log | ||
| --disable_result_log | ||
| --source ../t/test_deinit.inc | ||
| --enable_result_log | ||
| --enable_query_log | ||
| --enable_warnings |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,105 @@ | ||
| --disable_warnings | ||
| --disable_query_log | ||
| --disable_result_log | ||
| --source ../t/test_init.inc | ||
| --enable_result_log | ||
| --enable_query_log | ||
| --enable_warnings | ||
| --let $MASTER_1_COMMENT_2_1_BACKUP= $MASTER_1_COMMENT_2_1 | ||
| let $MASTER_1_COMMENT_2_1= | ||
| COMMENT='table "tbl_a"' | ||
| PARTITION BY RANGE(value) ( | ||
| PARTITION pt1 VALUES LESS THAN (5) COMMENT='srv "s_2_1"', | ||
| PARTITION pt2 VALUES LESS THAN (10) COMMENT='srv "s_2_2"', | ||
| PARTITION pt3 VALUES LESS THAN (15) COMMENT='srv "s_2_3"' | ||
| ); | ||
| --let $MASTER_1_COMMENT_2_2_BACKUP= $MASTER_1_COMMENT_2_2 | ||
| let $MASTER_1_COMMENT_2_2= | ||
| COMMENT='table "tbl_b"' | ||
| PARTITION BY RANGE(value2) ( | ||
| PARTITION pt1 VALUES LESS THAN (5) COMMENT='srv "s_2_1"', | ||
| PARTITION pt2 VALUES LESS THAN (10) COMMENT='srv "s_2_2"', | ||
| PARTITION pt3 VALUES LESS THAN (15) COMMENT='srv "s_2_3"' | ||
| ); | ||
| --let $CHILD2_1_DROP_TABLES_BACKUP= $CHILD2_1_DROP_TABLES | ||
| let $CHILD2_1_DROP_TABLES= | ||
| DROP TABLE IF EXISTS tbl_a; | ||
| --let $CHILD2_1_CREATE_TABLES_BACKUP= $CHILD2_1_CREATE_TABLES | ||
| let $CHILD2_1_CREATE_TABLES= | ||
| CREATE TABLE tbl_a ( | ||
| value int NOT NULL, | ||
| PRIMARY KEY(value) | ||
| ) $CHILD2_1_ENGINE $CHILD2_1_CHARSET; | ||
| --let $CHILD2_1_SELECT_TABLES_BACKUP= $CHILD2_1_SELECT_TABLES | ||
| let $CHILD2_1_SELECT_TABLES= | ||
| SELECT value FROM tbl_a ORDER BY value; | ||
| --let $CHILD2_1_DROP_TABLES2_BACKUP= $CHILD2_1_DROP_TABLES2 | ||
| let $CHILD2_1_DROP_TABLES2= | ||
| DROP TABLE IF EXISTS tbl_b; | ||
| --let $CHILD2_1_CREATE_TABLES2_BACKUP= $CHILD2_1_CREATE_TABLES2 | ||
| let $CHILD2_1_CREATE_TABLES2= | ||
| CREATE TABLE tbl_b ( | ||
| value2 int NOT NULL, | ||
| PRIMARY KEY(value2) | ||
| ) $CHILD2_1_ENGINE $CHILD2_1_CHARSET; | ||
| --let $CHILD2_1_SELECT_TABLES2_BACKUP= $CHILD2_1_SELECT_TABLES2 | ||
| let $CHILD2_1_SELECT_TABLES2= | ||
| SELECT value FROM tbl_b ORDER BY value2; | ||
| let $CHILD2_1_SELECT_ARGUMENT1= | ||
| SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'; | ||
| --let $CHILD2_2_DROP_TABLES_BACKUP= $CHILD2_2_DROP_TABLES | ||
| let $CHILD2_2_DROP_TABLES= | ||
| DROP TABLE IF EXISTS tbl_a; | ||
| --let $CHILD2_2_CREATE_TABLES_BACKUP= $CHILD2_2_CREATE_TABLES | ||
| let $CHILD2_2_CREATE_TABLES= | ||
| CREATE TABLE tbl_a ( | ||
| value int NOT NULL, | ||
| PRIMARY KEY(value) | ||
| ) $CHILD2_2_ENGINE $CHILD2_2_CHARSET; | ||
| --let $CHILD2_2_SELECT_TABLES_BACKUP= $CHILD2_2_SELECT_TABLES | ||
| let $CHILD2_2_SELECT_TABLES= | ||
| SELECT value FROM tbl_a ORDER BY value; | ||
| --let $CHILD2_2_DROP_TABLES2_BACKUP= $CHILD2_2_DROP_TABLES2 | ||
| let $CHILD2_2_DROP_TABLES2= | ||
| DROP TABLE IF EXISTS tbl_b; | ||
| --let $CHILD2_2_CREATE_TABLES2_BACKUP= $CHILD2_2_CREATE_TABLES2 | ||
| let $CHILD2_2_CREATE_TABLES2= | ||
| CREATE TABLE tbl_b ( | ||
| value2 int NOT NULL, | ||
| PRIMARY KEY(value2) | ||
| ) $CHILD2_2_ENGINE $CHILD2_2_CHARSET; | ||
| --let $CHILD2_2_SELECT_TABLES2_BACKUP= $CHILD2_2_SELECT_TABLES2 | ||
| let $CHILD2_2_SELECT_TABLES2= | ||
| SELECT value FROM tbl_b ORDER BY value; | ||
| let $CHILD2_2_SELECT_ARGUMENT1= | ||
| SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'; | ||
| --let $CHILD2_3_DROP_TABLES_BACKUP= $CHILD2_3_DROP_TABLES | ||
| let $CHILD2_3_DROP_TABLES= | ||
| DROP TABLE IF EXISTS tbl_a; | ||
| --let $CHILD2_3_CREATE_TABLES_BACKUP= $CHILD2_3_CREATE_TABLES | ||
| let $CHILD2_3_CREATE_TABLES= | ||
| CREATE TABLE tbl_a ( | ||
| value int NOT NULL, | ||
| PRIMARY KEY(value) | ||
| ) $CHILD2_3_ENGINE $CHILD2_3_CHARSET; | ||
| --let $CHILD2_3_SELECT_TABLES_BACKUP= $CHILD2_3_SELECT_TABLES | ||
| let $CHILD2_3_SELECT_TABLES= | ||
| SELECT value FROM tbl_a ORDER BY value; | ||
| --let $CHILD2_3_DROP_TABLES2_BACKUP= $CHILD2_3_DROP_TABLES2 | ||
| let $CHILD2_3_DROP_TABLES2= | ||
| DROP TABLE IF EXISTS tbl_b; | ||
| --let $CHILD2_3_CREATE_TABLES2_BACKUP= $CHILD2_3_CREATE_TABLES2 | ||
| let $CHILD2_3_CREATE_TABLES2= | ||
| CREATE TABLE tbl_b ( | ||
| value2 int NOT NULL, | ||
| PRIMARY KEY(value2) | ||
| ) $CHILD2_3_ENGINE $CHILD2_3_CHARSET; | ||
| --let $CHILD2_3_SELECT_TABLES2_BACKUP= $CHILD2_3_SELECT_TABLES2 | ||
| let $CHILD2_3_SELECT_TABLES2= | ||
| SELECT value FROM tbl_b ORDER BY value; | ||
| let $CHILD2_3_SELECT_ARGUMENT1= | ||
| SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'; | ||
| --let $OUTPUT_CHILD_GROUP2_BACKUP= $OUTPUT_CHILD_GROUP2 | ||
| --let $OUTPUT_CHILD_GROUP2= 1 | ||
| --let $USE_GENERAL_LOG_BACKUP= $USE_GENERAL_LOG | ||
| --let $USE_GENERAL_LOG= 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,105 @@ | ||
| 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; | ||
| connection child2_1; | ||
| SET @old_log_output = @@global.log_output; | ||
| SET GLOBAL log_output = 'TABLE,FILE'; | ||
| DROP DATABASE IF EXISTS auto_test_remote; | ||
| CREATE DATABASE auto_test_remote; | ||
| USE auto_test_remote; | ||
|
|
||
| test select 1 | ||
| connection master_1; | ||
| SELECT 1; | ||
| 1 | ||
| 1 | ||
| connection child2_1; | ||
| SELECT 1; | ||
| 1 | ||
| 1 | ||
|
|
||
| create table and insert | ||
| connection child2_1; | ||
| CHILD2_1_DROP_TABLES | ||
| CHILD2_1_DROP_TABLES6 | ||
| CHILD2_1_DROP_TABLES5 | ||
| CHILD2_1_CREATE_TABLES | ||
| CHILD2_1_CREATE_TABLES6 | ||
| CHILD2_1_CREATE_TABLES5 | ||
| TRUNCATE TABLE mysql.general_log; | ||
| connection master_1; | ||
| DROP TABLE IF EXISTS tbl_a; | ||
| CREATE TABLE tbl_a ( | ||
| a INT DEFAULT 10, | ||
| b CHAR(1) DEFAULT 'c', | ||
| c DATETIME DEFAULT '1999-10-10 10:10:10', | ||
| PRIMARY KEY(a), | ||
| KEY idx1(b) | ||
| ) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1 | ||
| CREATE TABLE tbl_b ( | ||
| a INT DEFAULT 10, | ||
| b CHAR(1) DEFAULT 'c', | ||
| c DATETIME DEFAULT '1999-10-10 10:10:10' | ||
| ) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT5_2_1 | ||
| CREATE TABLE tbl_c ( | ||
| 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 tbl_a values (1,'a','2000/01/01'),(2,'b','2000/01/02'),(3,'c','2000/01/03'),(4,'d','2000/01/04'),(5,'e','2000/01/05'); | ||
| insert into tbl_b values (1,'a','2000/01/01'),(2,'b','2000/01/02'),(3,'c','2000/01/03'),(4,'d','2000/01/04'),(5,'e','2000/01/05'); | ||
| insert into tbl_c values (1,10,100),(2,20,200),(3,30,300),(4,40,400),(5,50,500); | ||
|
|
||
| select test | ||
| connection child2_1; | ||
| TRUNCATE TABLE mysql.general_log; | ||
| connection master_1; | ||
| SELECT a.a, c.b, c.c FROM tbl_a a, tbl_b b, tbl_c c WHERE a.a = b.a and a.a = c.a ORDER BY a.b DESC LIMIT 1,2; | ||
| a b c | ||
| 4 40 400 | ||
| 3 30 300 | ||
| connection child2_1; | ||
| SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'; | ||
| argument | ||
| select t0.`b` `b`,t0.`a` `a`,t2.`b` `b`,t2.`c` `c` from `auto_test_remote`.`ta_r` t0,`auto_test_remote`.`ta_r_3` t1,`auto_test_remote`.`ta_r_int` t2 where ((t0.`a` = t1.`a`) and (t2.`a` = t1.`a`)) order by t0.`b` desc limit 1,2 | ||
| SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %' | ||
| SELECT a, b, date_format(c, '%Y-%m-%d %H:%i:%s') FROM ta_r ORDER BY a; | ||
| a b date_format(c, '%Y-%m-%d %H:%i:%s') | ||
| 1 a 2000-01-01 00:00:00 | ||
| 2 b 2000-01-02 00:00:00 | ||
| 3 c 2000-01-03 00:00:00 | ||
| 4 d 2000-01-04 00:00:00 | ||
| 5 e 2000-01-05 00:00:00 | ||
|
|
||
| deinit | ||
| connection master_1; | ||
| DROP DATABASE IF EXISTS auto_test_local; | ||
| connection child2_1; | ||
| DROP DATABASE IF EXISTS auto_test_remote; | ||
| SET GLOBAL log_output = @old_log_output; | ||
| for master_1 | ||
| for child2 | ||
| child2_1 | ||
| child2_2 | ||
| child2_3 | ||
| for child3 | ||
| child3_1 | ||
| child3_2 | ||
| child3_3 | ||
|
|
||
| end of test |
Oops, something went wrong.