diff --git a/core/trino-main/src/main/java/io/trino/operator/TableScanOperator.java b/core/trino-main/src/main/java/io/trino/operator/TableScanOperator.java index a0c88ac1228a..c367cf87dd2e 100644 --- a/core/trino-main/src/main/java/io/trino/operator/TableScanOperator.java +++ b/core/trino-main/src/main/java/io/trino/operator/TableScanOperator.java @@ -60,7 +60,6 @@ public static class TableScanOperatorFactory private final Optional tableCredentials; private final List columns; private final List columnTypes; - private final DynamicFilter dynamicFilter; private boolean closed; public TableScanOperatorFactory( @@ -71,8 +70,7 @@ public TableScanOperatorFactory( TableHandle table, Optional tableCredentials, List columns, - List columnTypes, - DynamicFilter dynamicFilter) + List columnTypes) { this.operatorId = operatorId; this.planNodeId = requireNonNull(planNodeId, "planNodeId is null"); @@ -81,7 +79,6 @@ public TableScanOperatorFactory( this.tableCredentials = requireNonNull(tableCredentials, "tableCredentials is null"); this.columns = ImmutableList.copyOf(requireNonNull(columns, "columns is null")); this.columnTypes = ImmutableList.copyOf(requireNonNull(columnTypes, "columnTypes is null")); - this.dynamicFilter = requireNonNull(dynamicFilter, "dynamicFilter is null"); this.pageSourceProvider = pageSourceProvider.createPageSourceProvider(table.catalogHandle()); } @@ -103,8 +100,7 @@ public SourceOperator createOperator(DriverContext driverContext) pageSourceProvider, table, tableCredentials, - columns, - dynamicFilter); + columns); if (isSourcePagesValidationEnabled(operatorContext.getSession())) { return new OutputValidatingSourceOperator( @@ -128,7 +124,6 @@ public void noMoreOperators() private final TableHandle table; private final Optional tableCredentials; private final List columns; - private final DynamicFilter dynamicFilter; private final LocalMemoryContext memoryContext; private final SettableFuture blocked = SettableFuture.create(); @@ -149,8 +144,7 @@ public TableScanOperator( PageSourceProvider pageSourceProvider, TableHandle table, Optional tableCredentials, - List columns, - DynamicFilter dynamicFilter) + List columns) { this.operatorContext = requireNonNull(operatorContext, "operatorContext is null"); this.sourceId = requireNonNull(sourceId, "planNodeId is null"); @@ -158,7 +152,6 @@ public TableScanOperator( this.table = requireNonNull(table, "table is null"); this.tableCredentials = requireNonNull(tableCredentials, "tableCredentials is null"); this.columns = ImmutableList.copyOf(requireNonNull(columns, "columns is null")); - this.dynamicFilter = requireNonNull(dynamicFilter, "dynamicFilter is null"); this.memoryContext = operatorContext.newLocalUserMemoryContext(TableScanOperator.class.getSimpleName()); } @@ -275,10 +268,7 @@ public Page getOutput() return null; } if (source == null) { - if (!dynamicFilter.getCurrentPredicate().isAll()) { - operatorContext.recordDynamicFilterSplitProcessed(1L); - } - source = pageSourceProvider.createPageSource(operatorContext.getSession(), split, table, tableCredentials, columns, dynamicFilter); + source = pageSourceProvider.createPageSource(operatorContext.getSession(), split, table, tableCredentials, columns, DynamicFilter.EMPTY); } SourcePage sourcePage = source.getNextSourcePage(); diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/LocalExecutionPlanner.java b/core/trino-main/src/main/java/io/trino/sql/planner/LocalExecutionPlanner.java index 5d8fe6b24de6..24d40d5e6399 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/LocalExecutionPlanner.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/LocalExecutionPlanner.java @@ -2013,20 +2013,8 @@ public PhysicalOperation visitSample(SampleNode node, LocalExecutionPlanContext @Override public PhysicalOperation visitFilter(FilterNode node, LocalExecutionPlanContext context) { - PlanNode sourceNode = node.getSource(); - Expression filterExpression = node.getPredicate(); - - if (node.getSource() instanceof TableScanNode tableScanNode) { - DynamicFilters.ExtractResult extractDynamicFilterResult = extractDynamicFilters(filterExpression); - Expression staticFilter = combineConjuncts(extractDynamicFilterResult.getStaticConjuncts()); - if (staticFilter.equals(TRUE) && extractDynamicFilterResult.getDynamicConjuncts().isEmpty()) { - // filter node contains only empty dynamic filter, fallback to normal table scan - return visitTableScan(node.getId(), tableScanNode, filterExpression, context); - } - } - List outputSymbols = node.getOutputSymbols(); - return visitScanFilterAndProject(context, node.getId(), sourceNode, Optional.of(filterExpression), Assignments.identity(outputSymbols), outputSymbols); + return visitScanFilterAndProject(context, node.getId(), node.getSource(), Optional.of(node.getPredicate()), Assignments.identity(outputSymbols), outputSymbols); } @Override @@ -2187,11 +2175,7 @@ private RowExpression toRowExpression(Expression expression, Map columns = ImmutableList.builder(); ImmutableList.Builder columnTypes = ImmutableList.builder(); for (Symbol symbol : node.getOutputSymbols()) { @@ -2199,9 +2183,8 @@ private PhysicalOperation visitTableScan(PlanNodeId planNodeId, TableScanNode no columnTypes.add(symbol.type()); } - DynamicFilter dynamicFilter = getDynamicFilter(node, filterExpression, context); Optional tableCredentials = context.getTaskContext().getTableCredentials(node.getId()); - OperatorFactory operatorFactory = new TableScanOperatorFactory(context.getNextOperatorId(), planNodeId, node.getId(), pageSourceManager, node.getTable(), tableCredentials, columns.build(), columnTypes.build(), dynamicFilter); + OperatorFactory operatorFactory = new TableScanOperatorFactory(context.getNextOperatorId(), planNodeId, node.getId(), pageSourceManager, node.getTable(), tableCredentials, columns.build(), columnTypes.build()); return new PhysicalOperation(operatorFactory, makeLayout(node)); } diff --git a/core/trino-main/src/test/java/io/trino/memory/TestMemoryBlocking.java b/core/trino-main/src/test/java/io/trino/memory/TestMemoryBlocking.java index 92bcc8e1f2a2..197b37e9a8a2 100644 --- a/core/trino-main/src/test/java/io/trino/memory/TestMemoryBlocking.java +++ b/core/trino-main/src/test/java/io/trino/memory/TestMemoryBlocking.java @@ -29,7 +29,6 @@ import io.trino.operator.TaskContext; import io.trino.spi.QueryId; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedPageSource; import io.trino.spi.type.Type; import io.trino.sql.planner.plan.PlanNodeId; @@ -109,8 +108,7 @@ public void testTableScanMemoryBlocking() .build()), TEST_TABLE_HANDLE, Optional.empty(), - ImmutableList.of(), - DynamicFilter.EMPTY); + ImmutableList.of()); PageConsumerOperator sink = createSinkOperator(types); Driver driver = Driver.createDriver(driverContext, source, sink); assertThat(driver.getDriverContext()).isSameAs(driverContext); diff --git a/core/trino-main/src/test/java/io/trino/operator/TestDriver.java b/core/trino-main/src/test/java/io/trino/operator/TestDriver.java index abb3b3e54dde..2902d7c62051 100644 --- a/core/trino-main/src/test/java/io/trino/operator/TestDriver.java +++ b/core/trino-main/src/test/java/io/trino/operator/TestDriver.java @@ -28,7 +28,6 @@ import io.trino.spi.TrinoException; import io.trino.spi.connector.ColumnHandle; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedPageSource; import io.trino.spi.type.Type; import io.trino.split.PageSourceProvider; @@ -176,8 +175,7 @@ public void testAddSourceFinish() .build()), TEST_TABLE_HANDLE, Optional.empty(), - ImmutableList.of(), - DynamicFilter.EMPTY); + ImmutableList.of()); PageConsumerOperator sink = createSinkOperator(types); Driver driver = Driver.createDriver(driverContext, source, sink); @@ -583,7 +581,7 @@ public AlwaysBlockedTableScanOperator( TableHandle table, List columns) { - super(operatorContext, planNodeId, pageSourceProvider, table, Optional.empty(), columns, DynamicFilter.EMPTY); + super(operatorContext, planNodeId, pageSourceProvider, table, Optional.empty(), columns); } @Override @@ -603,7 +601,7 @@ public AlwaysBlockedMemoryRevokingTableScanOperator( TableHandle table, List columns) { - super(operatorContext, planNodeId, pageSourceProvider, table, Optional.empty(), columns, DynamicFilter.EMPTY); + super(operatorContext, planNodeId, pageSourceProvider, table, Optional.empty(), columns); } @Override @@ -628,7 +626,7 @@ public NotBlockedTableScanOperator( TableHandle table, List columns) { - super(operatorContext, planNodeId, pageSourceProvider, table, Optional.empty(), columns, DynamicFilter.EMPTY); + super(operatorContext, planNodeId, pageSourceProvider, table, Optional.empty(), columns); } @Override diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestOrcPageSourceMemoryTracking.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestOrcPageSourceMemoryTracking.java index 61875867ee0f..305c03231020 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestOrcPageSourceMemoryTracking.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestOrcPageSourceMemoryTracking.java @@ -600,8 +600,7 @@ public SourceOperator newTableScanOperator(DriverContext driverContext) TEST_TABLE_HANDLE, Optional.empty(), columns.stream().map(ColumnHandle.class::cast).collect(toImmutableList()), - types, - DynamicFilter.EMPTY); + types); SourceOperator operator = sourceOperatorFactory.createOperator(driverContext); operator.addSplit(new Split(TEST_CATALOG_HANDLE, TestingSplit.createLocalSplit())); return operator;