diff --git a/core/trino-main/src/main/java/io/trino/connector/informationschema/InformationSchemaSplitManager.java b/core/trino-main/src/main/java/io/trino/connector/informationschema/InformationSchemaSplitManager.java index 3128a99f1a0a..3116dabe8a2b 100644 --- a/core/trino-main/src/main/java/io/trino/connector/informationschema/InformationSchemaSplitManager.java +++ b/core/trino-main/src/main/java/io/trino/connector/informationschema/InformationSchemaSplitManager.java @@ -22,6 +22,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; @@ -45,7 +46,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { List localAddress = ImmutableList.of(nodeManager.getCurrentNode().getHostAndPort()); ConnectorSplit split = new InformationSchemaSplit(localAddress); diff --git a/core/trino-main/src/main/java/io/trino/connector/system/SystemSplitManager.java b/core/trino-main/src/main/java/io/trino/connector/system/SystemSplitManager.java index 0cab1db75356..c4e6550e965c 100644 --- a/core/trino-main/src/main/java/io/trino/connector/system/SystemSplitManager.java +++ b/core/trino-main/src/main/java/io/trino/connector/system/SystemSplitManager.java @@ -25,6 +25,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; import io.trino.spi.connector.SystemTable; @@ -58,10 +59,11 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle tableHandle, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { SystemTableHandle table = (SystemTableHandle) tableHandle; - TupleDomain constraint = table.getConstraint(); + TupleDomain tableConstraint = table.getConstraint(); SystemTable systemTable = tables.getSystemTable(session, table.getSchemaTableName()) // table might disappear in the meantime @@ -70,7 +72,7 @@ public ConnectorSplitSource getSplits( Distribution tableDistributionMode = systemTable.getDistribution(); if (tableDistributionMode == SINGLE_COORDINATOR) { HostAddress address = nodeManager.getCurrentNode().getHostAndPort(); - ConnectorSplit split = new SystemSplit(address, constraint); + ConnectorSplit split = new SystemSplit(address, tableConstraint); return new FixedSplitSource(ImmutableList.of(split)); } @@ -84,7 +86,7 @@ else if (tableDistributionMode == ALL_NODES) { } Set nodeSet = nodes.build(); for (InternalNode node : nodeSet) { - splits.add(new SystemSplit(node.getHostAndPort(), constraint)); + splits.add(new SystemSplit(node.getHostAndPort(), tableConstraint)); } return new FixedSplitSource(splits.build()); } diff --git a/core/trino-main/src/test/java/io/trino/connector/MockConnector.java b/core/trino-main/src/test/java/io/trino/connector/MockConnector.java index 7308cf572ef2..5eb3236167f0 100644 --- a/core/trino-main/src/test/java/io/trino/connector/MockConnector.java +++ b/core/trino-main/src/test/java/io/trino/connector/MockConnector.java @@ -247,7 +247,13 @@ public ConnectorSplitManager getSplitManager() return new ConnectorSplitManager() { @Override - public ConnectorSplitSource getSplits(ConnectorTransactionHandle transaction, ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, DynamicFilter dynamicFilter) + public ConnectorSplitSource getSplits( + ConnectorTransactionHandle transaction, + ConnectorSession session, + ConnectorTableHandle table, + SplitSchedulingStrategy splitSchedulingStrategy, + DynamicFilter dynamicFilter, + Constraint constraint) { return new FixedSplitSource(ImmutableList.of(MOCK_CONNECTOR_SPLIT)); } diff --git a/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorSplitManager.java b/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorSplitManager.java index 27d45bd99665..27dcc4d9e332 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorSplitManager.java +++ b/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorSplitManager.java @@ -15,17 +15,6 @@ public interface ConnectorSplitManager { - @Deprecated - default ConnectorSplitSource getSplits( - ConnectorTransactionHandle transaction, - ConnectorSession session, - ConnectorTableHandle table, - SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) - { - throw new UnsupportedOperationException(); - } - default ConnectorSplitSource getSplits( ConnectorTransactionHandle transaction, ConnectorSession session, @@ -34,7 +23,7 @@ default ConnectorSplitSource getSplits( DynamicFilter dynamicFilter, Constraint constraint) { - return getSplits(transaction, session, table, splitSchedulingStrategy, dynamicFilter); + throw new UnsupportedOperationException(); } enum SplitSchedulingStrategy diff --git a/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorSplitManager.java b/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorSplitManager.java index bf3bee3ef638..73211cdc46e6 100644 --- a/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorSplitManager.java +++ b/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorSplitManager.java @@ -39,14 +39,6 @@ public ClassLoaderSafeConnectorSplitManager(@ForClassLoaderSafe ConnectorSplitMa this.classLoader = requireNonNull(classLoader, "classLoader is null"); } - @Override - public ConnectorSplitSource getSplits(ConnectorTransactionHandle transaction, ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, DynamicFilter dynamicFilter) - { - try (ThreadContextClassLoader ignored = new ThreadContextClassLoader(classLoader)) { - return delegate.getSplits(transaction, session, table, splitSchedulingStrategy, dynamicFilter); - } - } - @Override public ConnectorSplitSource getSplits( ConnectorTransactionHandle transaction, diff --git a/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/AccumuloSplitManager.java b/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/AccumuloSplitManager.java index e4326b66b695..daebe5da99ca 100644 --- a/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/AccumuloSplitManager.java +++ b/plugin/trino-accumulo/src/main/java/io/trino/plugin/accumulo/AccumuloSplitManager.java @@ -27,6 +27,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; import io.trino.spi.predicate.Domain; @@ -58,7 +59,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle tableHandle, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { AccumuloTableHandle handle = (AccumuloTableHandle) tableHandle; diff --git a/plugin/trino-atop/src/main/java/io/trino/plugin/atop/AtopSplitManager.java b/plugin/trino-atop/src/main/java/io/trino/plugin/atop/AtopSplitManager.java index 181064f09d60..091ae5caa73a 100644 --- a/plugin/trino-atop/src/main/java/io/trino/plugin/atop/AtopSplitManager.java +++ b/plugin/trino-atop/src/main/java/io/trino/plugin/atop/AtopSplitManager.java @@ -21,6 +21,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; import io.trino.spi.predicate.Domain; @@ -61,7 +62,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { AtopTableHandle tableHandle = (AtopTableHandle) table; diff --git a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/JdbcSplitManager.java b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/JdbcSplitManager.java index 65619299e3d0..259cf984f953 100644 --- a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/JdbcSplitManager.java +++ b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/JdbcSplitManager.java @@ -18,6 +18,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import javax.inject.Inject; @@ -41,7 +42,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { return jdbcClient.getSplits(session, (JdbcTableHandle) table); } diff --git a/plugin/trino-bigquery/src/main/java/io/trino/plugin/bigquery/BigQuerySplitManager.java b/plugin/trino-bigquery/src/main/java/io/trino/plugin/bigquery/BigQuerySplitManager.java index deb01cea1594..e984af7af095 100644 --- a/plugin/trino-bigquery/src/main/java/io/trino/plugin/bigquery/BigQuerySplitManager.java +++ b/plugin/trino-bigquery/src/main/java/io/trino/plugin/bigquery/BigQuerySplitManager.java @@ -30,6 +30,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; import io.trino.spi.connector.SchemaTableName; @@ -90,15 +91,16 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { log.debug("getSplits(transaction=%s, session=%s, table=%s, splitSchedulingStrategy=%s)", transaction, session, table, splitSchedulingStrategy); BigQueryTableHandle bigQueryTableHandle = (BigQueryTableHandle) table; TableId remoteTableId = bigQueryTableHandle.getRemoteTableName().toTableId(); int actualParallelism = parallelism.orElse(nodeManager.getRequiredWorkerNodes().size()); - TupleDomain constraint = bigQueryTableHandle.getConstraint(); - Optional filter = BigQueryFilterQueryBuilder.buildFilter(constraint); + TupleDomain tableConstraint = bigQueryTableHandle.getConstraint(); + Optional filter = BigQueryFilterQueryBuilder.buildFilter(tableConstraint); List splits = emptyProjectionIsRequired(bigQueryTableHandle.getProjectedColumns()) ? createEmptyProjection(session, remoteTableId, actualParallelism, filter) : readFromBigQuery(session, TableDefinition.Type.valueOf(bigQueryTableHandle.getType()), remoteTableId, bigQueryTableHandle.getProjectedColumns(), actualParallelism, filter); diff --git a/plugin/trino-blackhole/src/main/java/io/trino/plugin/blackhole/BlackHoleSplitManager.java b/plugin/trino-blackhole/src/main/java/io/trino/plugin/blackhole/BlackHoleSplitManager.java index 7d5ad677a792..f3b25d590d8b 100644 --- a/plugin/trino-blackhole/src/main/java/io/trino/plugin/blackhole/BlackHoleSplitManager.java +++ b/plugin/trino-blackhole/src/main/java/io/trino/plugin/blackhole/BlackHoleSplitManager.java @@ -18,6 +18,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; @@ -32,7 +33,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { int splitCount = ((BlackHoleTableHandle) table).getSplitCount(); return new FixedSplitSource(nCopies(splitCount, BlackHoleSplit.INSTANCE)); diff --git a/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraSplitManager.java b/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraSplitManager.java index 4f94df8432ef..75bbf8a05490 100644 --- a/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraSplitManager.java +++ b/plugin/trino-cassandra/src/main/java/io/trino/plugin/cassandra/CassandraSplitManager.java @@ -30,6 +30,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; import io.trino.spi.predicate.TupleDomain; @@ -76,7 +77,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle tableHandle, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { CassandraTableHandle cassandraTableHandle = (CassandraTableHandle) tableHandle; diff --git a/plugin/trino-cassandra/src/test/java/io/trino/plugin/cassandra/TestCassandraConnector.java b/plugin/trino-cassandra/src/test/java/io/trino/plugin/cassandra/TestCassandraConnector.java index 5d35ceedee8b..a5210f4207d1 100644 --- a/plugin/trino-cassandra/src/test/java/io/trino/plugin/cassandra/TestCassandraConnector.java +++ b/plugin/trino-cassandra/src/test/java/io/trino/plugin/cassandra/TestCassandraConnector.java @@ -188,7 +188,7 @@ public void testGetRecords() tableHandle = metadata.applyFilter(SESSION, tableHandle, Constraint.alwaysTrue()).get().getHandle(); - List splits = getAllSplits(splitManager.getSplits(transaction, SESSION, tableHandle, UNGROUPED_SCHEDULING, DynamicFilter.EMPTY)); + List splits = getAllSplits(splitManager.getSplits(transaction, SESSION, tableHandle, UNGROUPED_SCHEDULING, DynamicFilter.EMPTY, Constraint.alwaysTrue())); long rowNumber = 0; for (ConnectorSplit split : splits) { @@ -260,7 +260,7 @@ public void testGetTupleType() ConnectorTransactionHandle transaction = CassandraTransactionHandle.INSTANCE; - List splits = getAllSplits(splitManager.getSplits(transaction, SESSION, tableHandle, UNGROUPED_SCHEDULING, DynamicFilter.EMPTY)); + List splits = getAllSplits(splitManager.getSplits(transaction, SESSION, tableHandle, UNGROUPED_SCHEDULING, DynamicFilter.EMPTY, Constraint.alwaysTrue())); long rowNumber = 0; for (ConnectorSplit split : splits) { @@ -311,7 +311,7 @@ public void testGetUserDefinedType() tableHandle = metadata.applyFilter(SESSION, tableHandle, Constraint.alwaysTrue()).get().getHandle(); - List splits = getAllSplits(splitManager.getSplits(transaction, SESSION, tableHandle, UNGROUPED_SCHEDULING, DynamicFilter.EMPTY)); + List splits = getAllSplits(splitManager.getSplits(transaction, SESSION, tableHandle, UNGROUPED_SCHEDULING, DynamicFilter.EMPTY, Constraint.alwaysTrue())); long rowNumber = 0; for (ConnectorSplit split : splits) { diff --git a/plugin/trino-elasticsearch/src/main/java/io/trino/plugin/elasticsearch/ElasticsearchSplitManager.java b/plugin/trino-elasticsearch/src/main/java/io/trino/plugin/elasticsearch/ElasticsearchSplitManager.java index d6de3072f1bc..2315a210b23c 100644 --- a/plugin/trino-elasticsearch/src/main/java/io/trino/plugin/elasticsearch/ElasticsearchSplitManager.java +++ b/plugin/trino-elasticsearch/src/main/java/io/trino/plugin/elasticsearch/ElasticsearchSplitManager.java @@ -20,6 +20,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; @@ -49,7 +50,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { ElasticsearchTableHandle tableHandle = (ElasticsearchTableHandle) table; diff --git a/plugin/trino-example-http/src/main/java/io/trino/plugin/example/ExampleSplitManager.java b/plugin/trino-example-http/src/main/java/io/trino/plugin/example/ExampleSplitManager.java index d3057b57f5ff..71b7c9a18244 100644 --- a/plugin/trino-example-http/src/main/java/io/trino/plugin/example/ExampleSplitManager.java +++ b/plugin/trino-example-http/src/main/java/io/trino/plugin/example/ExampleSplitManager.java @@ -19,6 +19,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; import io.trino.spi.connector.TableNotFoundException; @@ -49,7 +50,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle connectorTableHandle, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { ExampleTableHandle tableHandle = (ExampleTableHandle) connectorTableHandle; ExampleTable table = exampleClient.getTable(tableHandle.getSchemaName(), tableHandle.getTableName()); diff --git a/plugin/trino-google-sheets/src/main/java/io/trino/plugin/google/sheets/SheetsSplitManager.java b/plugin/trino-google-sheets/src/main/java/io/trino/plugin/google/sheets/SheetsSplitManager.java index cf38c592b77a..fe0ecb3a105e 100644 --- a/plugin/trino-google-sheets/src/main/java/io/trino/plugin/google/sheets/SheetsSplitManager.java +++ b/plugin/trino-google-sheets/src/main/java/io/trino/plugin/google/sheets/SheetsSplitManager.java @@ -19,6 +19,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; import io.trino.spi.connector.TableNotFoundException; @@ -49,7 +50,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle connectorTableHandle, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { SheetsTableHandle tableHandle = (SheetsTableHandle) connectorTableHandle; Optional table = sheetsClient.getTable(tableHandle.getTableName()); diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveSplitManager.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveSplitManager.java index a1d9d8909c84..2543a310b0d2 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveSplitManager.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HiveSplitManager.java @@ -35,6 +35,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; import io.trino.spi.connector.SchemaTableName; @@ -179,7 +180,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle tableHandle, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { HiveTableHandle hiveTable = (HiveTableHandle) tableHandle; SchemaTableName tableName = hiveTable.getSchemaTableName(); diff --git a/plugin/trino-jmx/src/main/java/io/trino/plugin/jmx/JmxSplitManager.java b/plugin/trino-jmx/src/main/java/io/trino/plugin/jmx/JmxSplitManager.java index c2ef8aa20271..22a69e7325c8 100644 --- a/plugin/trino-jmx/src/main/java/io/trino/plugin/jmx/JmxSplitManager.java +++ b/plugin/trino-jmx/src/main/java/io/trino/plugin/jmx/JmxSplitManager.java @@ -23,6 +23,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; import io.trino.spi.predicate.NullableValue; @@ -58,7 +59,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { JmxTableHandle tableHandle = (JmxTableHandle) table; diff --git a/plugin/trino-jmx/src/test/java/io/trino/plugin/jmx/TestJmxSplitManager.java b/plugin/trino-jmx/src/test/java/io/trino/plugin/jmx/TestJmxSplitManager.java index ff4337111a7c..ac112765c379 100644 --- a/plugin/trino-jmx/src/test/java/io/trino/plugin/jmx/TestJmxSplitManager.java +++ b/plugin/trino-jmx/src/test/java/io/trino/plugin/jmx/TestJmxSplitManager.java @@ -27,6 +27,7 @@ import io.trino.spi.connector.ConnectorSplit; import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.RecordCursor; import io.trino.spi.connector.RecordSet; @@ -105,7 +106,7 @@ public void testPredicatePushdown() TupleDomain nodeTupleDomain = TupleDomain.fromFixedValues(ImmutableMap.of(columnHandle, NullableValue.of(createUnboundedVarcharType(), utf8Slice(nodeIdentifier)))); JmxTableHandle tableHandle = new JmxTableHandle(new SchemaTableName("schema", "tableName"), ImmutableList.of("objectName"), ImmutableList.of(columnHandle), true, nodeTupleDomain); - ConnectorSplitSource splitSource = splitManager.getSplits(JmxTransactionHandle.INSTANCE, SESSION, tableHandle, UNGROUPED_SCHEDULING, DynamicFilter.EMPTY); + ConnectorSplitSource splitSource = splitManager.getSplits(JmxTransactionHandle.INSTANCE, SESSION, tableHandle, UNGROUPED_SCHEDULING, DynamicFilter.EMPTY, Constraint.alwaysTrue()); List allSplits = getAllSplits(splitSource); assertEquals(allSplits.size(), 1); @@ -119,7 +120,7 @@ public void testNoPredicate() throws Exception { JmxTableHandle tableHandle = new JmxTableHandle(new SchemaTableName("schema", "tableName"), ImmutableList.of("objectName"), ImmutableList.of(columnHandle), true, TupleDomain.all()); - ConnectorSplitSource splitSource = splitManager.getSplits(JmxTransactionHandle.INSTANCE, SESSION, tableHandle, UNGROUPED_SCHEDULING, DynamicFilter.EMPTY); + ConnectorSplitSource splitSource = splitManager.getSplits(JmxTransactionHandle.INSTANCE, SESSION, tableHandle, UNGROUPED_SCHEDULING, DynamicFilter.EMPTY, Constraint.alwaysTrue()); List allSplits = getAllSplits(splitSource); assertEquals(allSplits.size(), nodes.size()); @@ -195,7 +196,7 @@ private RecordSet getRecordSet(SchemaTableName schemaTableName) JmxTableHandle tableHandle = metadata.getTableHandle(SESSION, schemaTableName); List columnHandles = ImmutableList.copyOf(metadata.getColumnHandles(SESSION, tableHandle).values()); - ConnectorSplitSource splitSource = splitManager.getSplits(JmxTransactionHandle.INSTANCE, SESSION, tableHandle, UNGROUPED_SCHEDULING, DynamicFilter.EMPTY); + ConnectorSplitSource splitSource = splitManager.getSplits(JmxTransactionHandle.INSTANCE, SESSION, tableHandle, UNGROUPED_SCHEDULING, DynamicFilter.EMPTY, Constraint.alwaysTrue()); List allSplits = getAllSplits(splitSource); assertEquals(allSplits.size(), nodes.size()); ConnectorSplit split = allSplits.get(0); diff --git a/plugin/trino-kafka/src/main/java/io/trino/plugin/kafka/KafkaSplitManager.java b/plugin/trino-kafka/src/main/java/io/trino/plugin/kafka/KafkaSplitManager.java index 45b3a2b1a5a9..cbdd453a0644 100644 --- a/plugin/trino-kafka/src/main/java/io/trino/plugin/kafka/KafkaSplitManager.java +++ b/plugin/trino-kafka/src/main/java/io/trino/plugin/kafka/KafkaSplitManager.java @@ -22,6 +22,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; import org.apache.kafka.clients.consumer.KafkaConsumer; @@ -62,7 +63,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { KafkaTableHandle kafkaTableHandle = (KafkaTableHandle) table; try (KafkaConsumer kafkaConsumer = consumerFactory.create(session)) { diff --git a/plugin/trino-kinesis/src/main/java/io/trino/plugin/kinesis/KinesisSplitManager.java b/plugin/trino-kinesis/src/main/java/io/trino/plugin/kinesis/KinesisSplitManager.java index 20be387ae43e..516e76ffce6e 100644 --- a/plugin/trino-kinesis/src/main/java/io/trino/plugin/kinesis/KinesisSplitManager.java +++ b/plugin/trino-kinesis/src/main/java/io/trino/plugin/kinesis/KinesisSplitManager.java @@ -26,6 +26,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; @@ -100,7 +101,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { KinesisTableHandle kinesisTableHandle = (KinesisTableHandle) table; diff --git a/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/KuduSplitManager.java b/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/KuduSplitManager.java index a78e1b7197aa..059542ac1cd7 100755 --- a/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/KuduSplitManager.java +++ b/plugin/trino-kudu/src/main/java/io/trino/plugin/kudu/KuduSplitManager.java @@ -19,6 +19,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; @@ -50,7 +51,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { long timeoutMillis = getDynamicFilteringWaitTimeout(session).toMillis(); if (timeoutMillis == 0 || !dynamicFilter.isAwaitable()) { diff --git a/plugin/trino-local-file/src/main/java/io/trino/plugin/localfile/LocalFileSplitManager.java b/plugin/trino-local-file/src/main/java/io/trino/plugin/localfile/LocalFileSplitManager.java index 8b5f3ee5c517..df82bf0dff8c 100644 --- a/plugin/trino-local-file/src/main/java/io/trino/plugin/localfile/LocalFileSplitManager.java +++ b/plugin/trino-local-file/src/main/java/io/trino/plugin/localfile/LocalFileSplitManager.java @@ -20,6 +20,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; @@ -47,7 +48,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { List splits = nodeManager.getAllNodes().stream() .map(node -> new LocalFileSplit(node.getHostAndPort())) diff --git a/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemorySplitManager.java b/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemorySplitManager.java index 6d206054e2c6..0bac1b6e57f5 100644 --- a/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemorySplitManager.java +++ b/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemorySplitManager.java @@ -20,6 +20,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; @@ -47,7 +48,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle handle, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { MemoryTableHandle table = (MemoryTableHandle) handle; diff --git a/plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoSplitManager.java b/plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoSplitManager.java index 27c62dd2e002..cde825a6b54c 100644 --- a/plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoSplitManager.java +++ b/plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoSplitManager.java @@ -20,6 +20,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; @@ -44,7 +45,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { MongoSplit split = new MongoSplit(addresses); diff --git a/plugin/trino-phoenix5/src/main/java/io/trino/plugin/phoenix5/PhoenixSplitManager.java b/plugin/trino-phoenix5/src/main/java/io/trino/plugin/phoenix5/PhoenixSplitManager.java index 751188aeaa8d..738b7e368b3b 100644 --- a/plugin/trino-phoenix5/src/main/java/io/trino/plugin/phoenix5/PhoenixSplitManager.java +++ b/plugin/trino-phoenix5/src/main/java/io/trino/plugin/phoenix5/PhoenixSplitManager.java @@ -26,6 +26,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; import org.apache.hadoop.hbase.HRegionLocation; @@ -74,7 +75,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { JdbcTableHandle tableHandle = (JdbcTableHandle) table; try (Connection connection = phoenixClient.getConnection(session)) { diff --git a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotSplitManager.java b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotSplitManager.java index 5f170959dfdc..543e2ab78e21 100755 --- a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotSplitManager.java +++ b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotSplitManager.java @@ -26,6 +26,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; import org.apache.pinot.spi.config.table.TableType; @@ -163,7 +164,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle tableHandle, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { PinotTableHandle pinotTableHandle = (PinotTableHandle) tableHandle; Supplier errorSupplier = () -> new QueryNotAdequatelyPushedDownException(QueryNotAdequatelyPushedDownErrorCode.PQL_NOT_PRESENT, pinotTableHandle, ""); diff --git a/plugin/trino-pinot/src/test/java/io/trino/plugin/pinot/TestPinotSplitManager.java b/plugin/trino-pinot/src/test/java/io/trino/plugin/pinot/TestPinotSplitManager.java index 1682a10785fe..a4939f26b46a 100755 --- a/plugin/trino-pinot/src/test/java/io/trino/plugin/pinot/TestPinotSplitManager.java +++ b/plugin/trino-pinot/src/test/java/io/trino/plugin/pinot/TestPinotSplitManager.java @@ -17,6 +17,7 @@ import io.trino.plugin.pinot.query.DynamicTable; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplitSource; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.SchemaTableName; import io.trino.spi.predicate.TupleDomain; @@ -125,7 +126,7 @@ public static ConnectorSession createSessionWithNumSplits(int numSegmentsPerSpli private List getSplitsHelper(PinotTableHandle pinotTable, int numSegmentsPerSplit, boolean forbidSegmentQueries) { ConnectorSession session = createSessionWithNumSplits(numSegmentsPerSplit, forbidSegmentQueries, pinotConfig); - ConnectorSplitSource splitSource = pinotSplitManager.getSplits(null, session, pinotTable, UNGROUPED_SCHEDULING, DynamicFilter.EMPTY); + ConnectorSplitSource splitSource = pinotSplitManager.getSplits(null, session, pinotTable, UNGROUPED_SCHEDULING, DynamicFilter.EMPTY, Constraint.alwaysTrue()); List splits = new ArrayList<>(); while (!splitSource.isFinished()) { splits.addAll(getFutureValue(splitSource.getNextBatch(NOT_PARTITIONED, 1000)).getSplits().stream().map(s -> (PinotSplit) s).collect(toList())); diff --git a/plugin/trino-prometheus/src/main/java/io/trino/plugin/prometheus/PrometheusSplitManager.java b/plugin/trino-prometheus/src/main/java/io/trino/plugin/prometheus/PrometheusSplitManager.java index 168ebd6a2686..0e6aae720f36 100644 --- a/plugin/trino-prometheus/src/main/java/io/trino/plugin/prometheus/PrometheusSplitManager.java +++ b/plugin/trino-prometheus/src/main/java/io/trino/plugin/prometheus/PrometheusSplitManager.java @@ -25,6 +25,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; import io.trino.spi.connector.TableNotFoundException; @@ -81,7 +82,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle connectorTableHandle, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { PrometheusTableHandle tableHandle = (PrometheusTableHandle) connectorTableHandle; PrometheusTable table = prometheusClient.getTable(tableHandle.getSchemaName(), tableHandle.getTableName()); diff --git a/plugin/trino-prometheus/src/test/java/io/trino/plugin/prometheus/TestPrometheusIntegration.java b/plugin/trino-prometheus/src/test/java/io/trino/plugin/prometheus/TestPrometheusIntegration.java index a2dd9254279d..96d6b16f17aa 100644 --- a/plugin/trino-prometheus/src/test/java/io/trino/plugin/prometheus/TestPrometheusIntegration.java +++ b/plugin/trino-prometheus/src/test/java/io/trino/plugin/prometheus/TestPrometheusIntegration.java @@ -16,6 +16,7 @@ import com.google.common.collect.ImmutableMap; import io.airlift.units.Duration; import io.trino.spi.connector.ConnectorSplitSource; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.testing.AbstractTestQueryFramework; import io.trino.testing.MaterializedResult; @@ -120,7 +121,8 @@ public void testCorrectNumberOfSplitsCreated() null, new PrometheusTableHandle("default", table.getName()), null, - (DynamicFilter) null); + (DynamicFilter) null, + Constraint.alwaysTrue()); int numSplits = splits.getNextBatch(NOT_PARTITIONED, NUMBER_MORE_THAN_EXPECTED_NUMBER_SPLITS).getNow(null).getSplits().size(); assertEquals(numSplits, config.getMaxQueryRangeDuration().getValue(TimeUnit.SECONDS) / config.getQueryChunkSizeDuration().getValue(TimeUnit.SECONDS), 0.001); diff --git a/plugin/trino-prometheus/src/test/java/io/trino/plugin/prometheus/TestPrometheusSplit.java b/plugin/trino-prometheus/src/test/java/io/trino/plugin/prometheus/TestPrometheusSplit.java index 7ca7333d25c5..4f77a757dc90 100644 --- a/plugin/trino-prometheus/src/test/java/io/trino/plugin/prometheus/TestPrometheusSplit.java +++ b/plugin/trino-prometheus/src/test/java/io/trino/plugin/prometheus/TestPrometheusSplit.java @@ -21,6 +21,7 @@ import io.trino.spi.connector.ColumnHandle; import io.trino.spi.connector.ConnectorSplit; import io.trino.spi.connector.ConnectorSplitSource; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.predicate.Domain; import io.trino.spi.predicate.Range; @@ -126,7 +127,8 @@ public void testQueryWithTableNameNeedingURLEncodeInSplits() null, new PrometheusTableHandle("default", table.getName()), null, - (DynamicFilter) null); + (DynamicFilter) null, + Constraint.alwaysTrue()); PrometheusSplit split = (PrometheusSplit) splits.getNextBatch(NOT_PARTITIONED, 1).getNow(null).getSplits().get(0); String queryInSplit = URI.create(split.getUri()).getQuery(); String timeShouldBe = decimalSecondString(now.toEpochMilli() - @@ -152,7 +154,8 @@ public void testQueryDividedIntoSplitsFirstSplitHasRightTime() null, new PrometheusTableHandle("default", table.getName()), null, - (DynamicFilter) null); + (DynamicFilter) null, + Constraint.alwaysTrue()); PrometheusSplit split = (PrometheusSplit) splits.getNextBatch(NOT_PARTITIONED, 1).getNow(null).getSplits().get(0); String queryInSplit = URI.create(split.getUri()).getQuery(); String timeShouldBe = decimalSecondString(now.toEpochMilli() - @@ -178,7 +181,8 @@ public void testQueryDividedIntoSplitsLastSplitHasRightTime() null, new PrometheusTableHandle("default", table.getName()), null, - (DynamicFilter) null); + (DynamicFilter) null, + Constraint.alwaysTrue()); List splits = splitsMaybe.getNextBatch(NOT_PARTITIONED, NUMBER_MORE_THAN_EXPECTED_NUMBER_SPLITS).getNow(null).getSplits(); int lastSplitIndex = splits.size() - 1; PrometheusSplit lastSplit = (PrometheusSplit) splits.get(lastSplitIndex); @@ -203,7 +207,8 @@ public void testQueryDividedIntoSplitsShouldHaveCorrectSpacingBetweenTimes() null, new PrometheusTableHandle("default", table.getName()), null, - (DynamicFilter) null); + (DynamicFilter) null, + Constraint.alwaysTrue()); PrometheusSplit split1 = (PrometheusSplit) splits.getNextBatch(NOT_PARTITIONED, 1).getNow(null).getSplits().get(0); Map paramsMap1 = parse(URI.create(split1.getUri()), StandardCharsets.UTF_8).stream().collect(Collectors.toMap(NameValuePair::getName, NameValuePair::getValue)); PrometheusSplit split2 = (PrometheusSplit) splits.getNextBatch(NOT_PARTITIONED, 1).getNow(null).getSplits().get(0); diff --git a/plugin/trino-raptor-legacy/src/main/java/io/trino/plugin/raptor/legacy/RaptorSplitManager.java b/plugin/trino-raptor-legacy/src/main/java/io/trino/plugin/raptor/legacy/RaptorSplitManager.java index a222aaf3fa04..bda33d6a1e87 100644 --- a/plugin/trino-raptor-legacy/src/main/java/io/trino/plugin/raptor/legacy/RaptorSplitManager.java +++ b/plugin/trino-raptor-legacy/src/main/java/io/trino/plugin/raptor/legacy/RaptorSplitManager.java @@ -30,6 +30,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.predicate.TupleDomain; import org.jdbi.v3.core.result.ResultIterator; @@ -97,7 +98,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle handle, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { RaptorTableHandle table = (RaptorTableHandle) handle; long tableId = table.getTableId(); diff --git a/plugin/trino-raptor-legacy/src/test/java/io/trino/plugin/raptor/legacy/metadata/TestRaptorSplitManager.java b/plugin/trino-raptor-legacy/src/test/java/io/trino/plugin/raptor/legacy/metadata/TestRaptorSplitManager.java index 1ceb0f6b459a..43ebef9e7d74 100644 --- a/plugin/trino-raptor-legacy/src/test/java/io/trino/plugin/raptor/legacy/metadata/TestRaptorSplitManager.java +++ b/plugin/trino-raptor-legacy/src/test/java/io/trino/plugin/raptor/legacy/metadata/TestRaptorSplitManager.java @@ -32,6 +32,7 @@ import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTableMetadata; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.SchemaTableName; import io.trino.spi.type.BigintType; @@ -194,7 +195,7 @@ private void deleteShardNodes() private static ConnectorSplitSource getSplits(RaptorSplitManager splitManager, ConnectorTableHandle table) { ConnectorTransactionHandle transaction = new RaptorTransactionHandle(); - return splitManager.getSplits(transaction, SESSION, table, UNGROUPED_SCHEDULING, DynamicFilter.EMPTY); + return splitManager.getSplits(transaction, SESSION, table, UNGROUPED_SCHEDULING, DynamicFilter.EMPTY, Constraint.alwaysTrue()); } private static List getSplits(ConnectorSplitSource source, int maxSize) diff --git a/plugin/trino-redis/src/main/java/io/trino/plugin/redis/RedisSplitManager.java b/plugin/trino-redis/src/main/java/io/trino/plugin/redis/RedisSplitManager.java index 5827f3b7eb80..9c09118b0f16 100644 --- a/plugin/trino-redis/src/main/java/io/trino/plugin/redis/RedisSplitManager.java +++ b/plugin/trino-redis/src/main/java/io/trino/plugin/redis/RedisSplitManager.java @@ -21,6 +21,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; import redis.clients.jedis.Jedis; @@ -61,7 +62,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { RedisTableHandle redisTableHandle = (RedisTableHandle) table; diff --git a/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftSplitManager.java b/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftSplitManager.java index e135030d853e..36f684ec211c 100644 --- a/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftSplitManager.java +++ b/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftSplitManager.java @@ -34,6 +34,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import javax.annotation.concurrent.NotThreadSafe; @@ -75,7 +76,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { ThriftTableHandle tableHandle = (ThriftTableHandle) table; return new ThriftSplitSource( diff --git a/plugin/trino-tpcds/src/main/java/io/trino/plugin/tpcds/TpcdsSplitManager.java b/plugin/trino-tpcds/src/main/java/io/trino/plugin/tpcds/TpcdsSplitManager.java index d76926345755..6a35a93f0b34 100644 --- a/plugin/trino-tpcds/src/main/java/io/trino/plugin/tpcds/TpcdsSplitManager.java +++ b/plugin/trino-tpcds/src/main/java/io/trino/plugin/tpcds/TpcdsSplitManager.java @@ -22,6 +22,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; @@ -57,7 +58,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle tableHandle, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { Set nodes = nodeManager.getRequiredWorkerNodes(); checkState(!nodes.isEmpty(), "No TPCDS nodes available"); diff --git a/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchSplitManager.java b/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchSplitManager.java index 69931e0b6267..2eb2da02e78e 100644 --- a/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchSplitManager.java +++ b/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchSplitManager.java @@ -22,6 +22,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.FixedSplitSource; @@ -51,7 +52,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { Set nodes = nodeManager.getRequiredWorkerNodes(); diff --git a/testing/trino-tests/src/test/java/io/trino/execution/TestCoordinatorDynamicFiltering.java b/testing/trino-tests/src/test/java/io/trino/execution/TestCoordinatorDynamicFiltering.java index 5a64978e3c1f..4b60f887656e 100644 --- a/testing/trino-tests/src/test/java/io/trino/execution/TestCoordinatorDynamicFiltering.java +++ b/testing/trino-tests/src/test/java/io/trino/execution/TestCoordinatorDynamicFiltering.java @@ -35,6 +35,7 @@ import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; +import io.trino.spi.connector.Constraint; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.EmptyPageSource; import io.trino.spi.predicate.Domain; @@ -462,7 +463,8 @@ public ConnectorSplitSource getSplits( ConnectorSession session, ConnectorTableHandle table, SplitSchedulingStrategy splitSchedulingStrategy, - DynamicFilter dynamicFilter) + DynamicFilter dynamicFilter, + Constraint constraint) { AtomicBoolean splitProduced = new AtomicBoolean();