66 changed files with 2752 additions and 1701 deletions
-
4cmake/cpack_rpm.cmake
-
194mysql-test/main/derived_cond_pushdown.result
-
22mysql-test/main/derived_cond_pushdown.test
-
2mysql-test/main/derived_view.result
-
72mysql-test/main/insert.result
-
56mysql-test/main/insert.test
-
2mysql-test/main/insert_returning.result
-
2mysql-test/main/insert_returning.test
-
135mysql-test/main/insert_select.result
-
56mysql-test/main/insert_select.test
-
12mysql-test/main/lowercase_view.result
-
12mysql-test/main/lowercase_view.test
-
17mysql-test/main/merge.result
-
17mysql-test/main/merge.test
-
20mysql-test/main/multi_update.result
-
28mysql-test/main/multi_update.test
-
23mysql-test/main/query_cache.result
-
22mysql-test/main/query_cache.test
-
2mysql-test/main/sp-no-valgrind.test
-
20mysql-test/main/subselect.result
-
10mysql-test/main/subselect.test
-
12mysql-test/main/subselect_elimination.result
-
7mysql-test/main/subselect_elimination.test
-
20mysql-test/main/subselect_no_exists_to_in.result
-
20mysql-test/main/subselect_no_mat.result
-
20mysql-test/main/subselect_no_opts.result
-
20mysql-test/main/subselect_no_scache.result
-
20mysql-test/main/subselect_no_semijoin.result
-
49mysql-test/main/view.result
-
30mysql-test/main/view.test
-
2mysql-test/suite/atomic/README.txt
-
1mysql-test/suite/atomic/alter_table.inc
-
2mysql-test/suite/atomic/alter_table_aria.test
-
0mysql-test/suite/atomic/alter_table_innodb.opt
-
1396mysql-test/suite/atomic/alter_table_innodb.result
-
7mysql-test/suite/atomic/alter_table_innodb.test
-
1394mysql-test/suite/atomic/alter_table_myisam.result
-
6mysql-test/suite/atomic/alter_table_myisam.test
-
2mysql-test/suite/atomic/alter_table_rocksdb.test
-
2mysql-test/suite/atomic/alter_table_trigger.test
-
1mysql-test/suite/galera/r/galera_as_slave_nonprim.result
-
80mysql-test/suite/galera/r/galera_toi_ddl_nonconflicting.result
-
6mysql-test/suite/galera/r/galera_var_replicate_myisam_on.result
-
6mysql-test/suite/galera/t/galera_as_slave_nonprim.test
-
60mysql-test/suite/galera/t/galera_toi_ddl_nonconflicting.test
-
39mysql-test/suite/galera/t/galera_var_ignore_apply_errors.test
-
64mysql-test/suite/galera/t/galera_var_replicate_myisam_on.test
-
1mysql-test/suite/sql_sequence/other.result
-
1mysql-test/suite/sql_sequence/other.test
-
12sql/item.h
-
24sql/item_subselect.cc
-
1sql/item_subselect.h
-
9sql/mysqld.cc
-
80sql/sql_base.cc
-
2sql/sql_base.h
-
2sql/sql_cache.cc
-
98sql/sql_insert.cc
-
2sql/sql_insert.h
-
45sql/sql_lex.cc
-
4sql/sql_lex.h
-
4sql/sql_prepare.cc
-
3sql/sql_update.cc
-
2sql/table.h
-
5support-files/mariadb.service.in
-
5support-files/mariadb@.service.in
-
159tests/mysql_client_test.c
@ -1,6 +1,5 @@ |
|||
--source include/long_test.inc |
|||
--source include/have_debug.inc |
|||
--source include/have_innodb.inc |
|||
--source include/have_log_bin.inc |
|||
|
|||
if (!$BIG_TEST) |
1396
mysql-test/suite/atomic/alter_table_innodb.result
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,7 @@ |
|||
# |
|||
# Test atomic alter table with InnoDB |
|||
|
|||
--source include/have_innodb.inc |
|||
let $engine_count=1; |
|||
let $engines='innodb'; |
|||
--source alter_table.inc |
1394
mysql-test/suite/atomic/alter_table_myisam.result
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,6 @@ |
|||
# |
|||
# Test atomic alter table with MyISAM |
|||
|
|||
let $engine_count=1; |
|||
let $engines='myisam'; |
|||
--source alter_table.inc |
@ -1,29 +1,69 @@ |
|||
connection node_2; |
|||
connection node_1; |
|||
connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1; |
|||
connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2; |
|||
connection node_1; |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY AUTO_INCREMENT, f2 INTEGER); |
|||
INSERT INTO t1(f2) SELECT seq FROM seq_1_to_1000; |
|||
connection node_2a; |
|||
SET SESSION wsrep_sync_wait=0; |
|||
connection node_1a; |
|||
# Block the applier on node_1 and issue a ddl from node_2 |
|||
SET SESSION wsrep_sync_wait=0; |
|||
SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync'; |
|||
connection node_2; |
|||
ALTER TABLE t1 ADD COLUMN f3 INTEGER; INSERT INTO t1 (f1, f2) VALUES (DEFAULT, 123);; |
|||
# DDL 1 |
|||
ALTER TABLE t1 ADD COLUMN f3 INTEGER; INSERT INTO t1 VALUES (NULL, 10000, 10000);; |
|||
connection node_1a; |
|||
SET SESSION wsrep_on = 0; |
|||
SET SESSION wsrep_on = 1; |
|||
SET GLOBAL wsrep_provider_options = 'dbug='; |
|||
# This will block on acquiring total order isolation |
|||
connection node_1; |
|||
# DDL 2 |
|||
CREATE UNIQUE INDEX i1 ON t1(f2);; |
|||
connection node_1a; |
|||
# Signal DDL 1 |
|||
SET GLOBAL wsrep_provider_options = 'dbug='; |
|||
SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync'; |
|||
connection node_2; |
|||
connection node_1; |
|||
connection node_2; |
|||
INSERT INTO t1 (f1, f2) VALUES (DEFAULT, 234); |
|||
SELECT COUNT(*) = 3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; |
|||
COUNT(*) = 3 |
|||
1 |
|||
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = 't1'; |
|||
COUNT(*) = 2 |
|||
1 |
|||
SELECT COUNT(*) = 2 FROM t1; |
|||
COUNT(*) = 2 |
|||
1 |
|||
SELECT COUNT(*) AS EXPECT_3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; |
|||
EXPECT_3 |
|||
3 |
|||
SELECT COUNT(*) AS EXPECT_2 FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = 't1'; |
|||
EXPECT_2 |
|||
2 |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`f1` int(11) NOT NULL AUTO_INCREMENT, |
|||
`f2` int(11) DEFAULT NULL, |
|||
`f3` int(11) DEFAULT NULL, |
|||
PRIMARY KEY (`f1`), |
|||
UNIQUE KEY `i1` (`f2`) |
|||
) ENGINE=InnoDB AUTO_INCREMENT=2002 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci |
|||
SELECT COUNT(*) AS EXPECT_1001 FROM t1; |
|||
EXPECT_1001 |
|||
1001 |
|||
connection node_1; |
|||
SELECT COUNT(*) = 3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; |
|||
COUNT(*) = 3 |
|||
1 |
|||
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = 't1'; |
|||
COUNT(*) = 2 |
|||
1 |
|||
SELECT COUNT(*) = 2 FROM t1; |
|||
COUNT(*) = 2 |
|||
1 |
|||
SELECT COUNT(*) AS EXPECT_3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; |
|||
EXPECT_3 |
|||
3 |
|||
SELECT COUNT(*) AS EXPECT_2 FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = 't1'; |
|||
EXPECT_2 |
|||
2 |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`f1` int(11) NOT NULL AUTO_INCREMENT, |
|||
`f2` int(11) DEFAULT NULL, |
|||
`f3` int(11) DEFAULT NULL, |
|||
PRIMARY KEY (`f1`), |
|||
UNIQUE KEY `i1` (`f2`) |
|||
) ENGINE=InnoDB AUTO_INCREMENT=2047 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci |
|||
SELECT COUNT(*) AS EXPECT_1001 FROM t1; |
|||
EXPECT_1001 |
|||
1001 |
|||
DROP TABLE t1; |
@ -1,43 +1,81 @@ |
|||
--source include/galera_cluster.inc |
|||
--source include/have_innodb.inc |
|||
--source include/have_sequence.inc |
|||
--source include/have_debug.inc |
|||
--source include/have_debug_sync.inc |
|||
--source include/galera_have_debug_sync.inc |
|||
|
|||
# |
|||
# In this test, we simultaneously send two non-conflicting ALTER TABLE statements |
|||
# |
|||
--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1 |
|||
--connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2 |
|||
|
|||
--connection node_1 |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY AUTO_INCREMENT, f2 INTEGER); |
|||
INSERT INTO t1(f2) SELECT seq FROM seq_1_to_1000; |
|||
|
|||
--connection node_2 |
|||
--connection node_2a |
|||
SET SESSION wsrep_sync_wait=0; |
|||
--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE 'test/t1'; |
|||
--source include/wait_condition.inc |
|||
--send ALTER TABLE t1 ADD COLUMN f3 INTEGER; INSERT INTO t1 (f1, f2) VALUES (DEFAULT, 123); |
|||
--let $wait_condition = SELECT COUNT(*) = 1000 FROM t1; |
|||
--source include/wait_condition.inc |
|||
|
|||
--connection node_1a |
|||
--echo # Block the applier on node_1 and issue a ddl from node_2 |
|||
SET SESSION wsrep_sync_wait=0; |
|||
--let $galera_sync_point = apply_monitor_slave_enter_sync |
|||
--source include/galera_set_sync_point.inc |
|||
|
|||
--connection node_2 |
|||
--echo # DDL 1 |
|||
--send ALTER TABLE t1 ADD COLUMN f3 INTEGER; INSERT INTO t1 VALUES (NULL, 10000, 10000); |
|||
|
|||
--connection node_1a |
|||
--source include/galera_wait_sync_point.inc |
|||
--source include/galera_clear_sync_point.inc |
|||
|
|||
--echo # This will block on acquiring total order isolation |
|||
--connection node_1 |
|||
--echo # DDL 2 |
|||
--send CREATE UNIQUE INDEX i1 ON t1(f2); |
|||
|
|||
--connection node_1a |
|||
--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE 'acquiring total order%' or STATE LIKE 'Waiting for table metadata%' |
|||
--source include/wait_condition.inc |
|||
|
|||
--echo # Signal DDL 1 |
|||
--source include/galera_clear_sync_point.inc |
|||
--let $galera_sync_point = apply_monitor_slave_enter_sync |
|||
--source include/galera_signal_sync_point.inc |
|||
|
|||
--connection node_2 |
|||
--reap |
|||
INSERT INTO t1 (f1, f2) VALUES (DEFAULT, 234); |
|||
|
|||
--connection node_1 |
|||
--reap |
|||
|
|||
--connection node_2 |
|||
--let $wait_condition = SELECT COUNT(*) = 3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; |
|||
--source include/wait_condition.inc |
|||
--let $wait_condition = SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = 't1'; |
|||
--source include/wait_condition.inc |
|||
|
|||
SELECT COUNT(*) = 3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; |
|||
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = 't1'; |
|||
SELECT COUNT(*) = 2 FROM t1; |
|||
SELECT COUNT(*) AS EXPECT_3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; |
|||
SELECT COUNT(*) AS EXPECT_2 FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = 't1'; |
|||
SHOW CREATE TABLE t1; |
|||
SELECT COUNT(*) AS EXPECT_1001 FROM t1; |
|||
|
|||
--connection node_1 |
|||
--reap |
|||
|
|||
--let $wait_condition = SELECT COUNT(*) = 3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; |
|||
--source include/wait_condition.inc |
|||
--let $wait_condition = SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = 't1'; |
|||
--source include/wait_condition.inc |
|||
|
|||
SELECT COUNT(*) = 3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; |
|||
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = 't1'; |
|||
SELECT COUNT(*) = 2 FROM t1; |
|||
SELECT COUNT(*) AS EXPECT_3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; |
|||
SELECT COUNT(*) AS EXPECT_2 FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = 't1'; |
|||
SHOW CREATE TABLE t1; |
|||
SELECT COUNT(*) AS EXPECT_1001 FROM t1; |
|||
|
|||
DROP TABLE t1; |
Write
Preview
Loading…
Cancel
Save
Reference in new issue