@@ -23,87 +23,6 @@ SELECT src1.key, src3.value
2323FROM src src1 JOIN src src2 ON (src1 .key = src2 .key )
2424 JOIN src src3 ON (src1 .key = src3 .key );
2525
26- -- left-outer join over two nested table expressions (auto_join4.q)
27- SELECT c .c1 , c .c2 , c .c3 , c .c4
28- FROM (
29- SELECT a .c1 AS c1, a .c2 AS c2, b .c3 AS c3, b .c4 AS c4
30- FROM
31- (
32- SELECT src1 .key AS c1, src1 .value AS c2 FROM src src1 WHERE src1 .key > 100 and src1 .key < 300
33- ) a
34- LEFT OUTER JOIN
35- (
36- SELECT src2 .key AS c3, src2 .value AS c4 FROM src src2 WHERE src2 .key > 200 and src2 .key < 400
37- ) b
38- ON (a .c1 = b .c3 )
39- ) c;
40-
41- -- right-outer join over two nested table expressions (auto_join5.q)
42- SELECT c .c1 , c .c2 , c .c3 , c .c4
43- FROM (
44- SELECT a .c1 AS c1, a .c2 AS c2, b .c3 AS c3, b .c4 AS c4
45- FROM
46- (
47- SELECT src1 .key AS c1, src1 .value AS c2 FROM src src1 WHERE src1 .key > 100 and src1 .key < 300
48- ) a
49- RIGHT OUTER JOIN
50- (
51- SELECT src2 .key AS c3, src2 .value AS c4 FROM src src2 WHERE src2 .key > 200 and src2 .key < 400
52- ) b
53- ON (a .c1 = b .c3 )
54- ) c;
55-
56- -- full-outer join over two nested table expressions (auto_join6.q)
57- SELECT c .c1 , c .c2 , c .c3 , c .c4
58- FROM (
59- SELECT a .c1 AS c1, a .c2 AS c2, b .c3 AS c3, b .c4 AS c4
60- FROM
61- (
62- SELECT src1 .key AS c1, src1 .value AS c2 FROM src src1 WHERE src1 .key > 100 and src1 .key < 300
63- ) a
64- FULL OUTER JOIN
65- (
66- SELECT src2 .key AS c3, src2 .value AS c4 FROM src src2 WHERE src2 .key > 200 and src2 .key < 400
67- ) b
68- ON (a .c1 = b .c3 )
69- ) c;
70-
71- -- full-outer join + left-outer join over nested table expressions (auto_join7.q)
72- SELECT c .c1 , c .c2 , c .c3 , c .c4 , c .c5 , c .c6
73- FROM (
74- 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
75- FROM
76- (
77- SELECT src1 .key AS c1, src1 .value AS c2 FROM src src1 WHERE src1 .key > 10 and src1 .key < 150
78- ) a
79- FULL OUTER JOIN
80- (
81- SELECT src2 .key AS c3, src2 .value AS c4 FROM src src2 WHERE src2 .key > 150 and src2 .key < 300
82- ) b
83- ON (a .c1 = b .c3 )
84- LEFT OUTER JOIN
85- (
86- SELECT src3 .key AS c5, src3 .value AS c6 FROM src src3 WHERE src3 .key > 200 and src3 .key < 400
87- ) c
88- ON (a .c1 = c .c5 )
89- ) c;
90-
91- -- left-outer join + join condition + filter (auto_join8.q)
92- SELECT c .c1 , c .c2 , c .c3 , c .c4
93- FROM (
94- SELECT a .c1 AS c1, a .c2 AS c2, b .c3 AS c3, b .c4 AS c4
95- FROM
96- (
97- SELECT src1 .key AS c1, src1 .value AS c2 FROM src src1 WHERE src1 .key > 100 and src1 .key < 300
98- ) a
99- LEFT OUTER JOIN
100- (
101- SELECT src2 .key AS c3, src2 .value AS c4 FROM src src2 WHERE src2 .key > 200 and src2 .key < 400
102- ) b
103- ON (a .c1 = b .c3 )
104- ) c
105- where c .c3 IS NULL AND c .c1 IS NOT NULL ;
106-
10726-- inner join + join condition + filter (auto_join9.q)
10827SELECT src1 .key , src2 .value
10928FROM srcpart src1 JOIN src src2 ON (src1 .key = src2 .key )
@@ -171,64 +90,11 @@ where tab.key < 200;
17190SELECT src1.* , src2.*
17291FROM src src1 JOIN src src2 ON (src1 .key = src2 .key );
17392
174- -- full outer join over Aggregate (auto_join18.q)
175- SELECT a .key , a .value , b .key , b .value
176- FROM
177- (
178- SELECT src1 .key as key, count (src1 .value ) AS value FROM src src1 group by src1 .key
179- ) a
180- FULL OUTER JOIN
181- (
182- SELECT src2 .key as key, count (distinct(src2 .value )) AS value
183- FROM src1 src2 group by src2 .key
184- ) b
185- ON (a .key = b .key );
186-
187- -- full outer join + multi distinct (auto_join18_multi_distinct.q)
188- SELECT a .key , a .value , b .key , b .value1 , b .value2
189- FROM
190- (
191- SELECT src1 .key as key, count (src1 .value ) AS value FROM src src1 group by src1 .key
192- ) a
193- FULL OUTER JOIN
194- (
195- SELECT src2 .key as key, count (distinct(src2 .value )) AS value1,
196- count (distinct(src2 .key )) AS value2
197- FROM src1 src2 group by src2 .key
198- ) b
199- ON (a .key = b .key );
200-
20193-- join + disjunctive conditions (auto_join19.q)
20294SELECT src1 .key , src2 .value
20395FROM srcpart src1 JOIN src src2 ON (src1 .key = src2 .key )
20496where (src1 .ds = ' 2008-04-08' or src1 .ds = ' 2008-04-09' )and (src1 .hr = ' 12' or src1 .hr = ' 11' );
20597
206- -- inner join + right-outer join #1 (auto_join20.q)
207- SELECT a .k1 ,a .v1 ,a .k2 ,a .v2 ,a .k3 ,a .v3
208- FROM (
209- SELECT src1 .key as k1, src1 .value as v1, src2 .key as k2, src2 .value as v2 , src3 .key as k3, src3 .value as v3
210- FROM src src1 JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 )
211- RIGHT OUTER JOIN src src3 ON (src1 .key = src3 .key AND src3 .key < 300 )
212- SORT BY k1,v1,k2,v2,k3,v3
213- )a;
214-
215- -- inner join + right-outer join #2 (auto_join20.q)
216- SELECT a .k1 ,a .v1 ,a .k2 ,a .v2 ,a .k3 ,a .v3
217- FROM (
218- SELECT src1 .key as k1, src1 .value as v1, src2 .key as k2, src2 .value as v2 , src3 .key as k3, src3 .value as v3
219- FROM src src1 JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key < 100 )
220- RIGHT OUTER JOIN src src3 ON (src1 .key = src3 .key AND src3 .key < 300 )
221- SORT BY k1,v1,k2,v2,k3,v3
222- )a;
223-
224- -- left outer join + right outer join (auto_join21.q)
225- SELECT *
226- FROM
227- src src1
228- LEFT OUTER JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
229- RIGHT OUTER JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
230- SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
231-
23298-- nested join (auto_join22.q)
23399SELECT src5 .src1_value
234100FROM
@@ -265,54 +131,6 @@ JOIN
265131) src3
266132ON src_12 .key = src3 .k AND src3 .k < 300 ;
267133
268- -- left outer + right outer (auto_join28.q)
269- SELECT * FROM src src1
270- LEFT OUTER JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
271- RIGHT OUTER JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
272- SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
273-
274- -- right outer + right outer (auto_join28.q)
275- SELECT * FROM src src1
276- RIGHT OUTER JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
277- RIGHT OUTER JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
278- SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
279-
280- -- left outer + left outer (auto_join28.q)
281- SELECT * FROM src src1
282- LEFT OUTER JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
283- LEFT OUTER JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
284- SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
285-
286- -- right outer + left outer (auto_join28.q)
287- SELECT * FROM src src1
288- RIGHT OUTER JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
289- LEFT OUTER JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
290- SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
291-
292- -- inner + left outer (auto_join29.q)
293- SELECT * FROM src src1
294- JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
295- LEFT OUTER JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
296- SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
297-
298- -- inner + right outer (auto_join29.q)
299- SELECT * FROM src src1
300- JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
301- RIGHT OUTER JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
302- SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
303-
304- -- left + inner outer (auto_join29.q)
305- SELECT * FROM src src1
306- LEFT OUTER JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
307- JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
308- SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
309-
310- -- right + inner join (auto_join29.q)
311- SELECT * FROM src src1
312- RIGHT OUTER JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
313- JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
314- SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
315-
316134-- inner join with sorted by nested table expression (auto_join30.q)
317135FROM
318136(SELECT src.* FROM src sort by key) x
@@ -321,22 +139,6 @@ JOIN
321139ON (x .key = Y .key )
322140select Y .key ,Y .value ;
323141
324- -- left outer join with sorted by nested table expression (auto_join30.q)
325- FROM
326- (SELECT src.* FROM src sort by key) x
327- LEFT OUTER JOIN
328- (SELECT src.* FROM src sort by value) Y
329- ON (x .key = Y .key )
330- select Y .key ,Y .value ;
331-
332- -- right outer join with sorted by nested table expression (auto_join30.q)
333- FROM
334- (SELECT src.* FROM src sort by key) x
335- RIGHT OUTER JOIN
336- (SELECT src.* FROM src sort by value) Y
337- ON (x .key = Y .key )
338- select Y .key ,Y .value ;
339-
340142-- inner + inner with sorted by nested table expression (auto_join30.q)
341143FROM
342144(SELECT src.* FROM src sort by key) x
@@ -348,61 +150,6 @@ JOIN
348150ON (x .key = Z .key )
349151select Y .key ,Y .value ;
350152
351- -- inner + left outer with sorted by nested table expression (auto_join30.q)
352- FROM
353- (SELECT src.* FROM src sort by key) x
354- JOIN
355- (SELECT src.* FROM src sort by value) Y
356- ON (x .key = Y .key )
357- LEFT OUTER JOIN
358- (SELECT src.* FROM src sort by value) Z
359- ON (x .key = Z .key )
360- select Y .key ,Y .value ;
361-
362- -- left + left outer with sorted by nested table expression (auto_join30.q)
363- FROM
364- (SELECT src.* FROM src sort by key) x
365- LEFT OUTER JOIN
366- (SELECT src.* FROM src sort by value) Y
367- ON (x .key = Y .key )
368- LEFT OUTER JOIN
369- (SELECT src.* FROM src sort by value) Z
370- ON (x .key = Z .key )
371- select Y .key ,Y .value ;
372-
373- -- left + right outer with sorted by nested table expression (auto_join30.q)
374- FROM
375- (SELECT src.* FROM src sort by key) x
376- LEFT OUTER JOIN
377- (SELECT src.* FROM src sort by value) Y
378- ON (x .key = Y .key )
379- RIGHT OUTER JOIN
380- (SELECT src.* FROM src sort by value) Z
381- ON (x .key = Z .key )
382- select Y .key ,Y .value ;
383-
384- -- right + right outer with sorted by nested table expression (auto_join30.q)
385- FROM
386- (SELECT src.* FROM src sort by key) x
387- RIGHT OUTER JOIN
388- (SELECT src.* FROM src sort by value) Y
389- ON (x .key = Y .key )
390- RIGHT OUTER JOIN
391- (SELECT src.* FROM src sort by value) Z
392- ON (x .key = Z .key )
393- select Y .key ,Y .value ;
394-
395- -- right outer + inner with sorted by nested table expression (auto_join31.q)
396- FROM
397- (SELECT src.* FROM src sort by key) x
398- RIGHT OUTER JOIN
399- (SELECT src.* FROM src sort by value) Y
400- ON (x .key = Y .key )
401- JOIN
402- (SELECT src.* FROM src sort by value) Z
403- ON (x .key = Z .key )
404- select Y .key ,Y .value ;
405-
406153-- join over set operation (join34.q)
407154SELECT x .key , x .value , subq1 .value
408155FROM
@@ -426,15 +173,6 @@ SELECT x.key, COUNT(*)
426173FROM src x JOIN src y ON x .key = y .key
427174GROUP BY x .key ;
428175
429- -- left semi greater than predicate
430- SELECT * FROM testData2 x LEFT SEMI JOIN testData2 y ON x .a >= y .a + 2 ;
431-
432- -- left semi greater than predicate and equal operator #1
433- SELECT * FROM testData2 x LEFT SEMI JOIN testData2 y ON x .b = y .b and x .a >= y .a + 2 ;
434-
435- -- left semi greater than predicate and equal operator #2
436- SELECT * FROM testData2 x LEFT SEMI JOIN testData2 y ON x .b = y .a and x .a >= y .b + 1 ;
437-
438176-- inner join with one-match-per-row filtering predicates (where)
439177SELECT * FROM uppercasedata u JOIN lowercasedata l WHERE u .n = l .N ;
440178
@@ -453,18 +191,6 @@ SELECT * FROM
453191 (SELECT * FROM testData2 WHERE a = 2 ) y
454192WHERE x .a = y .a ;
455193
456- -- basic full outer join
457- SELECT * FROM
458- (SELECT * FROM upperCaseData WHERE N <= 4 ) leftTable FULL OUTER JOIN
459- (SELECT * FROM upperCaseData WHERE N >= 3 ) rightTable
460- ON leftTable .N = rightTable .N ;
461-
462- -- basic right outer join
463- SELECT * FROM lowercasedata l RIGHT OUTER JOIN uppercasedata u ON l .n = u .N ;
464-
465- -- basic left outer join
466- SELECT * FROM uppercasedata u LEFT OUTER JOIN lowercasedata l ON l .n = u .N ;
467-
468194-- inner join ON with table name as qualifier
469195SELECT * FROM upperCaseData JOIN lowerCaseData ON lowerCaseData .n = upperCaseData .N ;
470196
0 commit comments