aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/sql/suites/case
diff options
context:
space:
mode:
authorMaxim Yurchuk <maxim-yurchuk@ydb.tech>2024-11-20 17:37:57 +0000
committerGitHub <noreply@github.com>2024-11-20 17:37:57 +0000
commitf76323e9b295c15751e51e3443aa47a36bee8023 (patch)
tree4113c8cad473a33e0f746966e0cf087252fa1d7a /yql/essentials/tests/sql/suites/case
parent753ecb8d410a4cb459c26f3a0082fb2d1724fe63 (diff)
parenta7b9a6afea2a9d7a7bfac4c5eb4c1a8e60adb9e6 (diff)
downloadydb-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')
-rw-r--r--yql/essentials/tests/sql/suites/case/case_many_val.cfg1
-rw-r--r--yql/essentials/tests/sql/suites/case/case_many_val.sql111
-rw-r--r--yql/essentials/tests/sql/suites/case/case_multi_val.sql1
-rw-r--r--yql/essentials/tests/sql/suites/case/case_opt_cond.sql5
-rw-r--r--yql/essentials/tests/sql/suites/case/case_opt_then.sql5
-rw-r--r--yql/essentials/tests/sql/suites/case/case_size_eq_cast.sql1
-rw-r--r--yql/essentials/tests/sql/suites/case/case_then_else.sql1
-rw-r--r--yql/essentials/tests/sql/suites/case/case_val_then_else.sql1
-rw-r--r--yql/essentials/tests/sql/suites/case/case_val_when_then.sql1
-rw-r--r--yql/essentials/tests/sql/suites/case/case_when_then.sql1
-rw-r--r--yql/essentials/tests/sql/suites/case/default.cfg4
-rw-r--r--yql/essentials/tests/sql/suites/case/input.txt4
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"};