@Test public void testQueryPlanSourceRefsInSubquery4() throws SQLException { String query = "SELECT * FROM (\n" + " SELECT K1, K2 FROM A\n" + " JOIN B ON K1 = K2\n" + " WHERE V1 = 'A' AND V2 = 'B'\n" + " LIMIT 10\n" + ") ORDER BY K1"; verifyQueryPlanSourceRefs(query, 2); }
@Test public void testQueryPlanSourceRefsInUnion() throws SQLException { String query = "SELECT K1, V1 FROM A WHERE V1 = 'A'\n" + "UNION ALL\n" + "SELECT K2, V2 FROM B WHERE V2 = 'B'"; verifyQueryPlanSourceRefs(query, 2); }
@Test public void testQueryPlanSourceRefsInHashJoin() throws SQLException { String query = "SELECT * FROM (\n" + " SELECT K1, V1 FROM A WHERE V1 = 'A'\n" + ") T1 JOIN (\n" + " SELECT K2, V2 FROM B WHERE V2 = 'B'\n" + ") T2 ON K1 = K2 ORDER BY V1"; verifyQueryPlanSourceRefs(query, 2); }
@Test public void testQueryPlanSourceRefsInSubquery2() throws SQLException { String query = "SELECT * FROM A\n" + "WHERE V1 > ANY (\n" + " SELECT K2 FROM B WHERE V2 = 'B'\n" + ")"; verifyQueryPlanSourceRefs(query, 2); }
@Test public void testQueryPlanSourceRefsInSortMergeJoin() throws SQLException { String query = "SELECT * FROM (\n" + " SELECT max(K1) KEY1, V1 FROM A GROUP BY V1\n" + ") T1 JOIN (\n" + " SELECT max(K2) KEY2, V2 FROM B GROUP BY V2\n" + ") T2 ON KEY1 = KEY2 ORDER BY V1"; verifyQueryPlanSourceRefs(query, 2); }
@Test public void testQueryPlanSourceRefsInSubquery() throws SQLException { String query = "SELECT * FROM A\n" + "WHERE K1 > (\n" + " SELECT max(K2) FROM B WHERE V2 = V1\n" + ") ORDER BY V1"; verifyQueryPlanSourceRefs(query, 2); }
@Test public void testQueryPlanSourceRefsInSubquery3() throws SQLException { String query = "SELECT * FROM A\n" + "WHERE V1 > ANY (\n" + " SELECT K2 FROM B B1" + " WHERE V2 = (\n" + " SELECT max(V2) FROM B B2\n" + " WHERE B2.K2 = B1.K2 AND V2 < 'K'\n" + " )\n" + ")"; verifyQueryPlanSourceRefs(query, 3); }
@Test public void testQueryPlanSourceRefsInSubquery5() throws SQLException { String query = "SELECT * FROM (\n" + " SELECT KEY1, KEY2 FROM (\n" + " SELECT max(K1) KEY1, V1 FROM A GROUP BY V1\n" + " ) T1 JOIN (\n" + " SELECT max(K2) KEY2, V2 FROM B GROUP BY V2\n" + " ) T2 ON KEY1 = KEY2 LIMIT 10\n" + ") ORDER BY KEY1"; verifyQueryPlanSourceRefs(query, 2); }