Search in sources :

Example 1 with FULL

use of io.trino.sql.planner.plan.CorrelatedJoinNode.Type.FULL in project trino by trinodb.

the class TestRemoveUnreferencedScalarSubqueries method testDoNotRemoveInputOfLeftOrFullJoinWhenSubqueryPotentiallyEmpty.

@Test
public void testDoNotRemoveInputOfLeftOrFullJoinWhenSubqueryPotentiallyEmpty() {
    tester().assertThat(new RemoveUnreferencedScalarSubqueries()).on(p -> {
        Symbol b = p.symbol("b");
        return p.correlatedJoin(emptyList(), p.values(emptyList(), ImmutableList.of(emptyList())), LEFT, TRUE_LITERAL, p.filter(new ComparisonExpression(LESS_THAN, b.toSymbolReference(), new LongLiteral("3")), p.values(2, b)));
    }).doesNotFire();
    tester().assertThat(new RemoveUnreferencedScalarSubqueries()).on(p -> {
        Symbol b = p.symbol("b");
        return p.correlatedJoin(emptyList(), p.values(emptyList(), ImmutableList.of(emptyList())), FULL, TRUE_LITERAL, p.filter(new ComparisonExpression(LESS_THAN, b.toSymbolReference(), new LongLiteral("3")), p.values(2, b)));
    }).doesNotFire();
}
Also used : Symbol(io.trino.sql.planner.Symbol) LEFT(io.trino.sql.planner.plan.CorrelatedJoinNode.Type.LEFT) BaseRuleTest(io.trino.sql.planner.iterative.rule.test.BaseRuleTest) RIGHT(io.trino.sql.planner.plan.CorrelatedJoinNode.Type.RIGHT) Collections.emptyList(java.util.Collections.emptyList) Test(org.testng.annotations.Test) PlanMatchPattern.values(io.trino.sql.planner.assertions.PlanMatchPattern.values) TRUE_LITERAL(io.trino.sql.tree.BooleanLiteral.TRUE_LITERAL) LESS_THAN(io.trino.sql.tree.ComparisonExpression.Operator.LESS_THAN) ComparisonExpression(io.trino.sql.tree.ComparisonExpression) BigintType(io.trino.spi.type.BigintType) FULL(io.trino.sql.planner.plan.CorrelatedJoinNode.Type.FULL) ImmutableList(com.google.common.collect.ImmutableList) LongLiteral(io.trino.sql.tree.LongLiteral) ComparisonExpression(io.trino.sql.tree.ComparisonExpression) LongLiteral(io.trino.sql.tree.LongLiteral) Symbol(io.trino.sql.planner.Symbol) BaseRuleTest(io.trino.sql.planner.iterative.rule.test.BaseRuleTest) Test(org.testng.annotations.Test)

Aggregations

ImmutableList (com.google.common.collect.ImmutableList)1 BigintType (io.trino.spi.type.BigintType)1 Symbol (io.trino.sql.planner.Symbol)1 PlanMatchPattern.values (io.trino.sql.planner.assertions.PlanMatchPattern.values)1 BaseRuleTest (io.trino.sql.planner.iterative.rule.test.BaseRuleTest)1 FULL (io.trino.sql.planner.plan.CorrelatedJoinNode.Type.FULL)1 LEFT (io.trino.sql.planner.plan.CorrelatedJoinNode.Type.LEFT)1 RIGHT (io.trino.sql.planner.plan.CorrelatedJoinNode.Type.RIGHT)1 TRUE_LITERAL (io.trino.sql.tree.BooleanLiteral.TRUE_LITERAL)1 ComparisonExpression (io.trino.sql.tree.ComparisonExpression)1 LESS_THAN (io.trino.sql.tree.ComparisonExpression.Operator.LESS_THAN)1 LongLiteral (io.trino.sql.tree.LongLiteral)1 Collections.emptyList (java.util.Collections.emptyList)1 Test (org.testng.annotations.Test)1