diff options
author | Maxim Yurchuk <maxim-yurchuk@ydb.tech> | 2024-11-20 17:37:57 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-20 17:37:57 +0000 |
commit | f76323e9b295c15751e51e3443aa47a36bee8023 (patch) | |
tree | 4113c8cad473a33e0f746966e0cf087252fa1d7a /yql/essentials/tests/sql/suites/case | |
parent | 753ecb8d410a4cb459c26f3a0082fb2d1724fe63 (diff) | |
parent | a7b9a6afea2a9d7a7bfac4c5eb4c1a8e60adb9e6 (diff) | |
download | ydb-f76323e9b295c15751e51e3443aa47a36bee8023.tar.gz |
Merge pull request #11788 from ydb-platform/mergelibs-241120-1113
Library import 241120-1113
Diffstat (limited to 'yql/essentials/tests/sql/suites/case')
12 files changed, 136 insertions, 0 deletions
diff --git a/yql/essentials/tests/sql/suites/case/case_many_val.cfg b/yql/essentials/tests/sql/suites/case/case_many_val.cfg new file mode 100644 index 0000000000..bb349dd8ab --- /dev/null +++ b/yql/essentials/tests/sql/suites/case/case_many_val.cfg @@ -0,0 +1 @@ +providers yt diff --git a/yql/essentials/tests/sql/suites/case/case_many_val.sql b/yql/essentials/tests/sql/suites/case/case_many_val.sql new file mode 100644 index 0000000000..a5b8642925 --- /dev/null +++ b/yql/essentials/tests/sql/suites/case/case_many_val.sql @@ -0,0 +1,111 @@ +/* syntax version 1 */ +/* yt can not */ +$switch = ($x) -> { + $res = case $x + when 0 then 1 + when 1 then 2 + when 2 then 3 + when 3 then 4 + when 4 then 5 + when 5 then 6 + when 6 then 7 + when 7 then 8 + when 8 then 9 + when 9 then 10 + when 10 then 11 + when 11 then 12 + when 12 then 13 + when 13 then 14 + when 14 then 15 + when 15 then 16 + when 16 then 17 + when 17 then 18 + when 18 then 19 + when 19 then 20 + when 20 then 21 + when 21 then 22 + when 22 then 23 + when 23 then 24 + when 24 then 25 + when 25 then 26 + when 26 then 27 + when 27 then 28 + when 28 then 29 + when 29 then 30 + when 30 then 31 + when 31 then 32 + when 32 then 33 + when 33 then 34 + when 34 then 35 + when 35 then 36 + when 36 then 37 + when 37 then 38 + when 38 then 39 + when 39 then 40 + when 40 then 41 + when 41 then 42 + when 42 then 43 + when 43 then 44 + when 44 then 45 + when 45 then 46 + when 46 then 47 + when 47 then 48 + when 48 then 49 + when 49 then 50 + when 50 then 51 + when 51 then 52 + when 52 then 53 + when 53 then 54 + when 54 then 55 + when 55 then 56 + when 56 then 57 + when 57 then 58 + when 58 then 59 + when 59 then 60 + when 60 then 61 + when 61 then 62 + when 62 then 63 + when 63 then 64 + when 64 then 65 + when 65 then 66 + when 66 then 67 + when 67 then 68 + when 68 then 69 + when 69 then 70 + when 70 then 71 + when 71 then 72 + when 72 then 73 + when 73 then 74 + when 74 then 75 + when 75 then 76 + when 76 then 77 + when 77 then 78 + when 78 then 79 + when 79 then 80 + when 80 then 81 + when 81 then 82 + when 82 then 83 + when 83 then 84 + when 84 then 85 + when 85 then 86 + when 86 then 87 + when 87 then 88 + when 88 then 89 + when 89 then 90 + when 90 then 91 + when 91 then 92 + when 92 then 93 + when 93 then 94 + when 94 then 95 + when 95 then 96 + when 96 then 97 + when 97 then 98 + when 98 then 99 + else 100 + end; + return $res; +}; + +$expected = ListFromRange(1, 101); + +select ListMap(ListFromRange(0, 100), $switch) == $expected; diff --git a/yql/essentials/tests/sql/suites/case/case_multi_val.sql b/yql/essentials/tests/sql/suites/case/case_multi_val.sql new file mode 100644 index 0000000000..2a70a03167 --- /dev/null +++ b/yql/essentials/tests/sql/suites/case/case_multi_val.sql @@ -0,0 +1 @@ +select key, subkey, case value when "jar" then "JAR" when "foo" then "FOO" else value end as value from plato.Input;
\ No newline at end of file diff --git a/yql/essentials/tests/sql/suites/case/case_opt_cond.sql b/yql/essentials/tests/sql/suites/case/case_opt_cond.sql new file mode 100644 index 0000000000..16c3eb2e58 --- /dev/null +++ b/yql/essentials/tests/sql/suites/case/case_opt_cond.sql @@ -0,0 +1,5 @@ +select case when cast('true' as Bool) then 'FOO1' else 'BAR1' end +union all +select case when cast('false' as Bool) then 'FOO2' else 'BAR2' end +union all +select case when NULL then 'FOO3' else 'BAR3' end; diff --git a/yql/essentials/tests/sql/suites/case/case_opt_then.sql b/yql/essentials/tests/sql/suites/case/case_opt_then.sql new file mode 100644 index 0000000000..9824a06447 --- /dev/null +++ b/yql/essentials/tests/sql/suites/case/case_opt_then.sql @@ -0,0 +1,5 @@ +select case when true then cast("123" as int) else 100501 end +union all +select case when true then NULL else 100502 end +union all +select case when false then NULL else 100503 end; diff --git a/yql/essentials/tests/sql/suites/case/case_size_eq_cast.sql b/yql/essentials/tests/sql/suites/case/case_size_eq_cast.sql new file mode 100644 index 0000000000..e5c5be7605 --- /dev/null +++ b/yql/essentials/tests/sql/suites/case/case_size_eq_cast.sql @@ -0,0 +1 @@ +select key, subkey, case length(value) when cast(3 as smallint) then "JAR" else value end as value from plato.Input;
\ No newline at end of file diff --git a/yql/essentials/tests/sql/suites/case/case_then_else.sql b/yql/essentials/tests/sql/suites/case/case_then_else.sql new file mode 100644 index 0000000000..5bdda9497f --- /dev/null +++ b/yql/essentials/tests/sql/suites/case/case_then_else.sql @@ -0,0 +1 @@ +select case when key != subkey then subkey else value end from plato.Input;
\ No newline at end of file diff --git a/yql/essentials/tests/sql/suites/case/case_val_then_else.sql b/yql/essentials/tests/sql/suites/case/case_val_then_else.sql new file mode 100644 index 0000000000..78ec7d4080 --- /dev/null +++ b/yql/essentials/tests/sql/suites/case/case_val_then_else.sql @@ -0,0 +1 @@ +select case value when key then subkey else value end from plato.Input;
\ No newline at end of file diff --git a/yql/essentials/tests/sql/suites/case/case_val_when_then.sql b/yql/essentials/tests/sql/suites/case/case_val_when_then.sql new file mode 100644 index 0000000000..55b6740500 --- /dev/null +++ b/yql/essentials/tests/sql/suites/case/case_val_when_then.sql @@ -0,0 +1 @@ +select key, subkey, case value when subkey then "WAT" else value end as value from plato.Input;
\ No newline at end of file diff --git a/yql/essentials/tests/sql/suites/case/case_when_then.sql b/yql/essentials/tests/sql/suites/case/case_when_then.sql new file mode 100644 index 0000000000..5d38925caa --- /dev/null +++ b/yql/essentials/tests/sql/suites/case/case_when_then.sql @@ -0,0 +1 @@ +select key, subkey, case when value != subkey then "WAT" else value end as value from plato.Input;
\ No newline at end of file diff --git a/yql/essentials/tests/sql/suites/case/default.cfg b/yql/essentials/tests/sql/suites/case/default.cfg new file mode 100644 index 0000000000..a1f7a5a9b7 --- /dev/null +++ b/yql/essentials/tests/sql/suites/case/default.cfg @@ -0,0 +1,4 @@ +in Input input.txt +in Input2 input2.txt +in Input3 input3.txt +in Input4 input4.txt diff --git a/yql/essentials/tests/sql/suites/case/input.txt b/yql/essentials/tests/sql/suites/case/input.txt new file mode 100644 index 0000000000..65949ea745 --- /dev/null +++ b/yql/essentials/tests/sql/suites/case/input.txt @@ -0,0 +1,4 @@ +{"key"="075";"subkey"="1";"value"="abc"}; +{"key"="800";"subkey"="2";"value"="ddd"}; +{"key"="020";"subkey"="3";"value"="q"}; +{"key"="150";"subkey"="4";"value"="qzz"}; |