Skip to content

Commit dc36ce9

Browse files
committed
test cases
1 parent c1937dd commit dc36ce9

File tree

8 files changed

+970
-90
lines changed

8 files changed

+970
-90
lines changed

sql/core/src/test/resources/sql-tests/inputs/arithmetic.sql

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,17 @@ select -100;
44
select +230;
55
select -5.2;
66
select +6.8e0;
7-
select -key, +key from testdata where key = 2;
8-
select -(key + 1), - key + 1, +(key + 5) from testdata where key = 1;
9-
select -max(key), +max(key) from testdata;
7+
select -key, +key from uniqueRowData where key = 2;
8+
select -(key + 1), - key + 1, +(key + 5) from uniqueRowData where key = 1;
9+
select -max(key), +max(key) from uniqueRowData;
1010
select - (-10);
11-
select + (-key) from testdata where key = 32;
12-
select - (+max(key)) from testdata;
11+
select + (-key) from uniqueRowData where key = 32;
12+
select - (+max(key)) from uniqueRowData;
1313
select - - 3;
1414
select - + 20;
1515
select + + 100;
16-
select - - max(key) from testdata;
17-
select + - key from testdata where key = 33;
16+
select - - max(key) from uniqueRowData;
17+
select + - key from uniqueRowData where key = 33;
1818

1919
-- div
2020
select 5 / 2;
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11

22
-- limit on various data types
3-
select * from testdata limit 2;
3+
select * from uniqueRowData limit 2;
44
select * from arraydata limit 2;
55
select * from mapdata limit 2;
66

77
-- foldable non-literal in limit
8-
select * from testdata limit 2 + 1;
8+
select * from uniqueRowData limit 2 + 1;
99

10-
select * from testdata limit CAST(1 AS int);
10+
select * from uniqueRowData limit CAST(1 AS int);
1111

1212
-- limit must be non-negative
13-
select * from testdata limit -1;
13+
select * from uniqueRowData limit -1;
1414

1515
-- limit must be foldable
16-
select * from testdata limit key > 3;
16+
select * from uniqueRowData limit key > 3;
1717

1818
-- limit must be integer
19-
select * from testdata limit true;
20-
select * from testdata limit 'a';
19+
select * from uniqueRowData limit true;
20+
select * from uniqueRowData limit 'a';
2121

