533
533
Host Db User Table_name Column_name Timestamp Column_priv
538
# Test for Bug#12601974 - STORED PROCEDURE SQL_MODE=NO_BACKSLASH_ESCAPES
539
# IGNORED AND BREAKS REPLICATION
541
DROP TABLE IF EXISTS test_table;
542
DROP FUNCTION IF EXISTS test_function;
543
CREATE TABLE test_table (c1 CHAR(50));
544
SET @org_mode=@@sql_mode;
546
PREPARE insert_stmt FROM 'INSERT INTO test_table VALUES (?)';
547
PREPARE update_stmt FROM 'UPDATE test_table SET c1= ? WHERE c1= ?';
548
CREATE FUNCTION test_function(var CHAR(50)) RETURNS CHAR(50)
550
DECLARE char_val CHAR(50);
551
SELECT c1 INTO char_val FROM test_table WHERE c1=var;
555
SET @var1='abcd\'ef';
556
SET @var2='abcd\"ef';
557
SET @var3='abcd\bef';
558
SET @var4='abcd\nef';
559
SET @var5='abcd\ref';
560
SET @var6='abcd\tef';
561
SET @var7='abcd\\ef';
562
SET @var8='abcd\%ef';
563
SET @var9='abcd\_ef';
564
SET @to_var1='wxyz\'ef';
565
SET @to_var2='wxyz\"ef';
566
SET @to_var3='wxyz\bef';
567
SET @to_var4='wxyz\nef';
568
SET @to_var5='wxyz\ref';
569
SET @to_var6='wxyz\tef';
570
SET @to_var7='wxyz\\ef';
571
SET @to_var8='wxyz\%ef';
572
SET @to_var9='wxyz\_ef';
573
# STRING LILTERAL WITH BACKSLASH IN PREPARE STATEMENT
574
EXECUTE insert_stmt USING @var1;
575
EXECUTE insert_stmt USING @var2;
576
EXECUTE insert_stmt USING @var3;
577
EXECUTE insert_stmt USING @var4;
578
EXECUTE insert_stmt USING @var5;
579
EXECUTE insert_stmt USING @var6;
580
EXECUTE insert_stmt USING @var7;
581
EXECUTE insert_stmt USING @var8;
582
EXECUTE insert_stmt USING @var9;
583
SELECT * FROM test_table;
595
EXECUTE update_stmt USING @to_var1, @var1;
596
EXECUTE update_stmt USING @to_var2, @var2;
597
EXECUTE update_stmt USING @to_var3, @var3;
598
EXECUTE update_stmt USING @to_var4, @var4;
599
EXECUTE update_stmt USING @to_var5, @var5;
600
EXECUTE update_stmt USING @to_var6, @var6;
601
EXECUTE update_stmt USING @to_var7, @var7;
602
EXECUTE update_stmt USING @to_var8, @var8;
603
EXECUTE update_stmt USING @to_var9, @var9;
604
SELECT * FROM test_table;
617
# END OF CASE - STRING LILTERAL WITH BACKSLASH IN PREPARE STATEMENT
618
# STRING LILTERAL WITH BACKSLASH IN FUNCTION RETURNING STRING
619
select test_function(@to_var1);
620
test_function(@to_var1)
622
SELECT test_function(@to_var2);
623
test_function(@to_var2)
625
SELECT test_function(@to_var3);
626
test_function(@to_var3)
628
SELECT test_function(@to_var4);
629
test_function(@to_var4)
632
SELECT test_function(@to_var5);
633
test_function(@to_var5)
635
SELECT test_function(@to_var6);
636
test_function(@to_var6)
638
SELECT test_function(@to_var7);
639
test_function(@to_var7)
641
SELECT test_function(@to_var8);
642
test_function(@to_var8)
644
SELECT test_function(@to_var9);
645
test_function(@to_var9)
648
# END OF CASE - STRING LILTERAL WITH BACKSLASH IN FUNCTION RETURNING STRING
649
DELETE FROM test_table;
650
DROP FUNCTION test_function;
651
SET @@sql_mode='NO_BACKSLASH_ESCAPES';
652
CREATE FUNCTION test_function(var CHAR(50)) RETURNS CHAR(50)
654
DECLARE char_val CHAR(50);
655
SELECT c1 INTO char_val FROM test_table WHERE c1=var;
659
# STRING LILTERAL WITH BACKSLASH IN PREPARE STATEMENT
660
EXECUTE insert_stmt USING @var1;
661
EXECUTE insert_stmt USING @var2;
662
EXECUTE insert_stmt USING @var3;
663
EXECUTE insert_stmt USING @var4;
664
EXECUTE insert_stmt USING @var5;
665
EXECUTE insert_stmt USING @var6;
666
EXECUTE insert_stmt USING @var7;
667
EXECUTE insert_stmt USING @var8;
668
EXECUTE insert_stmt USING @var9;
669
SELECT * FROM test_table;
681
EXECUTE update_stmt USING @to_var1, @var1;
682
EXECUTE update_stmt USING @to_var2, @var2;
683
EXECUTE update_stmt USING @to_var3, @var3;
684
EXECUTE update_stmt USING @to_var4, @var4;
685
EXECUTE update_stmt USING @to_var5, @var5;
686
EXECUTE update_stmt USING @to_var6, @var6;
687
EXECUTE update_stmt USING @to_var7, @var7;
688
EXECUTE update_stmt USING @to_var8, @var8;
689
EXECUTE update_stmt USING @to_var9, @var9;
690
SELECT * FROM test_table;
703
# END OF CASE - STRING LILTERAL WITH BACKSLASH IN PREPARE STATEMENT
704
# STRING LILTERAL WITH BACKSLASH IN FUNCTION RETURNING STRING
705
select test_function(@to_var1);
706
test_function(@to_var1)
708
SELECT test_function(@to_var2);
709
test_function(@to_var2)
711
SELECT test_function(@to_var3);
712
test_function(@to_var3)
714
SELECT test_function(@to_var4);
715
test_function(@to_var4)
718
SELECT test_function(@to_var5);
719
test_function(@to_var5)
721
SELECT test_function(@to_var6);
722
test_function(@to_var6)
724
SELECT test_function(@to_var7);
725
test_function(@to_var7)
727
SELECT test_function(@to_var8);
728
test_function(@to_var8)
730
SELECT test_function(@to_var9);
731
test_function(@to_var9)
734
# END OF CASE - STRING LILTERAL WITH BACKSLASH IN FUNCTION RETURNING STRING
735
DROP TABLE test_table;
736
DROP FUNCTION test_function;
737
SET @@sql_mode= @org_mode;
739
#End of Test for Bug#12601974