mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-7673: CREATE TABLE SELECT fails on Galera cluster
Enable execution of CREATE TABLE SELECT in total order isolation. Added a test case. Contributed by : Andrew W Elble
This commit is contained in:
@ -20,4 +20,9 @@ i
|
|||||||
1
|
1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SET @@GLOBAL.wsrep_forced_binlog_format=@wsrep_forced_binlog_format_saved;
|
SET @@GLOBAL.wsrep_forced_binlog_format=@wsrep_forced_binlog_format_saved;
|
||||||
|
#
|
||||||
|
# MDEV-7673: CREATE TABLE SELECT fails on Galera cluster
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (i INT) ENGINE=INNODB DEFAULT CHARSET=utf8 SELECT 1 as i;
|
||||||
|
DROP TABLE t1;
|
||||||
# End of tests
|
# End of tests
|
||||||
|
@ -22,5 +22,13 @@ SELECT * FROM t1_temp;
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SET @@GLOBAL.wsrep_forced_binlog_format=@wsrep_forced_binlog_format_saved;
|
SET @@GLOBAL.wsrep_forced_binlog_format=@wsrep_forced_binlog_format_saved;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-7673: CREATE TABLE SELECT fails on Galera cluster
|
||||||
|
--echo #
|
||||||
|
CREATE TABLE t1 (i INT) ENGINE=INNODB DEFAULT CHARSET=utf8 SELECT 1 as i;
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo # End of tests
|
--echo # End of tests
|
||||||
|
|
||||||
|
@ -3284,6 +3284,14 @@ case SQLCOM_PREPARE:
|
|||||||
/* Store reference to table in case of LOCK TABLES */
|
/* Store reference to table in case of LOCK TABLES */
|
||||||
create_info.table= create_table->table;
|
create_info.table= create_table->table;
|
||||||
|
|
||||||
|
#ifdef WITH_WSREP
|
||||||
|
if (WSREP(thd) &&
|
||||||
|
(!thd->is_current_stmt_binlog_format_row() ||
|
||||||
|
!(create_info.tmp_table())))
|
||||||
|
WSREP_TO_ISOLATION_BEGIN(create_table->db, create_table->table_name,
|
||||||
|
NULL)
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
select_create is currently not re-execution friendly and
|
select_create is currently not re-execution friendly and
|
||||||
needs to be created for every execution of a PS/SP.
|
needs to be created for every execution of a PS/SP.
|
||||||
|
Reference in New Issue
Block a user