Skip to content
This repository was archived by the owner on Aug 28, 2024. It is now read-only.

Commit 08144a0

Browse files
committed
Test the actual sql_mode use case with list_add/list_drop tests
1 parent 6bc9538 commit 08144a0

File tree

4 files changed

+60
-0
lines changed

4 files changed

+60
-0
lines changed

mysql-test/suite/sysschema/r/fn_list_add.result

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,17 @@ sys.list_add('bar, ', 'foo')
1212
bar,foo
1313
SELECT sys.list_add('foo', NULL);
1414
ERROR 02200: Function sys.list_add: in_add_value input variable should not be NULL
15+
SET @sqlmode := @@sql_mode;
16+
SELECT @@sql_mode;
17+
@@sql_mode
18+
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
19+
SET SESSION sql_mode = sys.list_add(@@sql_mode, 'ANSI_QUOTES');
20+
SELECT @@sql_mode;
21+
@@sql_mode
22+
ANSI_QUOTES,ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
23+
SET SESSION sql_mode = @sqlmode;
24+
SET @sqlmode := NULL;
25+
SET @input := REPEAT('a', 4194304);
26+
SELECT sys.list_add(@input, 'foo');
27+
ERROR 22001: Data too long for column 'in_list' at row 1
28+
SET @input := NULL;

mysql-test/suite/sysschema/r/fn_list_drop.result

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,15 @@ sys.list_drop('1, 2, 3, 4, 5', '5')
1818
1, 2, 3, 4
1919
SELECT sys.list_drop('1,2,3,4,5', NULL);
2020
ERROR 02200: Function sys.list_drop: in_drop_value input variable should not be NULL
21+
SET @sqlmode := @@sql_mode;
22+
SELECT @@sql_mode;
23+
@@sql_mode
24+
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
25+
SET SESSION sql_mode = sys.list_drop(@@sql_mode, 'STRICT_TRANS_TABLES');
26+
Warnings:
27+
Warning 3135 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
28+
SELECT @@sql_mode;
29+
@@sql_mode
30+
ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
31+
SET SESSION sql_mode = @sqlmode;
32+
SET @sqlmode := NULL;

mysql-test/suite/sysschema/t/fn_list_add.test

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,23 @@ SELECT sys.list_add('bar, ', 'foo');
1717
# Should return an error with a NULL value to add
1818
--error 1138
1919
SELECT sys.list_add('foo', NULL);
20+
21+
# Test the sql mode update use case
22+
# save old mode to restore
23+
SET @sqlmode := @@sql_mode;
24+
25+
SELECT @@sql_mode;
26+
27+
SET SESSION sql_mode = sys.list_add(@@sql_mode, 'ANSI_QUOTES');
28+
29+
SELECT @@sql_mode;
30+
31+
# restore old mode
32+
SET SESSION sql_mode = @sqlmode;
33+
SET @sqlmode := NULL;
34+
35+
# Check too large a value
36+
SET @input := REPEAT('a', 4194304);
37+
-- error 1406
38+
SELECT sys.list_add(@input, 'foo');
39+
SET @input := NULL;

mysql-test/suite/sysschema/t/fn_list_drop.test

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,17 @@ SELECT sys.list_drop('1, 2, 3, 4, 5', '5');
1919
# Should return an error with a NULL value to drop
2020
--error 1138
2121
SELECT sys.list_drop('1,2,3,4,5', NULL);
22+
23+
# Test the sql mode update use case
24+
# save old mode to restore
25+
SET @sqlmode := @@sql_mode;
26+
27+
SELECT @@sql_mode;
28+
29+
SET SESSION sql_mode = sys.list_drop(@@sql_mode, 'STRICT_TRANS_TABLES');
30+
31+
SELECT @@sql_mode;
32+
33+
# restore old mode
34+
SET SESSION sql_mode = @sqlmode;
35+
SET @sqlmode := NULL;

0 commit comments

Comments
 (0)