@Ignore("DX-11205") @Test public void withNullEqualInWhereConditionThreeTableHashJoin() throws Exception { final String query = "SELECT * FROM " + "cp.\"jsoninput/nullableOrdered1.json\" t1, " + "cp.\"jsoninput/nullableOrdered2.json\" t2, " + "cp.\"jsoninput/nullableOrdered3.json\" t3 " + "WHERE (t1.key = t2.key OR (t1.key IS NULL AND t2.key IS NULL)) AND" + "(t2.key = t3.key OR (t2.key IS NULL AND t3.key IS NULL))"; testPlanSubstrPatterns(query, new String[] { "HashJoin", "IS NOT DISTINCT FROM" }, null); }
@Test public void withDistinctFromJoinConditionHashJoin() throws Exception { final String query = "SELECT * FROM " + "cp.\"jsoninput/nullableOrdered1.json\" t1 JOIN " + "cp.\"jsoninput/nullableOrdered2.json\" t2 " + "ON t1.key IS NOT DISTINCT FROM t2.key AND t1.data is NOT null"; testPlanSubstrPatterns(query, new String[] { "HashJoin", "IS NOT DISTINCT FROM" }, null); nullEqualJoinHelper(query); }
@Ignore("DX-11205") @Test public void withNullEqualHashJoin() throws Exception { final String query = "SELECT * FROM " + "cp.\"jsoninput/nullableOrdered1.json\" t1 JOIN " + "cp.\"jsoninput/nullableOrdered2.json\" t2 " + "ON t1.key = t2.key OR (t1.key IS NULL AND t2.key IS NULL)"; testPlanSubstrPatterns(query, new String[] { "HashJoin", "IS NOT DISTINCT FROM" }, null); nullEqualJoinHelper(query); }
@Ignore("DX-11205") @Test public void withNullEqualInWhereConditionHashJoin() throws Exception { final String query = "SELECT * FROM " + "cp.\"jsoninput/nullableOrdered1.json\" t1, " + "cp.\"jsoninput/nullableOrdered2.json\" t2 " + "WHERE t1.key = t2.key OR (t1.key IS NULL AND t2.key IS NULL)"; testPlanSubstrPatterns(query, new String[] { "HashJoin", "IS NOT DISTINCT FROM" }, null); nullEqualJoinHelper(query); }
@Ignore("DX-11205") @Test public void withNullEqualAdditionFilter() throws Exception { final String query = "SELECT * FROM " + "cp.\"jsoninput/nullableOrdered1.json\" t1 JOIN " + "cp.\"jsoninput/nullableOrdered2.json\" t2 " + "ON (t1.key = t2.key OR (t1.key IS NULL AND t2.key IS NULL)) AND t1.data LIKE '%1%'"; testPlanSubstrPatterns(query, new String[] { "HashJoin(condition=[IS NOT DISTINCT FROM($0, $4)], joinType=[inner])", "Filter(condition=[$2])", // 'like' is pushed into project "[LIKE($1, '%1%')]" }, null); testBuilder() .sqlQuery(query) .unOrdered() .baselineColumns("key", "data", "data0", "key0") .baselineValues(null, "L_null_1", "R_null_1", null) .baselineValues("A", "L_A_1", "R_A_1", "A") .baselineValues(null, "L_null_1", "R_null_2", null) .baselineValues(null, "L_null_1", "R_null_3", null) .go(); }