Skip to content

Commit

Permalink
Add unit tests for correlated EXISTS subquery
Browse files Browse the repository at this point in the history
Pull request: prestodb#5687
  • Loading branch information
kokosing committed Aug 26, 2016
1 parent 8822e9a commit 08a4da5
Showing 1 changed file with 21 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5949,6 +5949,27 @@ public void testCorrelatedExistsSubqueriesWithPrunedCorrelationSymbols()
assertQuery("SELECT count(*) FROM lineitem l WHERE (SELECT * FROM (SELECT EXISTS(SELECT l.orderkey)))", "VALUES 60175");
}

@Test
public void testCorrelatedExistsSubqueries()
{
String errorMsg = "Correlated subquery is not yet supported";

assertQueryFails("SELECT EXISTS(SELECT 1 WHERE l.orderkey > 0) FROM lineitem l", errorMsg);
assertQueryFails("SELECT count(*) FROM lineitem l WHERE EXISTS(SELECT 1 WHERE l.orderkey > 0)", errorMsg);
assertQueryFails("SELECT * FROM lineitem l ORDER BY EXISTS(SELECT 1 WHERE l.orderkey > 0)", errorMsg);

// group by
assertQueryFails("SELECT max(l.quantity), l.orderkey, EXISTS(SELECT 1 WHERE l.orderkey > 0) FROM lineitem l GROUP BY l.orderkey", errorMsg);
assertQueryFails("SELECT max(l.quantity), l.orderkey FROM lineitem l GROUP BY l.orderkey HAVING EXISTS (SELECT 1 WHERE l.orderkey > 0)", errorMsg);
assertQueryFails("SELECT max(l.quantity), l.orderkey FROM lineitem l GROUP BY l.orderkey, EXISTS (SELECT 1 WHERE l.orderkey > 0)", errorMsg);

// join
assertQueryFails("SELECT * FROM lineitem l1 JOIN lineitem l2 ON NOT EXISTS(SELECT 1 WHERE l1.orderkey = l2.orderkey)", errorMsg);

// subrelation
assertQueryFails("SELECT count(*) FROM lineitem l WHERE (SELECT * FROM (SELECT EXISTS(SELECT 1 WHERE l.orderkey > 0)))", errorMsg);
}

@Test
public void testPredicatePushdown()
throws Exception
Expand Down

0 comments on commit 08a4da5

Please sign in to comment.