~james-page/ubuntu/precise/mysql-5.5/misc-fixes

« back to all changes in this revision

Viewing changes to mysql-test/t/sql_mode.test

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2012-06-11 07:34:33 UTC
  • mfrom: (1.1.6)
  • Revision ID: package-import@ubuntu.com-20120611073433-l9za2ni4ipp848y3
Tags: 5.5.24-0ubuntu0.12.04.1
* SECURITY UPDATE: Update to 5.5.24 to fix security issues (LP: #1011371)
  - http://dev.mysql.com/doc/refman/5.5/en/news-5-5-24.html

Show diffs side-by-side

added added

removed removed

Lines of Context:
359
359
# Cleanup
360
360
DROP TABLE t1;
361
361
DROP TABLE t2;
 
362
 
 
363
 
 
364
--echo 
 
365
--echo #
 
366
--echo # Test for Bug#12601974 - STORED PROCEDURE SQL_MODE=NO_BACKSLASH_ESCAPES
 
367
--echo # IGNORED AND BREAKS REPLICATION
 
368
--echo #
 
369
 
 
370
--disable_warnings
 
371
DROP TABLE IF EXISTS test_table;
 
372
DROP FUNCTION IF EXISTS test_function;
 
373
--enable_warnings
 
374
 
 
375
CREATE TABLE test_table (c1 CHAR(50));
 
376
 
 
377
SET @org_mode=@@sql_mode;
 
378
 
 
379
SET @@sql_mode='';
 
380
 
 
381
PREPARE insert_stmt FROM 'INSERT INTO test_table VALUES (?)';
 
382
PREPARE update_stmt FROM 'UPDATE test_table SET c1= ? WHERE c1= ?';
 
383
DELIMITER $;
 
384
CREATE FUNCTION test_function(var CHAR(50)) RETURNS CHAR(50)
 
385
BEGIN
 
386
  DECLARE char_val CHAR(50);
 
387
  SELECT c1 INTO char_val FROM test_table WHERE c1=var;
 
388
  RETURN char_val;
 
389
END
 
390
$
 
391
DELIMITER ;$
 
392
 
 
393
SET @var1='abcd\'ef';
 
394
SET @var2='abcd\"ef';
 
395
SET @var3='abcd\bef';
 
396
SET @var4='abcd\nef';
 
397
SET @var5='abcd\ref';
 
398
SET @var6='abcd\tef';
 
399
SET @var7='abcd\\ef';
 
400
SET @var8='abcd\%ef';
 
401
SET @var9='abcd\_ef';
 
402
 
 
403
SET @to_var1='wxyz\'ef';
 
404
SET @to_var2='wxyz\"ef';
 
405
SET @to_var3='wxyz\bef';
 
406
SET @to_var4='wxyz\nef';
 
407
SET @to_var5='wxyz\ref';
 
408
SET @to_var6='wxyz\tef';
 
409
SET @to_var7='wxyz\\ef';
 
410
SET @to_var8='wxyz\%ef';
 
411
SET @to_var9='wxyz\_ef';
 
412
 
 
413
--echo # STRING LILTERAL WITH BACKSLASH IN PREPARE STATEMENT
 
414
EXECUTE insert_stmt USING @var1;
 
415
EXECUTE insert_stmt USING @var2;
 
416
EXECUTE insert_stmt USING @var3;
 
417
EXECUTE insert_stmt USING @var4;
 
418
EXECUTE insert_stmt USING @var5;
 
419
EXECUTE insert_stmt USING @var6;
 
420
EXECUTE insert_stmt USING @var7;
 
421
EXECUTE insert_stmt USING @var8;
 
422
EXECUTE insert_stmt USING @var9;
 
423
 
 
424
SELECT * FROM test_table;
 
425
 
 
426
EXECUTE update_stmt USING @to_var1, @var1;
 
427
EXECUTE update_stmt USING @to_var2, @var2;
 
428
EXECUTE update_stmt USING @to_var3, @var3;
 
429
EXECUTE update_stmt USING @to_var4, @var4;
 
430
EXECUTE update_stmt USING @to_var5, @var5;
 
431
EXECUTE update_stmt USING @to_var6, @var6;
 
432
EXECUTE update_stmt USING @to_var7, @var7;
 
433
EXECUTE update_stmt USING @to_var8, @var8;
 
434
EXECUTE update_stmt USING @to_var9, @var9;
 
435
 
 
436
SELECT * FROM test_table;
 
437
 
 
438
--echo 
 
439
--echo # END OF CASE - STRING LILTERAL WITH BACKSLASH IN PREPARE STATEMENT
 
440
 
 
441
--echo # STRING LILTERAL WITH BACKSLASH IN FUNCTION RETURNING STRING
 
442
select test_function(@to_var1);
 
443
SELECT test_function(@to_var2);
 
444
SELECT test_function(@to_var3);
 
445
SELECT test_function(@to_var4);
 
446
SELECT test_function(@to_var5);
 
447
SELECT test_function(@to_var6);
 
448
SELECT test_function(@to_var7);
 
449
SELECT test_function(@to_var8);
 
450
SELECT test_function(@to_var9);
 
451
 
 
452
--echo 
 
453
--echo # END OF CASE - STRING LILTERAL WITH BACKSLASH IN FUNCTION RETURNING STRING
 
454
DELETE FROM test_table;
 
455
DROP FUNCTION test_function;
 
456
 
 
457
SET @@sql_mode='NO_BACKSLASH_ESCAPES';
 
458
DELIMITER $;
 
459
CREATE FUNCTION test_function(var CHAR(50)) RETURNS CHAR(50)
 
460
BEGIN
 
461
  DECLARE char_val CHAR(50);
 
462
  SELECT c1 INTO char_val FROM test_table WHERE c1=var;
 
463
  RETURN char_val;
 
464
END
 
465
$
 
466
DELIMITER ;$
 
467
 
 
468
--echo # STRING LILTERAL WITH BACKSLASH IN PREPARE STATEMENT
 
469
EXECUTE insert_stmt USING @var1;
 
470
EXECUTE insert_stmt USING @var2;
 
471
EXECUTE insert_stmt USING @var3;
 
472
EXECUTE insert_stmt USING @var4;
 
473
EXECUTE insert_stmt USING @var5;
 
474
EXECUTE insert_stmt USING @var6;
 
475
EXECUTE insert_stmt USING @var7;
 
476
EXECUTE insert_stmt USING @var8;
 
477
EXECUTE insert_stmt USING @var9;
 
478
 
 
479
SELECT * FROM test_table;
 
480
 
 
481
EXECUTE update_stmt USING @to_var1, @var1;
 
482
EXECUTE update_stmt USING @to_var2, @var2;
 
483
EXECUTE update_stmt USING @to_var3, @var3;
 
484
EXECUTE update_stmt USING @to_var4, @var4;
 
485
EXECUTE update_stmt USING @to_var5, @var5;
 
486
EXECUTE update_stmt USING @to_var6, @var6;
 
487
EXECUTE update_stmt USING @to_var7, @var7;
 
488
EXECUTE update_stmt USING @to_var8, @var8;
 
489
EXECUTE update_stmt USING @to_var9, @var9;
 
490
 
 
491
SELECT * FROM test_table;
 
492
 
 
493
--echo 
 
494
--echo # END OF CASE - STRING LILTERAL WITH BACKSLASH IN PREPARE STATEMENT
 
495
 
 
496
--echo # STRING LILTERAL WITH BACKSLASH IN FUNCTION RETURNING STRING
 
497
select test_function(@to_var1);
 
498
SELECT test_function(@to_var2);
 
499
SELECT test_function(@to_var3);
 
500
SELECT test_function(@to_var4);
 
501
SELECT test_function(@to_var5);
 
502
SELECT test_function(@to_var6);
 
503
SELECT test_function(@to_var7);
 
504
SELECT test_function(@to_var8);
 
505
SELECT test_function(@to_var9);
 
506
 
 
507
--echo 
 
508
--echo # END OF CASE - STRING LILTERAL WITH BACKSLASH IN FUNCTION RETURNING STRING
 
509
 
 
510
DROP TABLE test_table;
 
511
DROP FUNCTION test_function;
 
512
SET @@sql_mode= @org_mode;
 
513
 
 
514
--echo 
 
515
--echo #End of Test for Bug#12601974