SET sql_mode=ORACLE; --echo # --echo # MDEV-15620 Crash when using "SET @@NEW.a=expr" inside a trigger --echo # CREATE TABLE t1 (a INT); --error ER_UNKNOWN_STRUCTURED_VARIABLE CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET @@NEW.a=0; DROP TABLE t1; --echo # --echo # MDEV-15615 Unexpected syntax error instead of "Unknown system variable" inside an SP --echo # DELIMITER $$; --error ER_UNKNOWN_SYSTEM_VARIABLE DECLARE a INT; BEGIN SET GLOBAL a=10; END; $$ DELIMITER ;$$ --echo # --echo # MDEV-16202 Latest changes made erroneously some keywords reserved in sql_mode=ORACLE --echo # DELIMITER $$; CREATE PROCEDURE p1(name VARCHAR(64), pattern TEXT) AS query TEXT DEFAULT REPLACE(pattern, 'name', name); BEGIN SELECT query AS ''; EXECUTE IMMEDIATE query; EXCEPTION WHEN OTHERS THEN BEGIN SHOW ERRORS; END; END; $$ CREATE PROCEDURE p2(name VARCHAR(64)) AS BEGIN CALL p1(name, 'DECLARE name INT; BEGIN name:=10; SELECT name; END'); EXECUTE IMMEDIATE REPLACE('CREATE TABLE t1 (name INT)', 'name', name); CALL p1(name, 'SELECT name FROM t1'); CALL p1(name, 'SELECT name ''alias'' FROM t1'); CALL p1(name, 'SELECT name()'); CALL p1(name, 'SELECT name.name()'); CALL p1(name, 'SELECT name DATE FROM t1'); CALL p1(name, 'SELECT name HISTORY FROM t1'); CALL p1(name, 'SELECT name NEXT FROM t1'); CALL p1(name, 'SELECT name PERIOD FROM t1'); CALL p1(name, 'SELECT name PREVIOUS FROM t1'); CALL p1(name, 'SELECT name SYSTEM FROM t1'); CALL p1(name, 'SELECT name SYSTEM_TIME FROM t1'); CALL p1(name, 'SELECT name TIME FROM t1'); CALL p1(name, 'SELECT name TIMESTAMP FROM t1'); CALL p1(name, 'SELECT name TRANSACTION FROM t1'); CALL p1(name, 'SELECT name VALUE FROM t1'); CALL p1(name, 'SELECT name VERSIONING FROM t1'); CALL p1(name, 'SELECT name WITHOUT FROM t1'); DROP TABLE t1; END; $$ DELIMITER ;$$ --disable_column_names CALL p2('date'); CALL p2('history'); CALL p2('next'); CALL p2('period'); CALL p2('previous'); CALL p2('system'); CALL p2('system_time'); CALL p2('time'); CALL p2('timestamp'); CALL p2('transaction'); CALL p2('value'); CALL p2('versioning'); CALL p2('without'); --enable_column_names DROP PROCEDURE p2; DROP PROCEDURE p1;