Skip to content

Commit

Permalink
[SPARK-29145][SQL][FOLLOW-UP] Move tests from SubquerySuite to `sub…
Browse files Browse the repository at this point in the history
…query/in-subquery/in-joins.sql`

### What changes were proposed in this pull request?
Follow comment of #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 #26406 from AngersZhuuuu/SPARK-29145-FOLLOWUP.

Authored-by: angerszhu <angers.zhu@gmail.com>
Signed-off-by: Dongjoon Hyun <dhyun@apple.com>
  • Loading branch information
AngersZhuuuu authored and dongjoon-hyun committed Nov 13, 2019
1 parent 56a0b54 commit eb79af8
Show file tree
Hide file tree
Showing 3 changed files with 377 additions and 181 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,18 @@ create temporary view t3 as select * from values
("val3b", 8S, null, 19L, float(17), 25D, 26E2, timestamp '2015-05-04 01:02:00.000', date '2015-05-04')
as t3(t3a, t3b, t3c, t3d, t3e, t3f, t3g, t3h, t3i);

create temporary view s1 as select * from values
(1), (3), (5), (7), (9)
as s1(id);

create temporary view s2 as select * from values
(1), (3), (4), (6), (9)
as s2(id);

create temporary view s3 as select * from values
(3), (4), (6), (9)
as s3(id);

-- correlated IN subquery
-- different JOIN in parent side
-- TC 01.01
Expand Down Expand Up @@ -272,3 +284,101 @@ Group By t1a, t1b, t1c, t2a, t2b, t2c
HAVING t2c IS NOT NULL
ORDER By t2b DESC nulls last;


SELECT s1.id FROM s1
JOIN s2 ON s1.id = s2.id
AND s1.id IN (SELECT 9);


SELECT s1.id FROM s1
JOIN s2 ON s1.id = s2.id
AND s1.id NOT IN (SELECT 9);


-- IN with Subquery ON INNER JOIN
SELECT s1.id FROM s1
JOIN s2 ON s1.id = s2.id
AND s1.id IN (SELECT id FROM s3);


-- IN with Subquery ON LEFT SEMI JOIN
SELECT s1.id AS id2 FROM s1
LEFT SEMI JOIN s2
ON s1.id = s2.id
AND s1.id IN (SELECT id FROM s3);


-- IN with Subquery ON LEFT ANTI JOIN
SELECT s1.id as id2 FROM s1
LEFT ANTI JOIN s2
ON s1.id = s2.id
AND s1.id IN (SELECT id FROM s3);


-- IN with Subquery ON LEFT OUTER JOIN
SELECT s1.id, s2.id as id2 FROM s1
LEFT OUTER JOIN s2
ON s1.id = s2.id
AND s1.id IN (SELECT id FROM s3);


-- IN with Subquery ON RIGHT OUTER JOIN
SELECT s1.id, s2.id as id2 FROM s1
RIGHT OUTER JOIN s2
ON s1.id = s2.id
AND s1.id IN (SELECT id FROM s3);


-- IN with Subquery ON FULL OUTER JOIN
SELECT s1.id, s2.id AS id2 FROM s1
FULL OUTER JOIN s2
ON s1.id = s2.id
AND s1.id IN (SELECT id FROM s3);


-- NOT IN with Subquery ON INNER JOIN
SELECT s1.id FROM s1
JOIN s2 ON s1.id = s2.id
AND s1.id NOT IN (SELECT id FROM s3);


-- NOT IN with Subquery ON LEFT SEMI JOIN
SELECT s1.id AS id2 FROM s1
LEFT SEMI JOIN s2
ON s1.id = s2.id
AND s1.id NOT IN (SELECT id FROM s3);


-- NOT IN with Subquery ON LEFT ANTI JOIN
SELECT s1.id AS id2 FROM s1
LEFT ANTI JOIN s2
ON s1.id = s2.id
AND s1.id NOT IN (SELECT id FROM s3);


-- NOT IN with Subquery ON LEFT OUTER JOIN
SELECT s1.id, s2.id AS id2 FROM s1
LEFT OUTER JOIN s2
ON s1.id = s2.id
AND s1.id NOT IN (SELECT id FROM s3);


-- NOT IN with Subquery ON RIGHT OUTER JOIN
SELECT s1.id, s2.id AS id2 FROM s1
RIGHT OUTER JOIN s2
ON s1.id = s2.id
AND s1.id NOT IN (SELECT id FROM s3);


-- NOT IN with Subquery ON FULL OUTER JOIN
SELECT s1.id, s2.id AS id2 FROM s1
FULL OUTER JOIN s2
ON s1.id = s2.id
AND s1.id NOT IN (SELECT id FROM s3);


DROP VIEW s1;

DROP VIEW s2;

DROP VIEW s3;
Loading

0 comments on commit eb79af8

Please sign in to comment.