diff options
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/main/create_replace_tmp.result | 4 | ||||
-rw-r--r-- | mysql-test/main/create_replace_tmp.test | 4 | ||||
-rw-r--r-- | mysql-test/main/cte_recursive_not_embedded.result | 23 | ||||
-rw-r--r-- | mysql-test/main/cte_recursive_not_embedded.test | 42 | ||||
-rw-r--r-- | mysql-test/suite/rpl/r/rpl_15867.result | 9 | ||||
-rw-r--r-- | mysql-test/suite/rpl/t/rpl_15867.test | 11 |
6 files changed, 93 insertions, 0 deletions
diff --git a/mysql-test/main/create_replace_tmp.result b/mysql-test/main/create_replace_tmp.result new file mode 100644 index 00000000000..0239f4d4817 --- /dev/null +++ b/mysql-test/main/create_replace_tmp.result @@ -0,0 +1,4 @@ +CREATE TEMPORARY TABLE t (i INT); +CREATE or replace TABLE t AS SELECT * FROM t; +DROP TEMPORARY TABLE t; +DROP TABLE t; diff --git a/mysql-test/main/create_replace_tmp.test b/mysql-test/main/create_replace_tmp.test new file mode 100644 index 00000000000..0239f4d4817 --- /dev/null +++ b/mysql-test/main/create_replace_tmp.test @@ -0,0 +1,4 @@ +CREATE TEMPORARY TABLE t (i INT); +CREATE or replace TABLE t AS SELECT * FROM t; +DROP TEMPORARY TABLE t; +DROP TABLE t; diff --git a/mysql-test/main/cte_recursive_not_embedded.result b/mysql-test/main/cte_recursive_not_embedded.result new file mode 100644 index 00000000000..202864be159 --- /dev/null +++ b/mysql-test/main/cte_recursive_not_embedded.result @@ -0,0 +1,23 @@ +# +# MDEV-15151: function with recursive CTE using no base tables +# (duplicate of MDEV-16661) +# +connection default; +CREATE TABLE t1 (id int KEY); +INSERT INTO t1 VALUES (0), (1),(2); +CREATE OR REPLACE FUNCTION func() RETURNS int +RETURN +( +WITH recursive cte AS +(SELECT 1 a UNION SELECT cte.* FROM cte natural join t1) +SELECT * FROM cte limit 1 +); +connect con1,localhost,root,,test; +SELECT func(); +connect con2,localhost,root,,test; +disconnect con2; +connection con1; +disconnect con1; +connection default; +DROP FUNCTION func; +DROP TABLE t1; diff --git a/mysql-test/main/cte_recursive_not_embedded.test b/mysql-test/main/cte_recursive_not_embedded.test new file mode 100644 index 00000000000..4dadf400681 --- /dev/null +++ b/mysql-test/main/cte_recursive_not_embedded.test @@ -0,0 +1,42 @@ +--source include/not_embedded.inc + +--echo # +--echo # MDEV-15151: function with recursive CTE using no base tables +--echo # (duplicate of MDEV-16661) +--echo # + +--connection default + +CREATE TABLE t1 (id int KEY); +INSERT INTO t1 VALUES (0), (1),(2); + +CREATE OR REPLACE FUNCTION func() RETURNS int +RETURN +( + WITH recursive cte AS + (SELECT 1 a UNION SELECT cte.* FROM cte natural join t1) + SELECT * FROM cte limit 1 +); + +--connect (con1,localhost,root,,test) + +--let $conid= `SELECT CONNECTION_ID()` +--send SELECT func() + +--connect (con2,localhost,root,,test) +--disable_query_log +--eval KILL QUERY $conid +--enable_query_log +--disconnect con2 + +--disable_result_log +--connection con1 +--error 0,ER_QUERY_INTERRUPTED +--reap +--disconnect con1 +--enable_result_log + +--connection default + +DROP FUNCTION func; +DROP TABLE t1; diff --git a/mysql-test/suite/rpl/r/rpl_15867.result b/mysql-test/suite/rpl/r/rpl_15867.result new file mode 100644 index 00000000000..9cb63266a29 --- /dev/null +++ b/mysql-test/suite/rpl/r/rpl_15867.result @@ -0,0 +1,9 @@ +include/master-slave.inc +[connection master] +CREATE TEMPORARY TABLE t (i INT); +CREATE TABLE t AS SELECT * FROM t; +connection slave; +connection master; +DROP TEMPORARY TABLE t; +DROP TABLE t; +include/rpl_end.inc diff --git a/mysql-test/suite/rpl/t/rpl_15867.test b/mysql-test/suite/rpl/t/rpl_15867.test new file mode 100644 index 00000000000..6de39041bb1 --- /dev/null +++ b/mysql-test/suite/rpl/t/rpl_15867.test @@ -0,0 +1,11 @@ +--source include/master-slave.inc +CREATE TEMPORARY TABLE t (i INT); +CREATE TABLE t AS SELECT * FROM t; + +--sync_slave_with_master + +# Cleanup +--connection master +DROP TEMPORARY TABLE t; +DROP TABLE t; +--source include/rpl_end.inc |