diff --git a/core/trino-main/src/main/java/io/trino/split/RecordPageSourceProvider.java b/core/trino-main/src/main/java/io/trino/split/RecordPageSourceProvider.java index 1a905b23db5e..a874fbc052a9 100644 --- a/core/trino-main/src/main/java/io/trino/split/RecordPageSourceProvider.java +++ b/core/trino-main/src/main/java/io/trino/split/RecordPageSourceProvider.java @@ -47,6 +47,6 @@ public ConnectorPageSource createPageSource( List columns, DynamicFilter dynamicFilter) { - return new RecordPageSource(recordSetProvider.getRecordSet(transaction, session, split, table, columns)); + return new RecordPageSource(recordSetProvider.getRecordSet(transaction, session, split, table, columns, dynamicFilter)); } } diff --git a/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorRecordSetProvider.java b/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorRecordSetProvider.java index 73d3980f6641..1c0111659367 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorRecordSetProvider.java +++ b/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorRecordSetProvider.java @@ -17,6 +17,19 @@ public interface ConnectorRecordSetProvider { + default RecordSet getRecordSet( + ConnectorTransactionHandle transaction, + ConnectorSession session, + ConnectorSplit split, + ConnectorTableHandle table, + List columns, + DynamicFilter dynamicFilter) + { + // By default, ignore dynamic filter (as it is an optimization and doesn't affect correctness). + return getRecordSet(transaction, session, split, table, columns); + } + + @Deprecated default RecordSet getRecordSet( ConnectorTransactionHandle transaction, ConnectorSession session, diff --git a/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorRecordSetProvider.java b/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorRecordSetProvider.java index da66239f7d30..8a2fd220154a 100644 --- a/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorRecordSetProvider.java +++ b/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorRecordSetProvider.java @@ -21,6 +21,7 @@ import io.trino.spi.connector.ConnectorSplit; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.RecordSet; import javax.inject.Inject; @@ -42,6 +43,12 @@ public ClassLoaderSafeConnectorRecordSetProvider(@ForClassLoaderSafe ConnectorRe this.classLoader = requireNonNull(classLoader, "classLoader is null"); } + @Override + public RecordSet getRecordSet(ConnectorTransactionHandle transaction, ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, List columns, DynamicFilter dynamicFilter) + { + return getRecordSet(transaction, session, split, table, columns); + } + @Override public RecordSet getRecordSet(ConnectorTransactionHandle transaction, ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, List columns) {