@@ -25,31 +25,31 @@ FROM src src1 JOIN src src2 ON (src1.key = src2.key) JOIN src src3 ON (src1.key
2525-- left-outer join (auto_join4.q)
2626SELECT c .c1 , c .c2 , c .c3 , c .c4
2727FROM (
28- SELECT a .c1 AS c1, a .c2 AS c2, b .c3 AS c3, b .c4 AS c4
29- FROM
30- (
31- SELECT src1 .key AS c1, src1 .value AS c2 FROM src src1 WHERE src1 .key > 100 and src1 .key < 300
32- ) a
33- LEFT OUTER JOIN
34- (
35- SELECT src2 .key AS c3, src2 .value AS c4 FROM src src2 WHERE src2 .key > 200 and src2 .key < 400
36- ) b
37- ON (a .c1 = b .c3 )
28+ SELECT a .c1 AS c1, a .c2 AS c2, b .c3 AS c3, b .c4 AS c4
29+ FROM
30+ (
31+ SELECT src1 .key AS c1, src1 .value AS c2 FROM src src1 WHERE src1 .key > 100 and src1 .key < 300
32+ ) a
33+ LEFT OUTER JOIN
34+ (
35+ SELECT src2 .key AS c3, src2 .value AS c4 FROM src src2 WHERE src2 .key > 200 and src2 .key < 400
36+ ) b
37+ ON (a .c1 = b .c3 )
3838) c;
3939
4040-- right-outer join (auto_join5.q)
4141SELECT c .c1 , c .c2 , c .c3 , c .c4
4242FROM (
43- SELECT a .c1 AS c1, a .c2 AS c2, b .c3 AS c3, b .c4 AS c4
44- FROM
45- (
46- SELECT src1 .key AS c1, src1 .value AS c2 FROM src src1 WHERE src1 .key > 100 and src1 .key < 300
47- ) a
48- RIGHT OUTER JOIN
49- (
50- SELECT src2 .key AS c3, src2 .value AS c4 FROM src src2 WHERE src2 .key > 200 and src2 .key < 400
51- ) b
52- ON (a .c1 = b .c3 )
43+ SELECT a .c1 AS c1, a .c2 AS c2, b .c3 AS c3, b .c4 AS c4
44+ FROM
45+ (
46+ SELECT src1 .key AS c1, src1 .value AS c2 FROM src src1 WHERE src1 .key > 100 and src1 .key < 300
47+ ) a
48+ RIGHT OUTER JOIN
49+ (
50+ SELECT src2 .key AS c3, src2 .value AS c4 FROM src src2 WHERE src2 .key > 200 and src2 .key < 400
51+ ) b
52+ ON (a .c1 = b .c3 )
5353) c;
5454
5555-- full-outer join (auto_join6.q)
@@ -106,4 +106,299 @@ where c.c3 IS NULL AND c.c1 IS NOT NULL;
106106-- join (auto_join9.q)
107107SELECT src1 .key , src2 .value
108108FROM srcpart src1 JOIN src src2 ON (src1 .key = src2 .key )
109- WHERE src1 .ds = ' 2008-04-08' and src1 .hr = ' 12'
109+ WHERE src1 .ds = ' 2008-04-08' and src1 .hr = ' 12' ;
110+
111+ -- self-join (auto_join10.q)
112+ FROM
113+ (SELECT src.* FROM src) x
114+ JOIN
115+ (SELECT src.* FROM src) Y
116+ ON (x .key = Y .key )
117+ select Y .key , Y .value ;
118+
119+ -- self-join (auto_join11.q)
120+ SELECT src1 .c1 , src2 .c4
121+ FROM
122+ (SELECT src .key as c1, src .value as c2 from src) src1
123+ JOIN
124+ (SELECT src .key as c3, src .value as c4 from src) src2
125+ ON src1 .c1 = src2 .c3 AND src1 .c1 < 200 ;
126+
127+ -- join (auto_join12.q)
128+ SELECT src1 .c1 , src2 .c4
129+ FROM
130+ (SELECT src .key as c1, src .value as c2 from src) src1
131+ JOIN
132+ (SELECT src .key as c3, src .value as c4 from src) src2
133+ ON src1 .c1 = src2 .c3 AND src1 .c1 < 200
134+ JOIN
135+ (SELECT src .key as c5, src .value as c6 from src) src3
136+ ON src1 .c1 = src3 .c5 AND src3 .c5 < 100 ;
137+
138+ -- join (auto_join13.q)
139+ SELECT src1 .c1 , src2 .c4
140+ FROM
141+ (SELECT src .key as c1, src .value as c2 from src) src1
142+ JOIN
143+ (SELECT src .key as c3, src .value as c4 from src) src2
144+ ON src1 .c1 = src2 .c3 AND src1 .c1 < 250
145+ JOIN
146+ (SELECT src .key as c5, src .value as c6 from src) src3
147+ ON src1 .c1 + src2 .c3 = src3 .c5 AND src3 .c5 < 400 ;
148+
149+ -- join (auto_join14.q)
150+ FROM src JOIN srcpart ON src .key = srcpart .key AND srcpart .ds = ' 2008-04-08' and src .key > 200
151+ SELECT src .key , srcpart .value ;
152+
153+ -- join (auto_join15.q)
154+ SELECT a .k1 , a .v1 , a .k2 , a .v2
155+ FROM (
156+ SELECT src1 .key as k1, src1 .value as v1, src2 .key as k2, src2 .value as v2
157+ FROM src src1 JOIN src src2 ON (src1 .key = src2 .key )
158+ SORT BY k1, v1, k2, v2
159+ ) a;
160+
161+ -- join (auto_join16.q)
162+ SELECT subq .key , tab .value
163+ FROM
164+ (select a .key , a .value from src a where a .key > 100 ) subq
165+ JOIN src tab
166+ ON (subq .key = tab .key and subq .key > 150 and subq .value = tab .value )
167+ where tab .key < 200 ;
168+
169+ -- join (auto_join17.q)
170+ SELECT src1.* , src2.*
171+ FROM src src1 JOIN src src2 ON (src1 .key = src2 .key );
172+
173+ -- join (auto_join18.q)
174+ SELECT a .key , a .value , b .key , b .value
175+ FROM
176+ (
177+ SELECT src1 .key as key, count (src1 .value ) AS value FROM src src1 group by src1 .key
178+ ) a
179+ FULL OUTER JOIN
180+ (
181+ SELECT src2 .key as key, count (distinct(src2 .value )) AS value
182+ FROM src1 src2 group by src2 .key
183+ ) b
184+ ON (a .key = b .key );
185+
186+ -- join (auto_join18_multi_distinct.q)
187+ SELECT a .key , a .value , b .key , b .value1 , b .value2
188+ FROM
189+ (
190+ SELECT src1 .key as key, count (src1 .value ) AS value FROM src src1 group by src1 .key
191+ ) a
192+ FULL OUTER JOIN
193+ (
194+ SELECT src2 .key as key, count (distinct(src2 .value )) AS value1,
195+ count (distinct(src2 .key )) AS value2
196+ FROM src1 src2 group by src2 .key
197+ ) b
198+ ON (a .key = b .key );
199+
200+ -- join (auto_join19.q)
201+ SELECT src1 .key , src2 .value
202+ FROM srcpart src1 JOIN src src2 ON (src1 .key = src2 .key )
203+ where (src1 .ds = ' 2008-04-08' or src1 .ds = ' 2008-04-09' )and (src1 .hr = ' 12' or src1 .hr = ' 11' );
204+
205+ -- join (auto_join20.q)
206+ SELECT a .k1 ,a .v1 ,a .k2 ,a .v2 ,a .k3 ,a .v3
207+ FROM (
208+ 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
209+ FROM src src1 JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 )
210+ RIGHT OUTER JOIN src src3 ON (src1 .key = src3 .key AND src3 .key < 300 )
211+ SORT BY k1,v1,k2,v2,k3,v3
212+ )a;
213+
214+ -- join (auto_join20.q)
215+ SELECT a .k1 ,a .v1 ,a .k2 ,a .v2 ,a .k3 ,a .v3
216+ FROM (
217+ 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
218+ FROM src src1 JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key < 100 )
219+ RIGHT OUTER JOIN src src3 ON (src1 .key = src3 .key AND src3 .key < 300 )
220+ SORT BY k1,v1,k2,v2,k3,v3
221+ )a;
222+
223+ -- join (auto_join21.q)
224+ SELECT *
225+ FROM
226+ src src1
227+ LEFT OUTER JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
228+ RIGHT OUTER JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
229+ SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
230+
231+ -- join (auto_join22.q)
232+ SELECT src5 .src1_value
233+ FROM
234+ (SELECT src3.* , src4 .value as src4_value, src4 .key as src4_key
235+ FROM src src4
236+ JOIN (SELECT src2.* , src1 .key as src1_key, src1 .value as src1_value
237+ FROM src src1
238+ JOIN src src2 ON src1 .key = src2 .key ) src3
239+ ON src3 .src1_key = src4 .key ) src5;
240+
241+ -- join (auto_join23.q)
242+ SELECT * FROM src src1 JOIN src src2
243+ WHERE src1 .key < 200 and src2 .key < 200
244+ SORT BY src1 .key , src1 .value , src2 .key , src2 .value ;
245+
246+ -- join (auto_join24.q)
247+ WITH tst1 AS (SELECT a .key , count (1 ) as cnt FROM src a group by a .key )
248+ SELECT sum (a .cnt ) FROM tst1 a JOIN tst1 b ON a .key = b .key ;
249+
250+ -- join (auto_join26.q)
251+ SELECT x .key , count (1 ) FROM src1 x JOIN src y ON (x .key = y .key ) group by x .key order by x .key ;
252+
253+ -- join (auto_join27.q)
254+ SELECT count (1 )
255+ FROM
256+ (
257+ SELECT src .key , src .value from src
258+ UNION ALL
259+ SELECT DISTINCT src .key , src .value from src
260+ ) src_12
261+ JOIN
262+ (
263+ SELECT src .key as k, src .value as v from src
264+ ) src3
265+ ON src_12 .key = src3 .k AND src3 .k < 300 ;
266+
267+ -- join (auto_join28.q)
268+ SELECT * FROM src src1
269+ LEFT OUTER JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
270+ RIGHT OUTER JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
271+ SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
272+
273+ -- join (auto_join28.q)
274+ SELECT * FROM src src1
275+ RIGHT OUTER JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
276+ RIGHT OUTER JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
277+ SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
278+
279+ -- join (auto_join28.q)
280+ SELECT * FROM src src1
281+ LEFT OUTER JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
282+ LEFT OUTER JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
283+ SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
284+
285+ -- join (auto_join28.q)
286+ SELECT * FROM src src1
287+ RIGHT OUTER JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
288+ LEFT OUTER JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
289+ SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
290+
291+ -- join (auto_join29.q)
292+ SELECT * FROM src src1
293+ JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
294+ LEFT OUTER JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
295+ SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
296+
297+ -- join (auto_join29.q)
298+ SELECT * FROM src src1
299+ JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
300+ RIGHT OUTER JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
301+ SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
302+
303+ -- join (auto_join29.q)
304+ SELECT * FROM src src1
305+ LEFT OUTER JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
306+ JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
307+ SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
308+
309+ -- join (auto_join29.q)
310+ SELECT * FROM src src1
311+ RIGHT OUTER JOIN src src2 ON (src1 .key = src2 .key AND src1 .key < 200 AND src2 .key > 200 )
312+ JOIN src src3 ON (src2 .key = src3 .key AND src3 .key < 200 )
313+ SORT BY src1 .key , src1 .value , src2 .key , src2 .value , src3 .key , src3 .value ;
314+
315+ -- join (auto_join30.q)
316+ FROM
317+ (SELECT src.* FROM src sort by key) x
318+ JOIN
319+ (SELECT src.* FROM src sort by value) Y
320+ ON (x .key = Y .key )
321+ select Y .key ,Y .value ;
322+
323+ -- join (auto_join30.q)
324+ FROM
325+ (SELECT src.* FROM src sort by key) x
326+ LEFT OUTER JOIN
327+ (SELECT src.* FROM src sort by value) Y
328+ ON (x .key = Y .key )
329+ select Y .key ,Y .value ;
330+
331+ -- join (auto_join30.q)
332+ FROM
333+ (SELECT src.* FROM src sort by key) x
334+ RIGHT OUTER JOIN
335+ (SELECT src.* FROM src sort by value) Y
336+ ON (x .key = Y .key )
337+ select Y .key ,Y .value ;
338+
339+ -- join (auto_join30.q)
340+ FROM
341+ (SELECT src.* FROM src sort by key) x
342+ JOIN
343+ (SELECT src.* FROM src sort by value) Y
344+ ON (x .key = Y .key )
345+ JOIN
346+ (SELECT src.* FROM src sort by value) Z
347+ ON (x .key = Z .key )
348+ select Y .key ,Y .value ;
349+
350+ -- join (auto_join30.q)
351+ FROM
352+ (SELECT src.* FROM src sort by key) x
353+ JOIN
354+ (SELECT src.* FROM src sort by value) Y
355+ ON (x .key = Y .key )
356+ LEFT OUTER JOIN
357+ (SELECT src.* FROM src sort by value) Z
358+ ON (x .key = Z .key )
359+ select Y .key ,Y .value ;
360+
361+ -- join (auto_join30.q)
362+ FROM
363+ (SELECT src.* FROM src sort by key) x
364+ LEFT OUTER JOIN
365+ (SELECT src.* FROM src sort by value) Y
366+ ON (x .key = Y .key )
367+ LEFT OUTER JOIN
368+ (SELECT src.* FROM src sort by value) Z
369+ ON (x .key = Z .key )
370+ select Y .key ,Y .value ;
371+
372+ -- join (auto_join30.q)
373+ FROM
374+ (SELECT src.* FROM src sort by key) x
375+ LEFT OUTER JOIN
376+ (SELECT src.* FROM src sort by value) Y
377+ ON (x .key = Y .key )
378+ RIGHT OUTER JOIN
379+ (SELECT src.* FROM src sort by value) Z
380+ ON (x .key = Z .key )
381+ select Y .key ,Y .value ;
382+
383+ -- join (auto_join30.q)
384+ FROM
385+ (SELECT src.* FROM src sort by key) x
386+ RIGHT OUTER JOIN
387+ (SELECT src.* FROM src sort by value) Y
388+ ON (x .key = Y .key )
389+ RIGHT OUTER JOIN
390+ (SELECT src.* FROM src sort by value) Z
391+ ON (x .key = Z .key )
392+ select Y .key ,Y .value ;
393+
394+ -- join (auto_join31.q)
395+ FROM
396+ (SELECT src.* FROM src sort by key) x
397+ RIGHT OUTER JOIN
398+ (SELECT src.* FROM src sort by value) Y
399+ ON (x .key = Y .key )
400+ JOIN
401+ (SELECT src.* FROM src sort by value) Z
402+ ON (x .key = Z .key )
403+ select Y .key ,Y .value ;
404+
0 commit comments