-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a parameter spider_strict_group_by for supporting ONLY_FULL_GROUP_BY
- Loading branch information
Showing
12 changed files
with
628 additions
and
26 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
18 changes: 18 additions & 0 deletions
18
storage/spider/mysql-test/spider/bugfix/include/strict_group_by_deinit.inc
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,18 @@ | ||
--let $MASTER_1_COMMENT_2_1= $MASTER_1_COMMENT_2_1_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_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 | ||
--connection child2_1 | ||
set global sql_mode= @old_sql_mode; | ||
--connection master_1 | ||
set session spider_sync_sql_mode= @old_spider_sync_sql_mode; | ||
--disable_warnings | ||
--disable_query_log | ||
--disable_result_log | ||
--source ../t/test_deinit.inc | ||
--enable_result_log | ||
--enable_query_log | ||
--enable_warnings |
60 changes: 60 additions & 0 deletions
60
storage/spider/mysql-test/spider/bugfix/include/strict_group_by_init.inc
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,60 @@ | ||
--disable_warnings | ||
--disable_query_log | ||
--disable_result_log | ||
--source ../t/test_init.inc | ||
if (!$HAVE_PARTITION) | ||
{ | ||
--source strict_group_by_deinit.inc | ||
--enable_result_log | ||
--enable_query_log | ||
--enable_warnings | ||
skip Test requires partitioning; | ||
} | ||
--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 KEY(pkey) ( | ||
PARTITION pt1 COMMENT='srv "s_2_1"', | ||
PARTITION pt2 COMMENT='srv "s_2_2"' | ||
); | ||
--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 ( | ||
pkey int NOT NULL, | ||
skey int NOT NULL, | ||
PRIMARY KEY (pkey), | ||
KEY idx1 (skey) | ||
) $CHILD2_1_ENGINE $CHILD2_1_CHARSET; | ||
--let $CHILD2_1_SELECT_TABLES_BACKUP= $CHILD2_1_SELECT_TABLES | ||
let $CHILD2_1_SELECT_TABLES= | ||
SELECT pkey, skey FROM tbl_a ORDER BY pkey; | ||
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 ( | ||
pkey int NOT NULL, | ||
skey int NOT NULL, | ||
PRIMARY KEY (pkey), | ||
KEY idx1 (skey) | ||
) $CHILD2_2_ENGINE $CHILD2_2_CHARSET; | ||
--let $CHILD2_2_SELECT_TABLES_BACKUP= $CHILD2_2_SELECT_TABLES | ||
let $CHILD2_2_SELECT_TABLES= | ||
SELECT pkey, skey FROM tbl_a ORDER BY pkey; | ||
let $CHILD2_2_SELECT_ARGUMENT1= | ||
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'; | ||
--connection master_1 | ||
set @old_spider_sync_sql_mode= @@spider_sync_sql_mode; | ||
set session spider_sync_sql_mode= FALSE; | ||
--connection child2_1 | ||
set @old_sql_mode= @@sql_mode; | ||
set global sql_mode= 'ONLY_FULL_GROUP_BY'; |
124 changes: 124 additions & 0 deletions
124
storage/spider/mysql-test/spider/bugfix/r/strict_group_by.result
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,124 @@ | ||
for master_1 | ||
for child2 | ||
child2_1 | ||
child2_2 | ||
child2_3 | ||
for child3 | ||
connection master_1; | ||
set @old_spider_sync_sql_mode= @@spider_sync_sql_mode; | ||
set session spider_sync_sql_mode= FALSE; | ||
connection child2_1; | ||
set @old_sql_mode= @@sql_mode; | ||
set global sql_mode= 'ONLY_FULL_GROUP_BY'; | ||
|
||
this test is for MDEV-18988 | ||
|
||
drop and create databases | ||
connection master_1; | ||
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'; | ||
CREATE DATABASE auto_test_remote; | ||
USE auto_test_remote; | ||
connection child2_2; | ||
SET @old_log_output = @@global.log_output; | ||
SET GLOBAL log_output = 'TABLE,FILE'; | ||
CREATE DATABASE auto_test_remote2; | ||
USE auto_test_remote2; | ||
|
||
create table and insert | ||
connection child2_1; | ||
CHILD2_1_CREATE_TABLES | ||
TRUNCATE TABLE mysql.general_log; | ||
connection child2_2; | ||
CHILD2_2_CREATE_TABLES | ||
TRUNCATE TABLE mysql.general_log; | ||
connection master_1; | ||
CREATE TABLE tbl_a ( | ||
pkey int NOT NULL, | ||
skey int NOT NULL, | ||
PRIMARY KEY (pkey), | ||
KEY idx1 (skey) | ||
) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1 | ||
INSERT INTO tbl_a (pkey,skey) VALUES (0,0),(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9); | ||
INSERT INTO tbl_a (pkey,skey) VALUES (10,10),(11,11),(12,12),(13,13),(14,14),(15,15),(16,16),(17,17),(18,18),(19,19); | ||
INSERT INTO tbl_a (pkey,skey) VALUES (20,5),(21,6),(22,7),(23,8),(24,9),(25,10),(26,11),(27,12),(28,13),(29,14); | ||
|
||
select test 1 | ||
connection child2_1; | ||
TRUNCATE TABLE mysql.general_log; | ||
connection child2_2; | ||
TRUNCATE TABLE mysql.general_log; | ||
connection master_1; | ||
FLUSH TABLES; | ||
SELECT count(pkey) cnt, skey FROM tbl_a; | ||
cnt skey | ||
30 1 | ||
connection child2_1; | ||
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'; | ||
argument | ||
select count(`pkey`),min(`pkey`),min(`skey`) from `auto_test_remote`.`tbl_a` | ||
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %' | ||
SELECT pkey, skey FROM tbl_a ORDER BY pkey; | ||
pkey skey | ||
1 1 | ||
3 3 | ||
5 5 | ||
7 7 | ||
9 9 | ||
11 11 | ||
13 13 | ||
15 15 | ||
17 17 | ||
19 19 | ||
21 6 | ||
23 8 | ||
25 10 | ||
27 12 | ||
29 14 | ||
connection child2_2; | ||
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'; | ||
argument | ||
select count(`pkey`),min(`pkey`),min(`skey`) from `auto_test_remote2`.`tbl_a` | ||
SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %' | ||
SELECT pkey, skey FROM tbl_a ORDER BY pkey; | ||
pkey skey | ||
0 0 | ||
2 2 | ||
4 4 | ||
6 6 | ||
8 8 | ||
10 10 | ||
12 12 | ||
14 14 | ||
16 16 | ||
18 18 | ||
20 5 | ||
22 7 | ||
24 9 | ||
26 11 | ||
28 13 | ||
|
||
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; | ||
connection child2_2; | ||
DROP DATABASE IF EXISTS auto_test_remote2; | ||
SET GLOBAL log_output = @old_log_output; | ||
connection child2_1; | ||
set global sql_mode= @old_sql_mode; | ||
connection master_1; | ||
set session spider_sync_sql_mode= @old_spider_sync_sql_mode; | ||
for master_1 | ||
for child2 | ||
child2_1 | ||
child2_2 | ||
child2_3 | ||
for child3 | ||
|
||
end of test |
4 changes: 4 additions & 0 deletions
4
storage/spider/mysql-test/spider/bugfix/t/strict_group_by.cnf
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,4 @@ | ||
!include include/default_mysqld.cnf | ||
!include ../my_1_1.cnf | ||
!include ../my_2_1.cnf | ||
!include ../my_2_2.cnf |
98 changes: 98 additions & 0 deletions
98
storage/spider/mysql-test/spider/bugfix/t/strict_group_by.test
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,98 @@ | ||
--source ../include/strict_group_by_init.inc | ||
--echo | ||
--echo this test is for MDEV-18988 | ||
--echo | ||
--echo drop and create databases | ||
--connection master_1 | ||
--disable_warnings | ||
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'; | ||
CREATE DATABASE auto_test_remote; | ||
USE auto_test_remote; | ||
|
||
--connection child2_2 | ||
SET @old_log_output = @@global.log_output; | ||
SET GLOBAL log_output = 'TABLE,FILE'; | ||
CREATE DATABASE auto_test_remote2; | ||
USE auto_test_remote2; | ||
--enable_warnings | ||
|
||
--echo | ||
--echo create table and insert | ||
|
||
--connection child2_1 | ||
--disable_query_log | ||
echo CHILD2_1_CREATE_TABLES; | ||
eval $CHILD2_1_CREATE_TABLES; | ||
--enable_query_log | ||
TRUNCATE TABLE mysql.general_log; | ||
|
||
--connection child2_2 | ||
--disable_query_log | ||
echo CHILD2_2_CREATE_TABLES; | ||
eval $CHILD2_2_CREATE_TABLES; | ||
--enable_query_log | ||
TRUNCATE TABLE mysql.general_log; | ||
|
||
--connection master_1 | ||
--disable_query_log | ||
echo CREATE TABLE tbl_a ( | ||
pkey int NOT NULL, | ||
skey int NOT NULL, | ||
PRIMARY KEY (pkey), | ||
KEY idx1 (skey) | ||
) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1; | ||
eval CREATE TABLE tbl_a ( | ||
pkey int NOT NULL, | ||
skey int NOT NULL, | ||
PRIMARY KEY (pkey), | ||
KEY idx1 (skey) | ||
) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1; | ||
--enable_query_log | ||
INSERT INTO tbl_a (pkey,skey) VALUES (0,0),(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9); | ||
INSERT INTO tbl_a (pkey,skey) VALUES (10,10),(11,11),(12,12),(13,13),(14,14),(15,15),(16,16),(17,17),(18,18),(19,19); | ||
INSERT INTO tbl_a (pkey,skey) VALUES (20,5),(21,6),(22,7),(23,8),(24,9),(25,10),(26,11),(27,12),(28,13),(29,14); | ||
|
||
--echo | ||
--echo select test 1 | ||
|
||
--connection child2_1 | ||
TRUNCATE TABLE mysql.general_log; | ||
|
||
--connection child2_2 | ||
TRUNCATE TABLE mysql.general_log; | ||
|
||
--connection master_1 | ||
FLUSH TABLES; | ||
SELECT count(pkey) cnt, skey FROM tbl_a; | ||
|
||
--connection child2_1 | ||
eval $CHILD2_1_SELECT_ARGUMENT1; | ||
eval $CHILD2_1_SELECT_TABLES; | ||
|
||
--connection child2_2 | ||
eval $CHILD2_2_SELECT_ARGUMENT1; | ||
eval $CHILD2_2_SELECT_TABLES; | ||
|
||
--echo | ||
--echo deinit | ||
--disable_warnings | ||
--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; | ||
|
||
--connection child2_2 | ||
DROP DATABASE IF EXISTS auto_test_remote2; | ||
SET GLOBAL log_output = @old_log_output; | ||
|
||
--enable_warnings | ||
--source ../include/strict_group_by_deinit.inc | ||
--echo | ||
--echo end of test |
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
Oops, something went wrong.