Permalink
Show file tree
Hide file tree
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
32 changed files
with
863 additions
and
96 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,113 @@ | ||
| SET SESSION character_set_connection=latin2; | ||
| SET SESSION character_set_client=cp1250; | ||
|
|
||
| --echo # | ||
| --echo # Test litteral | ||
| --echo # | ||
| SET sql_mode=@mode; | ||
| select @@sql_mode; | ||
| SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST(null as char(10))), 'x', CHARSET('x'); | ||
| SELECT CHARSET(NULLIF('','')),NULLIF('',''); | ||
| SET sql_mode=default; | ||
| SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST(null as char(10))), 'x', CHARSET('x'); | ||
| SELECT CHARSET(NULLIF('','')),NULLIF('',''); | ||
|
|
||
| --echo # | ||
| --echo # Test NCHAR litteral | ||
| --echo # | ||
| SET sql_mode=@mode; | ||
| SELECT N'',CHARSET(N''), N'x', CHARSET(N'x'); | ||
| SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N''); | ||
| SET sql_mode=default; | ||
| SELECT N'',CHARSET(N''), N'x', CHARSET(N'x'); | ||
| SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N''); | ||
|
|
||
| --echo # | ||
| --echo # Test CHARSET prefix litteral | ||
| --echo # | ||
| SET sql_mode=@mode; | ||
| SELECT _cp1250 '',CHARSET(_cp1250 ''), _cp1250 'x', CHARSET(_cp1250 'x'); | ||
| SELECT CHARSET(NULLIF(_cp1250 '',_cp1250 '')),NULLIF(_cp1250 '',_cp1250 ''); | ||
| SET sql_mode=default; | ||
| SELECT _cp1250 '',CHARSET(_cp1250 ''), _cp1250 'x', CHARSET(_cp1250 'x'); | ||
| SELECT CHARSET(NULLIF(_cp1250 '',_cp1250 '')),NULLIF(_cp1250 '',_cp1250 ''); | ||
|
|
||
|
|
||
| SET sql_mode=@mode; | ||
|
|
||
| --echo # | ||
| --echo # Test litteral concat | ||
| --echo # | ||
| SELECT 'a' 'b'; | ||
| SELECT 'a' ''; | ||
| SELECT '' 'b'; | ||
| SELECT '' ''; | ||
| SELECT '' 'b' 'c'; | ||
| SELECT '' '' 'c'; | ||
| SELECT 'a' '' 'c'; | ||
| SELECT 'a' '' ''; | ||
| SELECT '' '' ''; | ||
|
|
||
| SELECT '' '' '',CHARSET('' '' ''); | ||
| SELECT _latin1'' '' '',CHARSET(_latin1'' '' ''); | ||
| SELECT N'' '' '',CHARSET(N'' '' ''); | ||
|
|
||
| --echo # | ||
| --echo # UNION - implicit group by | ||
| --echo # | ||
| SELECT 1, null | ||
| UNION | ||
| SELECT 1 , '' | ||
| ORDER BY 1; | ||
|
|
||
| SELECT 1, null | ||
| UNION | ||
| SELECT 1 , N'' | ||
| ORDER BY 1; | ||
|
|
||
| SELECT 1, null | ||
| UNION | ||
| SELECT 1 , _cp1250 '' | ||
| ORDER BY 1; | ||
|
|
||
| SELECT NULLIF(_cp1250 '',_cp1250 '') | ||
| UNION | ||
| SELECT NULLIF(N'',N''); | ||
|
|
||
| --error ER_CANT_AGGREGATE_2COLLATIONS | ||
| SELECT 1 , _latin2 '' | ||
| UNION | ||
| SELECT 1 , _cp1250 ''; | ||
|
|
||
| SELECT 1, null | ||
| UNION | ||
| SELECT 1 , '' | ||
| UNION | ||
| SELECT 1 , N''; | ||
|
|
||
| CREATE TABLE t1 (c1 INT,c2 VARCHAR(10)); | ||
| INSERT INTO t1 VALUES (1,'one'); | ||
| INSERT INTO t1 VALUES (1,''); | ||
| INSERT INTO t1 VALUES (1,null); | ||
|
|
||
| --echo # | ||
| --echo # Test in a view | ||
| --echo # | ||
| CREATE VIEW v1 | ||
| AS SELECT c1, c2 | ||
| FROM t1 | ||
| UNION | ||
| SELECT c1 , '' | ||
| FROM t1 | ||
| ORDER BY 1,2; | ||
| SELECT * FROM v1; | ||
|
|
||
| SHOW CREATE VIEW v1; | ||
|
|
||
| DROP VIEW v1; | ||
| DROP TABLE t1; | ||
|
|
||
| EXPLAIN EXTENDED SELECT ''; | ||
| EXPLAIN EXTENDED SELECT _latin1''; | ||
| EXPLAIN EXTENDED SELECT N''; | ||
| EXPLAIN EXTENDED SELECT '' ''; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,181 @@ | ||
| USE test; | ||
| # | ||
| # MDEV-14013 : sql_mode=EMPTY_STRING_IS_NULL | ||
| # | ||
| set @mode='EMPTY_STRING_IS_NULL'; | ||
| SET SESSION character_set_connection=latin2; | ||
| SET SESSION character_set_client=cp1250; | ||
| # | ||
| # Test litteral | ||
| # | ||
| SET sql_mode=@mode; | ||
| select @@sql_mode; | ||
| @@sql_mode | ||
| EMPTY_STRING_IS_NULL | ||
| SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST(null as char(10))), 'x', CHARSET('x'); | ||
| NULL CHARSET('') NULL CHARSET(null) CAST(null as char(10)) CHARSET(CAST(null as char(10))) x CHARSET('x') | ||
| NULL latin2 NULL binary NULL latin2 x latin2 | ||
| SELECT CHARSET(NULLIF('','')),NULLIF('',''); | ||
| CHARSET(NULLIF('','')) NULLIF('','') | ||
| latin2 NULL | ||
| SET sql_mode=default; | ||
| SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST(null as char(10))), 'x', CHARSET('x'); | ||
| CHARSET('') NULL CHARSET(null) CAST(null as char(10)) CHARSET(CAST(null as char(10))) x CHARSET('x') | ||
| latin2 NULL binary NULL latin2 x latin2 | ||
| SELECT CHARSET(NULLIF('','')),NULLIF('',''); | ||
| CHARSET(NULLIF('','')) NULLIF('','') | ||
| latin2 NULL | ||
| # | ||
| # Test NCHAR litteral | ||
| # | ||
| SET sql_mode=@mode; | ||
| SELECT N'',CHARSET(N''), N'x', CHARSET(N'x'); | ||
| NULL CHARSET(N'') x CHARSET(N'x') | ||
| NULL utf8 x utf8 | ||
| SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N''); | ||
| CHARSET(NULLIF(N'',N'')) NULLIF(N'',N'') | ||
| utf8 NULL | ||
| SET sql_mode=default; | ||
| SELECT N'',CHARSET(N''), N'x', CHARSET(N'x'); | ||
| CHARSET(N'') x CHARSET(N'x') | ||
| utf8 x utf8 | ||
| SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N''); | ||
| CHARSET(NULLIF(N'',N'')) NULLIF(N'',N'') | ||
| utf8 NULL | ||
| # | ||
| # Test CHARSET prefix litteral | ||
| # | ||
| SET sql_mode=@mode; | ||
| SELECT _cp1250 '',CHARSET(_cp1250 ''), _cp1250 'x', CHARSET(_cp1250 'x'); | ||
| NULL CHARSET(_cp1250 '') x CHARSET(_cp1250 'x') | ||
| NULL cp1250 x cp1250 | ||
| SELECT CHARSET(NULLIF(_cp1250 '',_cp1250 '')),NULLIF(_cp1250 '',_cp1250 ''); | ||
| CHARSET(NULLIF(_cp1250 '',_cp1250 '')) NULLIF(_cp1250 '',_cp1250 '') | ||
| cp1250 NULL | ||
| SET sql_mode=default; | ||
| SELECT _cp1250 '',CHARSET(_cp1250 ''), _cp1250 'x', CHARSET(_cp1250 'x'); | ||
| CHARSET(_cp1250 '') x CHARSET(_cp1250 'x') | ||
| cp1250 x cp1250 | ||
| SELECT CHARSET(NULLIF(_cp1250 '',_cp1250 '')),NULLIF(_cp1250 '',_cp1250 ''); | ||
| CHARSET(NULLIF(_cp1250 '',_cp1250 '')) NULLIF(_cp1250 '',_cp1250 '') | ||
| cp1250 NULL | ||
| SET sql_mode=@mode; | ||
| # | ||
| # Test litteral concat | ||
| # | ||
| SELECT 'a' 'b'; | ||
| a | ||
| ab | ||
| SELECT 'a' ''; | ||
| a | ||
| a | ||
| SELECT '' 'b'; | ||
| b | ||
| b | ||
| SELECT '' ''; | ||
| NULL | ||
| NULL | ||
| SELECT '' 'b' 'c'; | ||
| b | ||
| bc | ||
| SELECT '' '' 'c'; | ||
| c | ||
| c | ||
| SELECT 'a' '' 'c'; | ||
| a | ||
| ac | ||
| SELECT 'a' '' ''; | ||
| a | ||
| a | ||
| SELECT '' '' ''; | ||
| NULL | ||
| NULL | ||
| SELECT '' '' '',CHARSET('' '' ''); | ||
| NULL CHARSET('' '' '') | ||
| NULL latin2 | ||
| SELECT _latin1'' '' '',CHARSET(_latin1'' '' ''); | ||
| NULL CHARSET(_latin1'' '' '') | ||
| NULL latin1 | ||
| SELECT N'' '' '',CHARSET(N'' '' ''); | ||
| NULL CHARSET(N'' '' '') | ||
| NULL utf8 | ||
| # | ||
| # UNION - implicit group by | ||
| # | ||
| SELECT 1, null | ||
| UNION | ||
| SELECT 1 , '' | ||
| ORDER BY 1; | ||
| 1 NULL | ||
| 1 NULL | ||
| SELECT 1, null | ||
| UNION | ||
| SELECT 1 , N'' | ||
| ORDER BY 1; | ||
| 1 NULL | ||
| 1 NULL | ||
| SELECT 1, null | ||
| UNION | ||
| SELECT 1 , _cp1250 '' | ||
| ORDER BY 1; | ||
| 1 NULL | ||
| 1 NULL | ||
| SELECT NULLIF(_cp1250 '',_cp1250 '') | ||
| UNION | ||
| SELECT NULLIF(N'',N''); | ||
| NULLIF(_cp1250 '',_cp1250 '') | ||
| NULL | ||
| SELECT 1 , _latin2 '' | ||
| UNION | ||
| SELECT 1 , _cp1250 ''; | ||
| ERROR HY000: Illegal mix of collations (latin2_general_ci,IGNORABLE) and (cp1250_general_ci,IGNORABLE) for operation 'UNION' | ||
| SELECT 1, null | ||
| UNION | ||
| SELECT 1 , '' | ||
| UNION | ||
| SELECT 1 , N''; | ||
| 1 NULL | ||
| 1 NULL | ||
| CREATE TABLE t1 (c1 INT,c2 VARCHAR(10)); | ||
| INSERT INTO t1 VALUES (1,'one'); | ||
| INSERT INTO t1 VALUES (1,''); | ||
| INSERT INTO t1 VALUES (1,null); | ||
| # | ||
| # Test in a view | ||
| # | ||
| CREATE VIEW v1 | ||
| AS SELECT c1, c2 | ||
| FROM t1 | ||
| UNION | ||
| SELECT c1 , '' | ||
| FROM t1 | ||
| ORDER BY 1,2; | ||
| SELECT * FROM v1; | ||
| c1 c2 | ||
| 1 NULL | ||
| 1 one | ||
| SHOW CREATE VIEW v1; | ||
| View Create View character_set_client collation_connection | ||
| v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`c1` AS `c1`,`t1`.`c2` AS `c2` from `t1` union select `t1`.`c1` AS `c1`,NULL AS `NULL` from `t1` order by 1,2 cp1250 latin2_general_ci | ||
| DROP VIEW v1; | ||
| DROP TABLE t1; | ||
| EXPLAIN EXTENDED SELECT ''; | ||
| id select_type table type possible_keys key key_len ref rows filtered Extra | ||
| 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used | ||
| Warnings: | ||
| Note 1003 select NULL AS `NULL` | ||
| EXPLAIN EXTENDED SELECT _latin1''; | ||
| id select_type table type possible_keys key key_len ref rows filtered Extra | ||
| 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used | ||
| Warnings: | ||
| Note 1003 select NULL AS `NULL` | ||
| EXPLAIN EXTENDED SELECT N''; | ||
| id select_type table type possible_keys key key_len ref rows filtered Extra | ||
| 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used | ||
| Warnings: | ||
| Note 1003 select NULL AS `NULL` | ||
| EXPLAIN EXTENDED SELECT '' ''; | ||
| id select_type table type possible_keys key key_len ref rows filtered Extra | ||
| 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used | ||
| Warnings: | ||
| Note 1003 select NULL AS `NULL` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.