74
74
SET @@global.sql_mode= @old_sql_mode;
75
75
SET @@session.binlog_format=@old_binlog_format;
79
--echo # Test for Bug#12601974 - STORED PROCEDURE SQL_MODE=NO_BACKSLASH_ESCAPES
80
--echo # IGNORED AND BREAKS REPLICATION
84
DROP DATABASE IF EXISTS mysqltest_db;
85
DROP TABLE IF EXISTS test_table;
88
CREATE DATABASE mysqltest_db;
90
CREATE TABLE test_table (c1 CHAR(50));
92
SET @org_mode=@@sql_mode;
96
CREATE PROCEDURE proc_without_sql_mode (IN param1 CHAR(50), IN param2 CHAR(50))
98
DECLARE var1 CHAR(50) DEFAULT param1;
99
DECLARE var2 CHAR(50) DEFAULT param2;
100
DECLARE var3 CHAR(50) DEFAULT 'abcd\bef';
101
DECLARE var4 CHAR(50) DEFAULT 'abcd\nef';
102
DECLARE var5 CHAR(50) DEFAULT 'abcd\ref';
103
DECLARE var6 CHAR(50) DEFAULT 'abcd\tef';
104
DECLARE var7 CHAR(50) DEFAULT 'abcd\\ef';
105
DECLARE var8 CHAR(50) DEFAULT 'abcd\%ef';
106
DECLARE var9 CHAR(50) DEFAULT 'abcd\_ef';
108
INSERT INTO test_table VALUES (var1);
109
INSERT INTO test_table VALUES (var2);
110
INSERT INTO test_table VALUES (var3);
111
INSERT INTO test_table VALUES (var4);
112
INSERT INTO test_table VALUES (var5);
113
INSERT INTO test_table VALUES (var6);
114
INSERT INTO test_table VALUES (var7);
115
INSERT INTO test_table VALUES (var8);
116
INSERT INTO test_table VALUES (var9);
120
SET @@sql_mode='NO_BACKSLASH_ESCAPES'$
121
CREATE PROCEDURE proc_with_sql_mode (IN param1 CHAR(50), IN param2 CHAR(50))
123
DECLARE var1 CHAR(50) DEFAULT param1;
124
DECLARE var2 CHAR(50) DEFAULT param2;
125
DECLARE var3 CHAR(50) DEFAULT 'wxyz\bef';
126
DECLARE var4 CHAR(50) DEFAULT 'wxyz\nef';
127
DECLARE var5 CHAR(50) DEFAULT 'wxyz\ref';
128
DECLARE var6 CHAR(50) DEFAULT 'wxyz\tef';
129
DECLARE var7 CHAR(50) DEFAULT 'wxyz\\ef';
130
DECLARE var8 CHAR(50) DEFAULT 'wxyz\%ef';
131
DECLARE var9 CHAR(50) DEFAULT 'wxyz\_ef';
133
INSERT INTO test_table VALUES (var1);
134
INSERT INTO test_table VALUES (var2);
135
INSERT INTO test_table VALUES (var3);
136
INSERT INTO test_table VALUES (var4);
137
INSERT INTO test_table VALUES (var5);
138
INSERT INTO test_table VALUES (var6);
139
INSERT INTO test_table VALUES (var7);
140
INSERT INTO test_table VALUES (var8);
141
INSERT INTO test_table VALUES (var9);
147
CALL proc_without_sql_mode('abcd\'ef', 'abcd\"ef');
148
CALL proc_with_sql_mode('wxyz\'ef', 'wxyz\"ef');
149
SELECT * FROM test_table;
151
let $MYSQLD_DATADIR= `select @@datadir`;
152
--exec $MYSQL_BINLOG --force-if-open -d mysqltest_db $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug12601974.binlog
154
--echo "Dropping table test_table"
155
DROP TABLE test_table;
157
--exec $MYSQL -e "source $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug12601974.binlog"
159
--echo #"test_table" content after replaying the binlog
160
SELECT * FROM test_table;
163
--remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug12601974.binlog
164
DROP DATABASE mysqltest_db;
165
SET @@sql_mode= @org_mode;
169
--echo #End of Test for Bug#12601974