mirror of
https://github.com/MariaDB/server.git
synced 2025-04-28 06:45:23 +03:00
Also fixes: MDEV-17741 Assertion `thd->Item_change_list::is_empty()' failed in mysql_parse after unsuccessful PS The problem was introduced by: commit f033fbd9f2366619c52186a1a902066495539141 Changed the test case for MDEV-15571 It was later fixed, but in 10.3 only: commit ce2cf855bfc0d9c8adb64f02a7b32ddd81f9948a MDEV-16043 Assertion thd->Item_change_list::is_empty() failed in mysql_parse upon SELECT from a view reading from a versioned table This patch is a backport of ce2cf855bfc0d9c8adb64f02a7b32ddd81f9948a to 10.2
67 lines
1.9 KiB
Plaintext
67 lines
1.9 KiB
Plaintext
#
|
|
# Tests related to PS returning errors rather than doing successfull execution
|
|
#
|
|
|
|
--echo #
|
|
--echo # MDEV-17741 Assertion `thd->Item_change_list::is_empty()' failed in mysql_parse after unsuccessful PS
|
|
--echo #
|
|
|
|
SET SQL_MODE= 'STRICT_ALL_TABLES';
|
|
CREATE TABLE t1 (a INT);
|
|
PREPARE stmt FROM "CREATE TABLE tmp AS SELECT * FROM t1 WHERE 'foo' && 0";
|
|
--error ER_TRUNCATED_WRONG_VALUE
|
|
EXECUTE stmt;
|
|
SELECT a FROM t1 GROUP BY NULL WITH ROLLUP;
|
|
DROP TABLE t1;
|
|
SET sql_mode=DEFAULT;
|
|
|
|
SET SQL_MODE= 'STRICT_ALL_TABLES';
|
|
CREATE TABLE t1 (a INT);
|
|
PREPARE stmt FROM "CREATE TABLE tmp AS SELECT * FROM t1 WHERE 'foo' && 0";
|
|
--error ER_TRUNCATED_WRONG_VALUE
|
|
EXECUTE stmt;
|
|
SET @a = REPLACE( @@global.optimizer_switch, '=on', '=off' ) ;
|
|
DROP TABLE t1;
|
|
SET sql_mode=DEFAULT;
|
|
|
|
|
|
--echo #
|
|
--echo # MDEV-17738 Server crashes in Item::delete_self on closing connection after unsuccessful PS
|
|
--echo #
|
|
|
|
SET SQL_MODE='STRICT_ALL_TABLES';
|
|
PREPARE stmt FROM "CREATE TABLE ps AS SELECT 1 FROM DUAL WHERE 'foo' && 0";
|
|
--error ER_TRUNCATED_WRONG_VALUE
|
|
EXECUTE stmt;
|
|
--source include/restart_mysqld.inc
|
|
SELECT 'All done';
|
|
SET SQL_MODE=DEFAULT;
|
|
|
|
SET SQL_MODE='STRICT_ALL_TABLES';
|
|
PREPARE stmt FROM "CREATE TABLE ps AS SELECT 1 FROM DUAL WHERE 'foo' && 0";
|
|
--error ER_TRUNCATED_WRONG_VALUE
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
SELECT 'All done';
|
|
SET SQL_MODE=DEFAULT;
|
|
|
|
SET SQL_MODE= 'STRICT_ALL_TABLES';
|
|
CREATE TABLE t1 (a INT);
|
|
PREPARE stmt FROM "CREATE TABLE tmp AS SELECT * FROM t1 WHERE 'foo' && 0";
|
|
--error ER_TRUNCATED_WRONG_VALUE
|
|
EXECUTE stmt;
|
|
SELECT a FROM t1 GROUP BY a;
|
|
SELECT * FROM t1;
|
|
DROP TABLE t1;
|
|
SET SQL_MODE=DEFAULT;
|
|
|
|
SET SQL_MODE= 'STRICT_ALL_TABLES';
|
|
CREATE TABLE t1 (a INT);
|
|
PREPARE stmt FROM "CREATE TABLE tmp AS SELECT * FROM t1 WHERE 'foo' && 0";
|
|
--error ER_TRUNCATED_WRONG_VALUE
|
|
EXECUTE stmt;
|
|
SELECT a FROM t1 GROUP BY a;
|
|
INSERT t1 SELECT * FROM ( SELECT * FROM t1 ) sq;
|
|
DROP TABLE t1;
|
|
SET SQL_MODE=DEFAULT;
|