Skip to content

Commit eb79af8

Browse files
AngersZhuuuudongjoon-hyun
authored andcommitted
[SPARK-29145][SQL][FOLLOW-UP] Move tests from SubquerySuite to subquery/in-subquery/in-joins.sql
### What changes were proposed in this pull request? Follow comment of apache#25854 (comment) ### Why are the changes needed? NO ### Does this PR introduce any user-facing change? NO ### How was this patch tested? ADD TEST CASE Closes apache#26406 from AngersZhuuuu/SPARK-29145-FOLLOWUP. Authored-by: angerszhu <[email protected]> Signed-off-by: Dongjoon Hyun <[email protected]>
1 parent 56a0b54 commit eb79af8

File tree

3 files changed

+377
-181
lines changed

3 files changed

+377
-181
lines changed

sql/core/src/test/resources/sql-tests/inputs/subquery/in-subquery/in-joins.sql

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,18 @@ create temporary view t3 as select * from values
5151
("val3b", 8S, null, 19L, float(17), 25D, 26E2, timestamp '2015-05-04 01:02:00.000', date '2015-05-04')
5252
as t3(t3a, t3b, t3c, t3d, t3e, t3f, t3g, t3h, t3i);
5353

54+
create temporary view s1 as select * from values
55+
(1), (3), (5), (7), (9)
56+
as s1(id);
57+
58+
create temporary view s2 as select * from values
59+
(1), (3), (4), (6), (9)
60+
as s2(id);
61+
62+
create temporary view s3 as select * from values
63+
(3), (4), (6), (9)
64+
as s3(id);
65+
5466
-- correlated IN subquery
5567
-- different JOIN in parent side
5668
-- TC 01.01
@@ -272,3 +284,101 @@ Group By t1a, t1b, t1c, t2a, t2b, t2c
272284
HAVING t2c IS NOT NULL
273285
ORDER By t2b DESC nulls last;
274286

287+
288+
SELECT s1.id FROM s1
289+
JOIN s2 ON s1.id = s2.id
290+
AND s1.id IN (SELECT 9);
291+
292+
293+
SELECT s1.id FROM s1
294+
JOIN s2 ON s1.id = s2.id
295+
AND s1.id NOT IN (SELECT 9);
296+
297+
298+
-- IN with Subquery ON INNER JOIN
299+
SELECT s1.id FROM s1
300+
JOIN s2 ON s1.id = s2.id
301+
AND s1.id IN (SELECT id FROM s3);
302+
303+
304+
-- IN with Subquery ON LEFT SEMI JOIN
305+
SELECT s1.id AS id2 FROM s1
306+
LEFT SEMI JOIN s2
307+
ON s1.id = s2.id
308+
AND s1.id IN (SELECT id FROM s3);
309+
310+
311+
-- IN with Subquery ON LEFT ANTI JOIN
312+
SELECT s1.id as id2 FROM s1
313+
LEFT ANTI JOIN s2
314+
ON s1.id = s2.id
315+
AND s1.id IN (SELECT id FROM s3);
316+
317+
318+
-- IN with Subquery ON LEFT OUTER JOIN
319+
SELECT s1.id, s2.id as id2 FROM s1
320+
LEFT OUTER JOIN s2
321+
ON s1.id = s2.id
322+
AND s1.id IN (SELECT id FROM s3);
323+
324+
325+
-- IN with Subquery ON RIGHT OUTER JOIN
326+
SELECT s1.id, s2.id as id2 FROM s1
327+
RIGHT OUTER JOIN s2
328+
ON s1.id = s2.id
329+
AND s1.id IN (SELECT id FROM s3);
330+
331+
332+
-- IN with Subquery ON FULL OUTER JOIN
333+
SELECT s1.id, s2.id AS id2 FROM s1
334+
FULL OUTER JOIN s2
335+
ON s1.id = s2.id
336+
AND s1.id IN (SELECT id FROM s3);
337+
338+
339+
-- NOT IN with Subquery ON INNER JOIN
340+
SELECT s1.id FROM s1
341+
JOIN s2 ON s1.id = s2.id
342+
AND s1.id NOT IN (SELECT id FROM s3);
343+
344+
345+
-- NOT IN with Subquery ON LEFT SEMI JOIN
346+
SELECT s1.id AS id2 FROM s1
347+
LEFT SEMI JOIN s2
348+
ON s1.id = s2.id
349+
AND s1.id NOT IN (SELECT id FROM s3);
350+
351+
352+
-- NOT IN with Subquery ON LEFT ANTI JOIN
353+
SELECT s1.id AS id2 FROM s1
354+
LEFT ANTI JOIN s2
355+
ON s1.id = s2.id
356+
AND s1.id NOT IN (SELECT id FROM s3);
357+
358+
359+
-- NOT IN with Subquery ON LEFT OUTER JOIN
360+
SELECT s1.id, s2.id AS id2 FROM s1
361+
LEFT OUTER JOIN s2
362+
ON s1.id = s2.id
363+
AND s1.id NOT IN (SELECT id FROM s3);
364+
365+
366+
-- NOT IN with Subquery ON RIGHT OUTER JOIN
367+
SELECT s1.id, s2.id AS id2 FROM s1
368+
RIGHT OUTER JOIN s2
369+
ON s1.id = s2.id
370+
AND s1.id NOT IN (SELECT id FROM s3);
371+
372+
373+
-- NOT IN with Subquery ON FULL OUTER JOIN
374+
SELECT s1.id, s2.id AS id2 FROM s1
375+
FULL OUTER JOIN s2
376+
ON s1.id = s2.id
377+
AND s1.id NOT IN (SELECT id FROM s3);
378+
379+
380+
DROP VIEW s1;
381+
382+
DROP VIEW s2;
383+
384+
DROP VIEW s3;

0 commit comments

Comments
 (0)