2222
-- limit within a subquery
2323
select * from (select * from range(10) limit 5) where id > 3;
Lines changed: 296 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,296 @@
1+
-- basic full outer join
2+
SELECT * FROM
3+
(SELECT * FROM upperCaseData WHERE N <= 4) leftTable FULL OUTER JOIN
4+
(SELECT * FROM upperCaseData WHERE N >= 3) rightTable
5+
ON leftTable.N = rightTable.N;
6+
7+
-- basic right outer join
8+
SELECT * FROM lowercasedata l RIGHT OUTER JOIN uppercasedata u ON l.n = u.N;
9+
10+
-- basic left outer join
11+
SELECT * FROM uppercasedata u LEFT OUTER JOIN lowercasedata l ON l.n = u.N;
12+
13+
-- left-outer join over two nested table expressions
14+
SELECT c.c1, c.c2, c.c3, c.c4
15+
FROM (
16+
SELECT a.c1 AS c1, a.c2 AS c2, b.c3 AS c3, b.c4 AS c4
17+
FROM
18+
(
19+
SELECT src1.key AS c1, src1.value AS c2
20+
FROM duplicateRowData src1 WHERE src1.key > 100 and src1.key < 300
21+
) a
22+
LEFT OUTER JOIN
23+
(
24+
SELECT src2.key AS c3, src2.value AS c4
25+
FROM duplicateRowData src2 WHERE src2.key > 200 and src2.key < 400
26+
) b
27+
ON (a.c1 = b.c3)
28+
) c;
29+
30+
-- right-outer join over two nested table expressions
31+
SELECT c.c1, c.c2, c.c3, c.c4
32+
FROM (
33+
SELECT a.c1 AS c1, a.c2 AS c2, b.c3 AS c3, b.c4 AS c4
34+
FROM
35+
(
36+
SELECT src1.key AS c1, src1.value AS c2
37+
FROM duplicateRowData src1 WHERE src1.key > 100 and src1.key < 300
38+
) a
39+
RIGHT OUTER JOIN
40+
(
41+
SELECT src2.key AS c3, src2.value AS c4
42+
FROM duplicateRowData src2 WHERE src2.key > 200 and src2.key < 400
43+
) b
44+
ON (a.c1 = b.c3)
45+
) c;
46+
47+
-- full-outer join over two nested table expressions
48+
SELECT c.c1, c.c2, c.c3, c.c4
49+
FROM (
50+
SELECT a.c1 AS c1, a.c2 AS c2, b.c3 AS c3, b.c4 AS c4
51+
FROM
52+
(
53+
SELECT src1.key AS c1, src1.value AS c2
54+
FROM duplicateRowData src1 WHERE src1.key > 100 and src1.key < 300
55+
) a
56+
FULL OUTER JOIN
57+
(
58+
SELECT src2.key AS c3, src2.value AS c4
59+
FROM duplicateRowData src2 WHERE src2.key > 200 and src2.key < 400
60+
) b
61+
ON (a.c1 = b.c3)
62+
) c;
63+
64+
-- full-outer join + left-outer join over nested table expressions
65+
SELECT c.c1, c.c2, c.c3, c.c4, c.c5, c.c6
66+
FROM (
67+
SELECT a.c1 AS c1, a.c2 AS c2, b.c3 AS c3, b.c4 AS c4, c.c5 AS c5, c.c6 AS c6
68+
FROM
69+
(
70+
SELECT src1.key AS c1, src1.value AS c2
71+
FROM duplicateRowData src1 WHERE src1.key > 10 and src1.key < 150
72+
) a
73+
FULL OUTER JOIN
74+
(
75+
SELECT src2.key AS c3, src2.value AS c4
76+
FROM duplicateRowData src2 WHERE src2.key > 150 and src2.key < 300
77+
) b
78+
ON (a.c1 = b.c3)
79+
LEFT OUTER JOIN
80+
(
81+
SELECT src3.key AS c5, src3.value AS c6
82+
FROM duplicateRowData src3 WHERE src3.key > 200 and src3.key < 400
83+
) c
84+
ON (a.c1 = c.c5)
85+
) c;
86+
87+
-- left-outer join + join condition + filter
88+
SELECT c.c1, c.c2, c.c3, c.c4
89+
FROM (
90+
SELECT a.c1 AS c1, a.c2 AS c2, b.c3 AS c3, b.c4 AS c4
91+
FROM
92+
(
93+
SELECT src1.key AS c1, src1.value AS c2
94+
FROM duplicateRowData src1 WHERE src1.key > 100 and src1.key < 300
95+
) a
96+
LEFT OUTER JOIN
97+
(
98+
SELECT src2.key AS c3, src2.value AS c4
99+
FROM duplicateRowData src2 WHERE src2.key > 200 and src2.key < 400
100+
) b
101+
ON (a.c1 = b.c3)
102+
) c
103+
where c.c3 IS NULL AND c.c1 IS NOT NULL;
104+
105+
-- full outer join over Aggregate
106+
SELECT a.key, a.value, b.key, b.value
107+
FROM
108+
(
109+
SELECT src1.key as key, count(src1.value) AS value
110+
FROM duplicateRowData src1 group by src1.key
111+
) a
112+
FULL OUTER JOIN
113+
(
114+
SELECT src2.key as key, count(distinct(src2.value)) AS value
115+
FROM nullData src2 group by src2.key
116+
) b
117+
ON (a.key = b.key);
118+
119+
-- full outer join + multi distinct
120+
SELECT a.key, a.value, b.key, b.value1, b.value2
121+
FROM
122+
(
123+
SELECT src1.key as key, count(src1.value) AS value
124+
FROM duplicateRowData src1 group by src1.key
125+
) a
126+
FULL OUTER JOIN
127+
(
128+
SELECT src2.key as key, count(distinct(src2.value)) AS value1,
129+
count(distinct(src2.key)) AS value2
130+
FROM nullData src2 group by src2.key
131+
) b
132+
ON (a.key = b.key);
133+
134+
-- inner join + right-outer join #1
135+
SELECT a.k1,a.v1,a.k2,a.v2,a.k3,a.v3
136+
FROM (
137+
SELECT src1.key as k1, src1.value as v1, src2.key as k2, src2.value as v2 , src3.key as k3,
138+
src3.value as v3
139+
FROM duplicateRowData src1 JOIN duplicateRowData src2 ON (src1.key = src2.key AND src1.key < 200)
140+
RIGHT OUTER JOIN duplicateRowData src3 ON (src1.key = src3.key AND src3.key < 300)
141+
SORT BY k1,v1,k2,v2,k3,v3
142+
)a;
143+
144+
-- inner join + right-outer join #2
145+
SELECT a.k1,a.v1,a.k2,a.v2,a.k3,a.v3
146+
FROM (
147+
SELECT src1.key as k1, src1.value as v1, src2.key as k2, src2.value as v2 , src3.key as k3,
148+
src3.value as v3
149+
FROM duplicateRowData src1
150+
JOIN duplicateRowData src2
151+
ON (src1.key = src2.key AND src1.key < 200 AND src2.key < 100)
152+
RIGHT OUTER JOIN duplicateRowData src3
153+
ON (src1.key = src3.key AND src3.key < 300)
154+
SORT BY k1,v1,k2,v2,k3,v3
155+
)a;
156+
157+
-- left outer join + right outer join
158+
SELECT *
159+
FROM
160+
duplicateRowData src1
161+
LEFT OUTER JOIN duplicateRowData src2
162+
ON (src1.key = src2.key AND src1.key < 200 AND src2.key > 200)
163+
RIGHT OUTER JOIN duplicateRowData src3
164+
ON (src2.key = src3.key AND src3.key < 200)
165+
SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;
166+
167+
-- left outer + right outer
168+
SELECT * FROM duplicateRowData src1
169+
LEFT OUTER JOIN duplicateRowData src2
170+
ON (src1.key = src2.key AND src1.key < 200 AND src2.key > 200)
171+
RIGHT OUTER JOIN duplicateRowData src3
172+
ON (src2.key = src3.key AND src3.key < 200)
173+
SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;
174+
175+
-- right outer + right outer
176+
SELECT * FROM duplicateRowData src1
177+
RIGHT OUTER JOIN duplicateRowData src2
178+
ON (src1.key = src2.key AND src1.key < 200 AND src2.key > 200)
179+
RIGHT OUTER JOIN duplicateRowData src3
180+
ON (src2.key = src3.key AND src3.key < 200)
181+
SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;
182+
183+
-- left outer + left outer
184+
SELECT * FROM duplicateRowData src1
185+
LEFT OUTER JOIN duplicateRowData src2
186+
ON (src1.key = src2.key AND src1.key < 200 AND src2.key > 200)
187+
LEFT OUTER JOIN duplicateRowData src3
188+
ON (src2.key = src3.key AND src3.key < 200)
189+
SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;
190+
191+
-- right outer + left outer
192+
SELECT * FROM duplicateRowData src1
193+
RIGHT OUTER JOIN duplicateRowData src2
194+
ON (src1.key = src2.key AND src1.key < 200 AND src2.key > 200)
195+
LEFT OUTER JOIN duplicateRowData src3
196+
ON (src2.key = src3.key AND src3.key < 200)
197+
SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;
198+
199+
-- inner + left outer
200+
SELECT * FROM duplicateRowData src1
201+
JOIN duplicateRowData src2 ON (src1.key = src2.key AND src1.key < 200 AND src2.key > 200)
202+
LEFT OUTER JOIN duplicateRowData src3 ON (src2.key = src3.key AND src3.key < 200)
203+
SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;
204+
205+
-- inner + right outer
206+
SELECT * FROM duplicateRowData src1
207+
JOIN duplicateRowData src2 ON (src1.key = src2.key AND src1.key < 200 AND src2.key > 200)
208+
RIGHT OUTER JOIN duplicateRowData src3 ON (src2.key = src3.key AND src3.key < 200)
209+
SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;
210+
211+
-- left + inner outer
212+
SELECT * FROM duplicateRowData src1
213+
LEFT OUTER JOIN duplicateRowData src2
214+
ON (src1.key = src2.key AND src1.key < 200 AND src2.key > 200)
215+
JOIN duplicateRowData src3
216+
ON (src2.key = src3.key AND src3.key < 200)
217+
SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;
218+
219+
-- right + inner join
220+
SELECT * FROM duplicateRowData src1
221+
RIGHT OUTER JOIN duplicateRowData src2
222+
ON (src1.key = src2.key AND src1.key < 200 AND src2.key > 200)
223+
JOIN duplicateRowData src3
224+
ON (src2.key = src3.key AND src3.key < 200)
225+
SORT BY src1.key, src1.value, src2.key, src2.value, src3.key, src3.value;
226+
227+
-- left outer join with sorted by nested table expression
228+
FROM
229+
(SELECT duplicateRowData.* FROM duplicateRowData sort by key) x
230+
LEFT OUTER JOIN
231+
(SELECT duplicateRowData.* FROM duplicateRowData sort by value) Y
232+
ON (x.key = Y.key)
233+
select Y.key,Y.value;
234+
235+
-- right outer join with sorted by nested table expression
236+
FROM
237+
(SELECT duplicateRowData.* FROM duplicateRowData sort by key) x
238+
RIGHT OUTER JOIN
239+
(SELECT duplicateRowData.* FROM duplicateRowData sort by value) Y
240+
ON (x.key = Y.key)
241+
select Y.key,Y.value;
242+
243+
-- inner + left outer with sorted by nested table expression
244+
FROM
245+
(SELECT duplicateRowData.* FROM duplicateRowData sort by key) x
246+
JOIN
247+
(SELECT duplicateRowData.* FROM duplicateRowData sort by value) Y
248+
ON (x.key = Y.key)
249+
LEFT OUTER JOIN
250+
(SELECT duplicateRowData.* FROM duplicateRowData sort by value) Z
251+
ON (x.key = Z.key)
252+
select Y.key,Y.value;
253+
254+
-- left + left outer with sorted by nested table expression
255+
FROM
256+
(SELECT duplicateRowData.* FROM duplicateRowData sort by key) x
257+
LEFT OUTER JOIN
258+
(SELECT duplicateRowData.* FROM duplicateRowData sort by value) Y
259+
ON (x.key = Y.key)
260+
LEFT OUTER JOIN
261+
(SELECT duplicateRowData.* FROM duplicateRowData sort by value) Z
262+
ON (x.key = Z.key)
263+
select Y.key,Y.value;
264+
265+
-- left + right outer with sorted by nested table expression
266+
FROM
267+
(SELECT duplicateRowData.* FROM duplicateRowData sort by key) x
268+
LEFT OUTER JOIN
269+
(SELECT duplicateRowData.* FROM duplicateRowData sort by value) Y
270+
ON (x.key = Y.key)
271+
RIGHT OUTER JOIN
272+
(SELECT duplicateRowData.* FROM duplicateRowData sort by value) Z
273+
ON (x.key = Z.key)
274+
select Y.key,Y.value;
275+
276+
-- right + right outer with sorted by nested table expression
277+
FROM
278+
(SELECT duplicateRowData.* FROM duplicateRowData sort by key) x
279+
RIGHT OUTER JOIN
280+
(SELECT duplicateRowData.* FROM duplicateRowData sort by value) Y
281+
ON (x.key = Y.key)
282+
RIGHT OUTER JOIN
283+
(SELECT duplicateRowData.* FROM duplicateRowData sort by value) Z
284+
ON (x.key = Z.key)
285+
select Y.key,Y.value;
286+
287+
-- right outer + inner with sorted by nested table expression
288+
FROM
289+
(SELECT duplicateRowData.* FROM duplicateRowData sort by key) x
290+
RIGHT OUTER JOIN
291+
(SELECT duplicateRowData.* FROM duplicateRowData sort by value) Y
292+
ON (x.key = Y.key)
293+
JOIN
294+
(SELECT duplicateRowData.* FROM duplicateRowData sort by value) Z
295+
ON (x.key = Z.key)
296+
select Y.key,Y.value;

0 commit comments

Comments
 (0)