mirror of
https://github.com/MariaDB/server.git
synced 2025-02-09 23:24:11 +01:00
153 lines
3.6 KiB
Text
153 lines
3.6 KiB
Text
SET @old_sql_mode= @@global.sql_mode;
|
||
SET @old_binlog_format=@@session.binlog_format;
|
||
SET SESSION sql_mode=8;
|
||
Initialization
|
||
RESET MASTER;
|
||
CREATE TABLE t1 (id INT);
|
||
CREATE PROCEDURE testProc() SELECT * FROM t1;
|
||
CREATE VIEW testView as SELECT * from t1;
|
||
CREATE FUNCTION testFunc()
|
||
RETURNS INT
|
||
BEGIN
|
||
return 1;
|
||
END;|
|
||
CREATE TRIGGER testTrig BEFORE INSERT ON t1
|
||
FOR EACH ROW BEGIN
|
||
UPDATE t1 SET id = id +1;
|
||
END;|
|
||
CREATE EVENT testEvent ON SCHEDULE
|
||
EVERY 1 DAY
|
||
DO
|
||
BEGIN
|
||
UPDATE t1 SET id = id +1;
|
||
END;|
|
||
Warnings:
|
||
Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it.
|
||
Check Result
|
||
select
|
||
(@a:=load_file("MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug39526.binlog"))
|
||
is not null;
|
||
(@a:=load_file("MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug39526.binlog"))
|
||
is not null
|
||
1
|
||
*** String sql_mode=0 is found: 0 ***
|
||
Clean Up
|
||
DROP PROCEDURE testProc;
|
||
DROP FUNCTION testFunc;
|
||
DROP TRIGGER testTrig;
|
||
DROP EVENT testEvent;
|
||
DROP VIEW testView;
|
||
DROP TABLE t1;
|
||
SET @@global.sql_mode= @old_sql_mode;
|
||
SET @@session.binlog_format=@old_binlog_format;
|
||
|
||
#
|
||
# Test for Bug#12601974 - STORED PROCEDURE SQL_MODE=NO_BACKSLASH_ESCAPES
|
||
# IGNORED AND BREAKS REPLICATION
|
||
#
|
||
DROP DATABASE IF EXISTS mysqltest_db;
|
||
DROP TABLE IF EXISTS test_table;
|
||
CREATE DATABASE mysqltest_db;
|
||
USE mysqltest_db;
|
||
CREATE TABLE test_table (c1 CHAR(50));
|
||
SET @org_mode=@@sql_mode;
|
||
SET @@sql_mode='';
|
||
CREATE PROCEDURE proc_without_sql_mode (IN param1 CHAR(50), IN param2 CHAR(50))
|
||
BEGIN
|
||
DECLARE var1 CHAR(50) DEFAULT param1;
|
||
DECLARE var2 CHAR(50) DEFAULT param2;
|
||
DECLARE var3 CHAR(50) DEFAULT 'abcd\bef';
|
||
DECLARE var4 CHAR(50) DEFAULT 'abcd\nef';
|
||
DECLARE var5 CHAR(50) DEFAULT 'abcd\ref';
|
||
DECLARE var6 CHAR(50) DEFAULT 'abcd\tef';
|
||
DECLARE var7 CHAR(50) DEFAULT 'abcd\\ef';
|
||
DECLARE var8 CHAR(50) DEFAULT 'abcd\%ef';
|
||
DECLARE var9 CHAR(50) DEFAULT 'abcd\_ef';
|
||
INSERT INTO test_table VALUES (var1);
|
||
INSERT INTO test_table VALUES (var2);
|
||
INSERT INTO test_table VALUES (var3);
|
||
INSERT INTO test_table VALUES (var4);
|
||
INSERT INTO test_table VALUES (var5);
|
||
INSERT INTO test_table VALUES (var6);
|
||
INSERT INTO test_table VALUES (var7);
|
||
INSERT INTO test_table VALUES (var8);
|
||
INSERT INTO test_table VALUES (var9);
|
||
END
|
||
$
|
||
SET @@sql_mode='NO_BACKSLASH_ESCAPES'$
|
||
CREATE PROCEDURE proc_with_sql_mode (IN param1 CHAR(50), IN param2 CHAR(50))
|
||
BEGIN
|
||
DECLARE var1 CHAR(50) DEFAULT param1;
|
||
DECLARE var2 CHAR(50) DEFAULT param2;
|
||
DECLARE var3 CHAR(50) DEFAULT 'wxyz\bef';
|
||
DECLARE var4 CHAR(50) DEFAULT 'wxyz\nef';
|
||
DECLARE var5 CHAR(50) DEFAULT 'wxyz\ref';
|
||
DECLARE var6 CHAR(50) DEFAULT 'wxyz\tef';
|
||
DECLARE var7 CHAR(50) DEFAULT 'wxyz\\ef';
|
||
DECLARE var8 CHAR(50) DEFAULT 'wxyz\%ef';
|
||
DECLARE var9 CHAR(50) DEFAULT 'wxyz\_ef';
|
||
INSERT INTO test_table VALUES (var1);
|
||
INSERT INTO test_table VALUES (var2);
|
||
INSERT INTO test_table VALUES (var3);
|
||
INSERT INTO test_table VALUES (var4);
|
||
INSERT INTO test_table VALUES (var5);
|
||
INSERT INTO test_table VALUES (var6);
|
||
INSERT INTO test_table VALUES (var7);
|
||
INSERT INTO test_table VALUES (var8);
|
||
INSERT INTO test_table VALUES (var9);
|
||
END
|
||
$
|
||
SET @@sql_mode='';
|
||
CALL proc_without_sql_mode('abcd\'ef', 'abcd\"ef');
|
||
CALL proc_with_sql_mode('wxyz\'ef', 'wxyz\"ef');
|
||
SELECT * FROM test_table;
|
||
c1
|
||
abcd'ef
|
||
abcd"ef
|
||
abcdef
|
||
abcd
|
||
ef
|
||
abcd
|
||
ef
|
||
abcd ef
|
||
abcd\ef
|
||
abcd\%ef
|
||
abcd\_ef
|
||
wxyz'ef
|
||
wxyz"ef
|
||
wxyz\bef
|
||
wxyz\nef
|
||
wxyz\ref
|
||
wxyz\tef
|
||
wxyz\\ef
|
||
wxyz\%ef
|
||
wxyz\_ef
|
||
"Dropping table test_table"
|
||
DROP TABLE test_table;
|
||
#"test_table" content after replaying the binlog
|
||
SELECT * FROM test_table;
|
||
c1
|
||
abcd'ef
|
||
abcd"ef
|
||
abcdef
|
||
abcd
|
||
ef
|
||
abcd
|
||
ef
|
||
abcd ef
|
||
abcd\ef
|
||
abcd\%ef
|
||
abcd\_ef
|
||
wxyz'ef
|
||
wxyz"ef
|
||
wxyz\bef
|
||
wxyz\nef
|
||
wxyz\ref
|
||
wxyz\tef
|
||
wxyz\\ef
|
||
wxyz\%ef
|
||
wxyz\_ef
|
||
#Clean up
|
||
DROP DATABASE mysqltest_db;
|
||
SET @@sql_mode= @org_mode;
|
||
use test;
|
||
|
||
#End of Test for Bug#12601974
|