Search in sources :

Example 31 with FilterNode

use of com.facebook.presto.spi.plan.FilterNode in project presto by prestodb.

the class TestPinotPlanOptimizer method testTimestampCastingPredicatePushdown.

@Test
public void testTimestampCastingPredicatePushdown() {
    PlanBuilder planBuilder = createPlanBuilder(defaultSessionHolder);
    FilterNode filter = filter(planBuilder, tableScan(planBuilder, pinotTable, regionId, city, fare, millisSinceEpoch), getRowExpression("cast(millissinceepoch as date) < DATE '2014-01-31'", defaultSessionHolder));
    PlanNode originalPlan = limit(planBuilder, 50L, filter);
    PlanNode optimized = getOptimizedPlan(planBuilder, originalPlan);
    assertPlanMatch(optimized, PinotTableScanMatcher.match(pinotTable, Optional.of("SELECT regionId, city, fare, millisSinceEpoch FROM hybrid WHERE \\(millisSinceEpoch < 1391126400000\\) LIMIT 50"), Optional.of(false), originalPlan.getOutputVariables(), useSqlSyntax()), typeProvider);
}
Also used : PlanNode(com.facebook.presto.spi.plan.PlanNode) FilterNode(com.facebook.presto.spi.plan.FilterNode) PlanBuilder(com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder) Test(org.testng.annotations.Test)

Aggregations

FilterNode (com.facebook.presto.spi.plan.FilterNode)31 PlanNode (com.facebook.presto.spi.plan.PlanNode)22 VariableReferenceExpression (com.facebook.presto.spi.relation.VariableReferenceExpression)19 Test (org.testng.annotations.Test)16 RowExpression (com.facebook.presto.spi.relation.RowExpression)15 TableScanNode (com.facebook.presto.spi.plan.TableScanNode)11 ProjectNode (com.facebook.presto.spi.plan.ProjectNode)10 JoinNode (com.facebook.presto.sql.planner.plan.JoinNode)10 ImmutableList (com.google.common.collect.ImmutableList)8 ColumnHandle (com.facebook.presto.spi.ColumnHandle)7 PlanBuilder (com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder)7 SemiJoinNode (com.facebook.presto.sql.planner.plan.SemiJoinNode)7 Expression (com.facebook.presto.sql.tree.Expression)7 Session (com.facebook.presto.Session)6 OriginalExpressionUtils.castToRowExpression (com.facebook.presto.sql.relational.OriginalExpressionUtils.castToRowExpression)5 ImmutableList.toImmutableList (com.google.common.collect.ImmutableList.toImmutableList)5 Map (java.util.Map)5 Objects.requireNonNull (java.util.Objects.requireNonNull)5 Optional (java.util.Optional)5 LogicalRowExpressions (com.facebook.presto.expressions.LogicalRowExpressions)4