mirror of
https://github.com/MariaDB/server.git
synced 2025-05-20 13:13:59 +03:00
added string length for more speed made code covarage for print() method of Item fixed printability of some items (SCRUM) (WL#1274) mysql-test/r/auto_increment.result: print() code coverage mysql-test/r/bench_count_distinct.result: print() code coverage mysql-test/r/case.result: print() code coverage mysql-test/r/cast.result: print() code coverage mysql-test/r/ctype_collate.result: print() code coverage mysql-test/r/ctype_many.result: convert with 3 arguments code covarage print() code coverage mysql-test/r/ctype_utf8.result: char_length code coverage mysql-test/r/date_formats.result: print() code coverage mysql-test/r/fulltext.result: print() code coverage mysql-test/r/func_compress.result: print() code coverage mysql-test/r/func_gconcat.result: print() code coverage mysql-test/r/func_group.result: bit_xor() code coverage print() code coverage mysql-test/r/func_if.result: nullif() code coverage print() code coverage mysql-test/r/func_in.result: print() code coverage mysql-test/r/func_math.result: print() code coverage mysql-test/r/func_op.result: print() code coverage mysql-test/r/func_regexp.result: print() code coverage mysql-test/r/func_set.result: print() code coverage mysql-test/r/func_str.result: crc32() code coverage print() code coverage mysql-test/r/func_system.result: print() code coverage mysql-test/r/func_test.result: print() code coverage mysql-test/r/func_time.result: print() code coverage mysql-test/r/group_by.result: print() code coverage mysql-test/r/having.result: print() code coverage mysql-test/r/insert_update.result: print() code coverage mysql-test/r/null.result: print() code coverage mysql-test/r/olap.result: print() code coverage mysql-test/r/query_cache.result: print() code coverage mysql-test/r/row.result: print() code coverage mysql-test/r/rpl000001.result: print() code coverage mysql-test/r/rpl_get_lock.result: print() code coverage mysql-test/r/rpl_master_pos_wait.result: print() code coverage mysql-test/r/select.result: print() code coverage mysql-test/r/subselect.result: print() code coverage mysql-test/r/type_blob.result: print() code coverage mysql-test/r/varbinary.result: print() code coverage mysql-test/r/variables.result: print() code coverage mysql-test/t/auto_increment.test: print() code coverage mysql-test/t/bench_count_distinct.test: print() code coverage mysql-test/t/case.test: print() code coverage mysql-test/t/cast.test: print() code coverage mysql-test/t/ctype_collate.test: print() code coverage mysql-test/t/ctype_many.test: convert with 3 arguments code covarage print() code coverage mysql-test/t/ctype_utf8.test: char_length code coverage mysql-test/t/date_formats.test: print() code coverage mysql-test/t/fulltext.test: print() code coverage mysql-test/t/func_compress.test: print() code coverage mysql-test/t/func_gconcat.test: print() code coverage mysql-test/t/func_group.test: bit_xor() code coverage print() code coverage mysql-test/t/func_if.test: nullif() code coverage print() code coverage mysql-test/t/func_in.test: print() code coverage mysql-test/t/func_math.test: print() code coverage mysql-test/t/func_op.test: print() code coverage mysql-test/t/func_regexp.test: print() code coverage mysql-test/t/func_set.test: print() code coverage mysql-test/t/func_str.test: crc32() code covarage print() code coverage mysql-test/t/func_system.test: print() code coverage mysql-test/t/func_test.test: print() code coverage mysql-test/t/func_time.test: print() code coverage mysql-test/t/group_by.test: print() code coverage mysql-test/t/having.test: print() code coverage mysql-test/t/insert_update.test: print() code coverage mysql-test/t/null.test: print() code coverage mysql-test/t/olap.test: print() code coverage mysql-test/t/query_cache.test: print() code coverage mysql-test/t/row.test: print() code coverage mysql-test/t/rpl000001.test: print() code coverage mysql-test/t/rpl_get_lock.test: print() code coverage mysql-test/t/rpl_master_pos_wait.test: print() code coverage mysql-test/t/select.test: print() code coverage mysql-test/t/type_blob.test: print() code coverage mysql-test/t/varbinary.test: print() code coverage mysql-test/t/variables.test: print() code coverage sql/item.cc: added string length for more speed layout fix fixed string printability sql/item.h: added string length for more speed sql/item_cmpfunc.cc: added string length for more speed sql/item_cmpfunc.h: fixed printability sql/item_create.cc: fixed printability sql/item_func.cc: fixed printability added string length for more speed sql/item_func.h: fixed printability sql/item_strfunc.cc: fixed printability added string length for more speed sql/item_strfunc.h: fixed printability sql/item_subselect.cc: added string length for more speed sql/item_sum.cc: added string length for more speed sql/item_timefunc.cc: added string length for more speed sql/item_timefunc.h: fixed printability sql/item_uniq.h: added string length for more speed sql/key.cc: added string length for more speed sql/sql_lex.cc: added string length for more speed sql/sql_parse.cc: after merge fix sql/sql_repl.cc: string changed with character for more speed sql/sql_select.cc: added string length for more speed sql/sql_show.cc: added string length for more speed
109 lines
3.9 KiB
Plaintext
109 lines
3.9 KiB
Plaintext
#
|
|
# Testing of CASE
|
|
#
|
|
|
|
--disable_warnings
|
|
drop table if exists t1;
|
|
--enable_warnings
|
|
|
|
select CASE "b" when "a" then 1 when "b" then 2 END;
|
|
select CASE "c" when "a" then 1 when "b" then 2 END;
|
|
select CASE "c" when "a" then 1 when "b" then 2 ELSE 3 END;
|
|
select CASE BINARY "b" when "a" then 1 when "B" then 2 WHEN "b" then "ok" END;
|
|
select CASE "b" when "a" then 1 when binary "B" then 2 WHEN "b" then "ok" END;
|
|
select CASE concat("a","b") when concat("ab","") then "a" when "b" then "b" end;
|
|
select CASE when 1=0 then "true" else "false" END;
|
|
select CASE 1 when 1 then "one" WHEN 2 then "two" ELSE "more" END;
|
|
explain extended select CASE 1 when 1 then "one" WHEN 2 then "two" ELSE "more" END;
|
|
select CASE 2.0 when 1 then "one" WHEN 2.0 then "two" ELSE "more" END;
|
|
select (CASE "two" when "one" then "1" WHEN "two" then "2" END) | 0;
|
|
select (CASE "two" when "one" then 1.00 WHEN "two" then 2.00 END) +0.0;
|
|
select case 1/0 when "a" then "true" else "false" END;
|
|
select case 1/0 when "a" then "true" END;
|
|
select (case 1/0 when "a" then "true" END) | 0;
|
|
select (case 1/0 when "a" then "true" END) + 0.0;
|
|
select case when 1>0 then "TRUE" else "FALSE" END;
|
|
select case when 1<0 then "TRUE" else "FALSE" END;
|
|
|
|
#
|
|
# Test bug when using GROUP BY on CASE
|
|
#
|
|
create table t1 (a int);
|
|
insert into t1 values(1),(2),(3),(4);
|
|
select case a when 1 then 2 when 2 then 3 else 0 end as fcase, count(*) from t1 group by fcase;
|
|
explain extended select case a when 1 then 2 when 2 then 3 else 0 end as fcase, count(*) from t1 group by fcase;
|
|
select case a when 1 then "one" when 2 then "two" else "nothing" end as fcase, count(*) from t1 group by fcase;
|
|
drop table t1;
|
|
|
|
#
|
|
# Test MAX(CASE ... ) that can return null
|
|
#
|
|
|
|
create table t1 (row int not null, col int not null, val varchar(255) not null);
|
|
insert into t1 values (1,1,'orange'),(1,2,'large'),(2,1,'yellow'),(2,2,'medium'),(3,1,'green'),(3,2,'small');
|
|
select max(case col when 1 then val else null end) as color from t1 group by row;
|
|
drop table t1;
|
|
|
|
SET NAMES latin1;
|
|
|
|
#
|
|
# CASE and argument types/collations aggregation into result
|
|
#
|
|
CREATE TABLE t1 SELECT
|
|
CASE WHEN 1 THEN _latin1'a' COLLATE latin1_danish_ci ELSE _latin1'a' END AS c1,
|
|
CASE WHEN 1 THEN _latin1'a' ELSE _latin1'a' COLLATE latin1_danish_ci END AS c2,
|
|
CASE WHEN 1 THEN 'a' ELSE 1 END AS c3,
|
|
CASE WHEN 1 THEN 1 ELSE 'a' END AS c4,
|
|
CASE WHEN 1 THEN 'a' ELSE 1.0 END AS c5,
|
|
CASE WHEN 1 THEN 1.0 ELSE 'a' END AS c6,
|
|
CASE WHEN 1 THEN 1 ELSE 1.0 END AS c7,
|
|
CASE WHEN 1 THEN 1.0 ELSE 1 END AS c8
|
|
;
|
|
SHOW CREATE TABLE t1;
|
|
DROP TABLE t1;
|
|
|
|
--error 1266
|
|
SELECT CASE
|
|
WHEN 1
|
|
THEN _latin1'a' COLLATE latin1_danish_ci
|
|
ELSE _latin1'a' COLLATE latin1_swedish_ci
|
|
END;
|
|
|
|
--error 1269
|
|
SELECT CASE _latin1'a' COLLATE latin1_general_ci
|
|
WHEN _latin1'a' COLLATE latin1_danish_ci THEN 1
|
|
WHEN _latin1'a' COLLATE latin1_swedish_ci THEN 2
|
|
END;
|
|
|
|
SELECT
|
|
CASE _latin1'a' COLLATE latin1_general_ci WHEN _latin1'A' THEN '1' ELSE 2 END,
|
|
CASE _latin1'a' COLLATE latin1_bin WHEN _latin1'A' THEN '1' ELSE 2 END,
|
|
CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_swedish_ci THEN '1' ELSE 2 END,
|
|
CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_bin THEN '1' ELSE 2 END
|
|
;
|
|
|
|
#
|
|
# COALESCE is a CASE abbrevation:
|
|
#
|
|
# COALESCE(v1,v2) == CASE WHEN v1 IS NOT NULL THEN v1 ELSE v2 END
|
|
#
|
|
# COALESCE(V1, V2, . . . ,Vn ) =
|
|
# CASE WHEN V1 IS NOT NULL THEN V1 ELSE COALESCE (V2, . . . ,Vn) END
|
|
#
|
|
# Check COALESCE argument types aggregation
|
|
|
|
--error 1266
|
|
CREATE TABLE t1 SELECT COALESCE(_latin1'a',_latin2'a');
|
|
--error 1266
|
|
CREATE TABLE t1 SELECT COALESCE('a' COLLATE latin1_swedish_ci,'b' COLLATE latin1_bin);
|
|
CREATE TABLE t1 SELECT
|
|
COALESCE(1), COALESCE(1.0),COALESCE('a'),
|
|
COALESCE(1,1.0), COALESCE(1,'1'),COALESCE(1.1,'1'),
|
|
COALESCE('a' COLLATE latin1_bin,'b');
|
|
explain extended SELECT
|
|
COALESCE(1), COALESCE(1.0),COALESCE('a'),
|
|
COALESCE(1,1.0), COALESCE(1,'1'),COALESCE(1.1,'1'),
|
|
COALESCE('a' COLLATE latin1_bin,'b');
|
|
SHOW CREATE TABLE t1;
|
|
DROP TABLE t1;
|