diff --git a/core/trino-main/src/main/java/io/trino/connector/informationschema/InformationSchemaPageSourceProvider.java b/core/trino-main/src/main/java/io/trino/connector/informationschema/InformationSchemaPageSourceProvider.java index 9d9b0566e2c3..ecf6137feac5 100644 --- a/core/trino-main/src/main/java/io/trino/connector/informationschema/InformationSchemaPageSourceProvider.java +++ b/core/trino-main/src/main/java/io/trino/connector/informationschema/InformationSchemaPageSourceProvider.java @@ -22,13 +22,11 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; import java.util.List; -import java.util.Optional; import static java.util.Objects.requireNonNull; @@ -52,7 +50,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle tableHandle, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { diff --git a/core/trino-main/src/main/java/io/trino/connector/system/SystemPageSourceProvider.java b/core/trino-main/src/main/java/io/trino/connector/system/SystemPageSourceProvider.java index 6fdd792d54a8..ed6da8867610 100644 --- a/core/trino-main/src/main/java/io/trino/connector/system/SystemPageSourceProvider.java +++ b/core/trino-main/src/main/java/io/trino/connector/system/SystemPageSourceProvider.java @@ -31,7 +31,6 @@ import io.trino.spi.connector.ConnectorPageSourceProviderFactory; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; @@ -81,7 +80,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { @@ -91,7 +89,7 @@ public ConnectorPageSource createPageSource( // if the split is not a SystemSplit, we immediately delegate to the Connector to build a PageSource if (!(split instanceof SystemSplit systemSplit)) { return connectorPageSourceProvider.orElseThrow() - .createPageSource(systemTransaction.getConnectorTransactionHandle(), session, split, table, tableCredentials, columns, dynamicFilter); + .createPageSource(systemTransaction.getConnectorTransactionHandle(), session, split, table, columns, dynamicFilter); } SchemaTableName tableName = ((SystemTableHandle) table).schemaTableName(); diff --git a/core/trino-main/src/main/java/io/trino/connector/system/SystemTablesMetadata.java b/core/trino-main/src/main/java/io/trino/connector/system/SystemTablesMetadata.java index 539c051a1cc2..977c874782d8 100644 --- a/core/trino-main/src/main/java/io/trino/connector/system/SystemTablesMetadata.java +++ b/core/trino-main/src/main/java/io/trino/connector/system/SystemTablesMetadata.java @@ -20,18 +20,15 @@ import io.trino.spi.connector.ColumnMetadata; import io.trino.spi.connector.ConnectorMetadata; import io.trino.spi.connector.ConnectorSession; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTableMetadata; import io.trino.spi.connector.ConnectorTableVersion; -import io.trino.spi.connector.ConnectorWritableTableHandle; import io.trino.spi.connector.Constraint; import io.trino.spi.connector.ConstraintApplicationResult; import io.trino.spi.connector.RelationColumnsMetadata; import io.trino.spi.connector.SchemaTableName; import io.trino.spi.connector.SystemColumnHandle; import io.trino.spi.connector.SystemTable; -import io.trino.spi.function.table.ConnectorTableFunctionHandle; import io.trino.spi.predicate.TupleDomain; import java.util.Iterator; @@ -171,25 +168,6 @@ public Optional> applyFilter(C return Optional.of(new ConstraintApplicationResult<>(table, constraint.getSummary(), constraint.getExpression(), false)); } - @Override - public Optional getTableCredentials(ConnectorSession session, ConnectorTableHandle tableHandle) - { - SystemTable systemTable = checkAndGetTable(session, tableHandle); - return systemTable.getTableCredentials(session); - } - - @Override - public Optional getTableCredentials(ConnectorSession session, ConnectorWritableTableHandle tableHandle) - { - throw new TrinoException(NOT_SUPPORTED, "This connector does not support table credentials"); - } - - @Override - public Optional getTableCredentials(ConnectorSession session, ConnectorTableFunctionHandle tableFunctionHandle) - { - throw new TrinoException(NOT_SUPPORTED, "This connector does not support table credentials"); - } - private Constraint effectiveConstraint(TupleDomain oldDomain, Constraint newConstraint, TupleDomain effectiveDomain) { if (effectiveDomain.isNone() || newConstraint.predicate().isEmpty()) { diff --git a/core/trino-main/src/main/java/io/trino/execution/SqlStage.java b/core/trino-main/src/main/java/io/trino/execution/SqlStage.java index c6650a5082ca..804a25068f84 100644 --- a/core/trino-main/src/main/java/io/trino/execution/SqlStage.java +++ b/core/trino-main/src/main/java/io/trino/execution/SqlStage.java @@ -28,7 +28,6 @@ import io.trino.metadata.Metadata; import io.trino.metadata.Split; import io.trino.metadata.TableFunctionHandle; -import io.trino.metadata.TableHandle; import io.trino.node.InternalNode; import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.metrics.Metrics; @@ -43,7 +42,6 @@ import io.trino.sql.planner.plan.SimplePlanRewriter; import io.trino.sql.planner.plan.TableExecuteNode; import io.trino.sql.planner.plan.TableFunctionProcessorNode; -import io.trino.sql.planner.plan.TableScanNode; import io.trino.sql.planner.plan.TableWriterNode; import java.util.HashSet; @@ -499,14 +497,6 @@ public Void visitTableWriter(TableWriterNode node, Void context) return null; } - @Override - public Void visitTableScan(TableScanNode node, Void context) - { - TableHandle table = node.getTable(); - extract(builder, node, metadata.getTableCredentials(session, table.catalogHandle(), table.connectorHandle())); - return null; - } - @Override public Void visitTableFunctionProcessor(TableFunctionProcessorNode node, Void context) { diff --git a/core/trino-main/src/main/java/io/trino/operator/ScanFilterAndProjectOperator.java b/core/trino-main/src/main/java/io/trino/operator/ScanFilterAndProjectOperator.java index 6360076ceda4..8fc2f021cd36 100644 --- a/core/trino-main/src/main/java/io/trino/operator/ScanFilterAndProjectOperator.java +++ b/core/trino-main/src/main/java/io/trino/operator/ScanFilterAndProjectOperator.java @@ -32,7 +32,6 @@ import io.trino.spi.connector.ColumnHandle; import io.trino.spi.connector.ConnectorPageSource; import io.trino.spi.connector.ConnectorSession; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.EmptyPageSource; import io.trino.spi.connector.SourcePage; @@ -90,7 +89,6 @@ private ScanFilterAndProjectOperator( PageSourceProvider pageSourceProvider, PageProcessor pageProcessor, TableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter, List types, @@ -105,7 +103,6 @@ private ScanFilterAndProjectOperator( pageSourceProvider, pageProcessor, table, - tableCredentials, columns, dynamicFilter, types, @@ -190,7 +187,6 @@ private class SplitToPages final PageSourceProvider pageSourceProvider; final PageProcessor pageProcessor; final TableHandle table; - final Optional tableCredentials; final List columns; final DynamicFilter dynamicFilter; final List types; @@ -207,7 +203,6 @@ private class SplitToPages PageSourceProvider pageSourceProvider, PageProcessor pageProcessor, TableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter, List types, @@ -220,7 +215,6 @@ private class SplitToPages this.pageSourceProvider = requireNonNull(pageSourceProvider, "pageSourceProvider is null"); this.pageProcessor = requireNonNull(pageProcessor, "pageProcessor is null"); 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.types = ImmutableList.copyOf(requireNonNull(types, "types is null")); @@ -251,7 +245,7 @@ public TransformationState> process(Split split) source = new EmptyPageSource(); } else { - source = pageSourceProvider.createPageSource(session, split, table, tableCredentials, columns, dynamicFilter); + source = pageSourceProvider.createPageSource(session, split, table, columns, dynamicFilter); } pageSource = source; @@ -365,7 +359,6 @@ public static class ScanFilterAndProjectOperatorFactory private final PlanNodeId sourceId; private final PageSourceProvider pageSourceProvider; private final TableHandle table; - private final Optional tableCredentials; private final List columns; private final DynamicFilter dynamicFilter; private final List types; @@ -380,7 +373,6 @@ public ScanFilterAndProjectOperatorFactory( PageSourceProviderFactory pageSourceProvider, Function pageProcessor, TableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter, List types, @@ -392,7 +384,6 @@ public ScanFilterAndProjectOperatorFactory( this.pageProcessor = requireNonNull(pageProcessor, "pageProcessor is null"); this.sourceId = requireNonNull(sourceId, "sourceId is null"); 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 = dynamicFilter; this.types = requireNonNull(types, "types is null"); @@ -457,7 +448,6 @@ public WorkProcessorSourceOperator create( pageSourceProvider, pageProcessor.apply(dynamicFilter), table, - tableCredentials, columns, dynamicFilter, types, 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 935556f728d7..14b5f4b6f56c 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 @@ -23,7 +23,6 @@ import io.trino.spi.Page; import io.trino.spi.connector.ColumnHandle; import io.trino.spi.connector.ConnectorPageSource; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.EmptyPageSource; import io.trino.spi.connector.SourcePage; @@ -57,7 +56,6 @@ public static class TableScanOperatorFactory private final PlanNodeId sourceId; private final PageSourceProvider pageSourceProvider; private final TableHandle table; - private final Optional tableCredentials; private final List columns; private final List columnTypes; private boolean closed; @@ -68,7 +66,6 @@ public TableScanOperatorFactory( PlanNodeId sourceId, PageSourceProviderFactory pageSourceProvider, TableHandle table, - Optional tableCredentials, List columns, List columnTypes) { @@ -76,7 +73,6 @@ public TableScanOperatorFactory( this.planNodeId = requireNonNull(planNodeId, "planNodeId is null"); this.sourceId = requireNonNull(sourceId, "sourceId is null"); this.table = requireNonNull(table, "table is null"); - 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.pageSourceProvider = pageSourceProvider.createPageSourceProvider(table.catalogHandle()); @@ -99,7 +95,6 @@ public SourceOperator createOperator(DriverContext driverContext) sourceId, pageSourceProvider, table, - tableCredentials, columns); if (isSourcePagesValidationEnabled(operatorContext.getSession())) { @@ -122,7 +117,6 @@ public void noMoreOperators() private final PlanNodeId sourceId; private final PageSourceProvider pageSourceProvider; private final TableHandle table; - private final Optional tableCredentials; private final List columns; private final LocalMemoryContext memoryContext; private final SettableFuture blocked = SettableFuture.create(); @@ -143,14 +137,12 @@ public TableScanOperator( PlanNodeId sourceId, PageSourceProvider pageSourceProvider, TableHandle table, - Optional tableCredentials, List columns) { this.operatorContext = requireNonNull(operatorContext, "operatorContext is null"); this.sourceId = requireNonNull(sourceId, "planNodeId is null"); this.pageSourceProvider = requireNonNull(pageSourceProvider, "pageSourceProvider is null"); this.table = requireNonNull(table, "table is null"); - this.tableCredentials = requireNonNull(tableCredentials, "tableCredentials is null"); this.columns = ImmutableList.copyOf(requireNonNull(columns, "columns is null")); this.memoryContext = operatorContext.newLocalUserMemoryContext(TableScanOperator.class.getSimpleName()); } @@ -268,7 +260,7 @@ public Page getOutput() return null; } if (source == null) { - source = pageSourceProvider.createPageSource(operatorContext.getSession(), split, table, tableCredentials, columns, DynamicFilter.EMPTY); + source = pageSourceProvider.createPageSource(operatorContext.getSession(), split, table, columns, DynamicFilter.EMPTY); } SourcePage sourcePage = source.getNextSourcePage(); diff --git a/core/trino-main/src/main/java/io/trino/split/PageSourceManager.java b/core/trino-main/src/main/java/io/trino/split/PageSourceManager.java index a979e0dc705e..fbc4d8d286e3 100644 --- a/core/trino-main/src/main/java/io/trino/split/PageSourceManager.java +++ b/core/trino-main/src/main/java/io/trino/split/PageSourceManager.java @@ -23,13 +23,11 @@ import io.trino.spi.connector.ConnectorPageSource; import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorPageSourceProviderFactory; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.EmptyPageSource; import io.trino.spi.predicate.TupleDomain; import java.util.List; -import java.util.Optional; import static com.google.common.base.Preconditions.checkArgument; import static io.trino.SystemSessionProperties.isAllowPushdownIntoConnectors; @@ -66,7 +64,6 @@ public ConnectorPageSource createPageSource( Session session, Split split, TableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { @@ -85,7 +82,6 @@ public ConnectorPageSource createPageSource( session.toConnectorSession(table.catalogHandle()), split.getConnectorSplit(), table.connectorHandle(), - tableCredentials, columns, dynamicFilter); } diff --git a/core/trino-main/src/main/java/io/trino/split/PageSourceProvider.java b/core/trino-main/src/main/java/io/trino/split/PageSourceProvider.java index 862ebe82edc3..5dd76e6b311a 100644 --- a/core/trino-main/src/main/java/io/trino/split/PageSourceProvider.java +++ b/core/trino-main/src/main/java/io/trino/split/PageSourceProvider.java @@ -18,11 +18,9 @@ import io.trino.metadata.TableHandle; import io.trino.spi.connector.ColumnHandle; import io.trino.spi.connector.ConnectorPageSource; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.DynamicFilter; import java.util.List; -import java.util.Optional; public interface PageSourceProvider { @@ -30,7 +28,6 @@ ConnectorPageSource createPageSource( Session session, Split split, TableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter); 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 b9c565567fa2..1a905b23db5e 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 @@ -19,14 +19,12 @@ import io.trino.spi.connector.ConnectorRecordSetProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.RecordPageSource; import java.util.List; -import java.util.Optional; import static java.util.Objects.requireNonNull; @@ -46,7 +44,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { 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 c07314ef553b..891958dda30d 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 @@ -2044,12 +2044,10 @@ private PhysicalOperation visitScanFilterAndProject( // otherwise we plan it as a normal operator Map sourceLayout; TableHandle table = null; - Optional tableCredentials = Optional.empty(); List columns = null; PhysicalOperation source = null; if (sourceNode instanceof TableScanNode tableScanNode) { table = tableScanNode.getTable(); - tableCredentials = context.getTaskContext().getTableCredentials(tableScanNode.getId()); // extract the column handles and channel to type mapping sourceLayout = new LinkedHashMap<>(); columns = new ArrayList<>(); @@ -2129,7 +2127,6 @@ else if (sourceNode instanceof SampleNode sampleNode) { pageSourceManager, pageProcessor, table, - tableCredentials, columns, dynamicFilter, getTypes(projections), @@ -2173,8 +2170,7 @@ public PhysicalOperation visitTableScan(TableScanNode node, LocalExecutionPlanCo columnTypes.add(symbol.type()); } - Optional tableCredentials = context.getTaskContext().getTableCredentials(node.getId()); - OperatorFactory operatorFactory = new TableScanOperatorFactory(context.getNextOperatorId(), planNodeId, node.getId(), pageSourceManager, node.getTable(), tableCredentials, columns.build(), columnTypes.build()); + OperatorFactory operatorFactory = new TableScanOperatorFactory(context.getNextOperatorId(), planNodeId, node.getId(), pageSourceManager, node.getTable(), columns.build(), columnTypes.build()); return new PhysicalOperation(operatorFactory, makeLayout(node)); } diff --git a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/ExtractSpatialJoins.java b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/ExtractSpatialJoins.java index dfac29302a7f..d6c5ebdfb5fd 100644 --- a/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/ExtractSpatialJoins.java +++ b/core/trino-main/src/main/java/io/trino/sql/planner/iterative/rule/ExtractSpatialJoins.java @@ -35,7 +35,6 @@ import io.trino.spi.TrinoException; import io.trino.spi.connector.ColumnHandle; import io.trino.spi.connector.ConnectorPageSource; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.connector.SourcePage; import io.trino.spi.type.Type; @@ -448,7 +447,6 @@ private static KdbTree loadKdbTree(String tableName, Session session, Metadata m QualifiedObjectName name = toQualifiedObjectName(tableName, session.getCatalog().get(), session.getSchema().get()); TableHandle tableHandle = metadata.getTableHandle(session, name) .orElseThrow(() -> new TrinoException(INVALID_SPATIAL_PARTITIONING, format("Table not found: %s", name))); - Optional tableCredentials = metadata.getTableCredentials(session, tableHandle.catalogHandle(), tableHandle.connectorHandle()); Map columnHandles = metadata.getColumnHandles(session, tableHandle); List visibleColumnHandles = columnHandles.values().stream() .filter(handle -> !metadata.getColumnMetadata(session, tableHandle, handle).isHidden()) @@ -465,7 +463,7 @@ private static KdbTree loadKdbTree(String tableName, Session session, Metadata m List splits = splitBatch.getSplits(); for (Split split : splits) { - try (ConnectorPageSource pageSource = statefulPageSourceProvider.createPageSource(session, split, tableHandle, tableCredentials, ImmutableList.of(kdbTreeColumn), DynamicFilter.EMPTY)) { + try (ConnectorPageSource pageSource = statefulPageSourceProvider.createPageSource(session, split, tableHandle, ImmutableList.of(kdbTreeColumn), DynamicFilter.EMPTY)) { do { getFutureValue(pageSource.isBlocked()); SourcePage page = pageSource.getNextSourcePage(); 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 fc907dafe152..a6716417a154 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 @@ -1121,14 +1121,7 @@ private class MockConnectorPageSourceProvider implements ConnectorPageSourceProvider { @Override - public ConnectorPageSource createPageSource( - ConnectorTransactionHandle transaction, - ConnectorSession session, - ConnectorSplit split, - ConnectorTableHandle table, - Optional tableCredentials, - List columns, - DynamicFilter dynamicFilter) + public ConnectorPageSource createPageSource(ConnectorTransactionHandle transaction, ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, List columns, DynamicFilter dynamicFilter) { MockConnectorTableHandle handle = (MockConnectorTableHandle) table; SchemaTableName tableName = handle.getTableName(); diff --git a/core/trino-main/src/test/java/io/trino/execution/TestingPageSourceProvider.java b/core/trino-main/src/test/java/io/trino/execution/TestingPageSourceProvider.java index 6a1429e940f7..4cf5dd692fac 100644 --- a/core/trino-main/src/test/java/io/trino/execution/TestingPageSourceProvider.java +++ b/core/trino-main/src/test/java/io/trino/execution/TestingPageSourceProvider.java @@ -23,7 +23,6 @@ import io.trino.spi.connector.ConnectorPageSourceProviderFactory; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; @@ -55,7 +54,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { 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 197b37e9a8a2..aaa48f7acfde 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 @@ -41,7 +41,6 @@ import org.junit.jupiter.api.TestInstance; import java.util.List; -import java.util.Optional; import java.util.concurrent.ExecutorService; import java.util.concurrent.ScheduledExecutorService; import java.util.function.Function; @@ -99,7 +98,7 @@ public void testTableScanMemoryBlocking() List types = ImmutableList.of(VARCHAR); TableScanOperator source = new TableScanOperator(driverContext.addOperatorContext(1, new PlanNodeId("test"), "values"), sourceId, - (_, _, _, _, _, _) -> new FixedPageSource(rowPagesBuilder(types) + (_, _, _, _, _) -> new FixedPageSource(rowPagesBuilder(types) .addSequencePage(10, 1) .addSequencePage(10, 1) .addSequencePage(10, 1) @@ -107,7 +106,6 @@ public void testTableScanMemoryBlocking() .addSequencePage(10, 1) .build()), TEST_TABLE_HANDLE, - Optional.empty(), ImmutableList.of()); PageConsumerOperator sink = createSinkOperator(types); Driver driver = Driver.createDriver(driverContext, source, sink); diff --git a/core/trino-main/src/test/java/io/trino/operator/BenchmarkScanFilterAndProjectOperator.java b/core/trino-main/src/test/java/io/trino/operator/BenchmarkScanFilterAndProjectOperator.java index f254c169c2bb..3d8350e5a5e4 100644 --- a/core/trino-main/src/test/java/io/trino/operator/BenchmarkScanFilterAndProjectOperator.java +++ b/core/trino-main/src/test/java/io/trino/operator/BenchmarkScanFilterAndProjectOperator.java @@ -179,10 +179,9 @@ private void createScanFilterAndProjectOperatorFactories(List inputPages, 0, new PlanNodeId("test"), new PlanNodeId("test_source"), - _ -> (_, _, _, _, _, _) -> new FixedPageSource(inputPages), + _ -> (_, _, _, _, _) -> new FixedPageSource(inputPages), _ -> pageProcessor, TEST_TABLE_HANDLE, - Optional.empty(), columnHandles, DynamicFilter.EMPTY, types, 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 2902d7c62051..6fc1ca788e7f 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 @@ -42,7 +42,6 @@ import org.junit.jupiter.api.Timeout; import java.util.List; -import java.util.Optional; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; @@ -170,11 +169,10 @@ public void testAddSourceFinish() List types = ImmutableList.of(VARCHAR, BIGINT, BIGINT); TableScanOperator source = new TableScanOperator(driverContext.addOperatorContext(99, new PlanNodeId("test"), "values"), sourceId, - (_, _, _, _, _, _) -> new FixedPageSource(rowPagesBuilder(types) + (_, _, _, _, _) -> new FixedPageSource(rowPagesBuilder(types) .addSequencePage(10, 20, 30, 40) .build()), TEST_TABLE_HANDLE, - Optional.empty(), ImmutableList.of()); PageConsumerOperator sink = createSinkOperator(types); @@ -250,7 +248,7 @@ public void testMemoryRevocationRace() List types = ImmutableList.of(VARCHAR, BIGINT, BIGINT); TableScanOperator source = new AlwaysBlockedMemoryRevokingTableScanOperator(driverContext.addOperatorContext(99, new PlanNodeId("test"), "scan"), new PlanNodeId("source"), - (_, _, _, _, _, _) -> new FixedPageSource(rowPagesBuilder(types) + (_, _, _, _, _) -> new FixedPageSource(rowPagesBuilder(types) .addSequencePage(10, 20, 30, 40) .build()), TEST_TABLE_HANDLE, @@ -270,7 +268,7 @@ public void testUnblocksOnFinish() TableScanOperator source = new AlwaysBlockedTableScanOperator( driverContext.addOperatorContext(99, new PlanNodeId("test"), "scan"), new PlanNodeId("source"), - (_, _, _, _, _, _) -> new FixedPageSource(rowPagesBuilder(types) + (_, _, _, _, _) -> new FixedPageSource(rowPagesBuilder(types) .addSequencePage(10, 20, 30, 40) .build()), TEST_TABLE_HANDLE, @@ -340,7 +338,7 @@ public void testBrokenOperatorAddSource() // create a table scan operator that does not block, which will cause the driver loop to busy wait TableScanOperator source = new NotBlockedTableScanOperator(driverContext.addOperatorContext(99, new PlanNodeId("test"), "values"), sourceId, - (_, _, _, _, _, _) -> new FixedPageSource(rowPagesBuilder(types) + (_, _, _, _, _) -> new FixedPageSource(rowPagesBuilder(types) .addSequencePage(10, 20, 30, 40) .build()), TEST_TABLE_HANDLE, @@ -581,7 +579,7 @@ public AlwaysBlockedTableScanOperator( TableHandle table, List columns) { - super(operatorContext, planNodeId, pageSourceProvider, table, Optional.empty(), columns); + super(operatorContext, planNodeId, pageSourceProvider, table, columns); } @Override @@ -601,7 +599,7 @@ public AlwaysBlockedMemoryRevokingTableScanOperator( TableHandle table, List columns) { - super(operatorContext, planNodeId, pageSourceProvider, table, Optional.empty(), columns); + super(operatorContext, planNodeId, pageSourceProvider, table, columns); } @Override @@ -626,7 +624,7 @@ public NotBlockedTableScanOperator( TableHandle table, List columns) { - super(operatorContext, planNodeId, pageSourceProvider, table, Optional.empty(), columns); + super(operatorContext, planNodeId, pageSourceProvider, table, columns); } @Override diff --git a/core/trino-main/src/test/java/io/trino/operator/TestScanFilterAndProjectOperator.java b/core/trino-main/src/test/java/io/trino/operator/TestScanFilterAndProjectOperator.java index faad9172eba5..56fa3080b671 100644 --- a/core/trino-main/src/test/java/io/trino/operator/TestScanFilterAndProjectOperator.java +++ b/core/trino-main/src/test/java/io/trino/operator/TestScanFilterAndProjectOperator.java @@ -139,10 +139,9 @@ public void testPageSource() 0, new PlanNodeId("test"), new PlanNodeId("0"), - _ -> (_, _, _, _, _, _) -> new FixedPageSource(ImmutableList.of(input)), + _ -> (_, _, _, _, _) -> new FixedPageSource(ImmutableList.of(input)), _ -> pageProcessor.get(), TEST_TABLE_HANDLE, - Optional.empty(), ImmutableList.of(), DynamicFilter.EMPTY, ImmutableList.of(VARCHAR), @@ -182,10 +181,9 @@ public void testPageSourceMergeOutput() 0, new PlanNodeId("test"), new PlanNodeId("0"), - _ -> (_, _, _, _, _, _) -> new FixedPageSource(input), + _ -> (_, _, _, _, _) -> new FixedPageSource(input), _ -> pageProcessor.get(), TEST_TABLE_HANDLE, - Optional.empty(), ImmutableList.of(), DynamicFilter.EMPTY, ImmutableList.of(BIGINT), @@ -223,10 +221,9 @@ public void testPageSourceLazyLoad() 0, new PlanNodeId("test"), new PlanNodeId("0"), - _ -> (_, _, _, _, _, _) -> new SinglePagePageSource(input), + _ -> (_, _, _, _, _) -> new SinglePagePageSource(input), _ -> pageProcessor, TEST_TABLE_HANDLE, - Optional.empty(), ImmutableList.of(), DynamicFilter.EMPTY, ImmutableList.of(BIGINT), @@ -259,10 +256,9 @@ public void testRecordCursorSource() 0, new PlanNodeId("test"), new PlanNodeId("0"), - _ -> (_, _, _, _, _, _) -> new RecordPageSource(new PageRecordSet(ImmutableList.of(VARCHAR), input)), + _ -> (_, _, _, _, _) -> new RecordPageSource(new PageRecordSet(ImmutableList.of(VARCHAR), input)), _ -> pageProcessor.get(), TEST_TABLE_HANDLE, - Optional.empty(), ImmutableList.of(), DynamicFilter.EMPTY, ImmutableList.of(VARCHAR), @@ -315,10 +311,9 @@ public void testPageYield() 0, new PlanNodeId("test"), new PlanNodeId("0"), - _ -> (_, _, _, _, _, _) -> new FixedPageSource(ImmutableList.of(input)), + _ -> (_, _, _, _, _) -> new FixedPageSource(ImmutableList.of(input)), _ -> pageProcessor.get(), TEST_TABLE_HANDLE, - Optional.empty(), ImmutableList.of(), DynamicFilter.EMPTY, ImmutableList.copyOf(nCopies(totalColumns, BIGINT)), diff --git a/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorPageSourceProvider.java b/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorPageSourceProvider.java index e34726c0aa1b..f6626300009a 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorPageSourceProvider.java +++ b/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorPageSourceProvider.java @@ -48,10 +48,7 @@ default ConnectorPageSource createPageSource( /** * @param columns columns that should show up in the output page, in this order * @param dynamicFilter optionally remove rows that don't satisfy this predicate - * - * @deprecated Implement {@link #createPageSource(ConnectorTransactionHandle, ConnectorSession, ConnectorSplit, ConnectorTableHandle, Optional, List, DynamicFilter)} instead. */ - @Deprecated(forRemoval = true) default ConnectorPageSource createPageSource( ConnectorTransactionHandle transaction, ConnectorSession session, diff --git a/core/trino-spi/src/main/java/io/trino/spi/connector/SystemTable.java b/core/trino-spi/src/main/java/io/trino/spi/connector/SystemTable.java index e6465e8a1add..30c8bcfe1829 100644 --- a/core/trino-spi/src/main/java/io/trino/spi/connector/SystemTable.java +++ b/core/trino-spi/src/main/java/io/trino/spi/connector/SystemTable.java @@ -100,15 +100,4 @@ default Optional splitSource(ConnectorSession connectorSes { return Optional.empty(); } - - /** - * Returns {@link ConnectorTableCredentials} if the system table requires credentials to access the data. - *

- * Implementing this method requires implementing {@link #splitSource(ConnectorSession, TupleDomain)} too. - * The credentials returned by this method will be passed to {@link ConnectorPageSourceProvider } - */ - default Optional getTableCredentials(ConnectorSession session) - { - return Optional.empty(); - } } diff --git a/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorPageSourceProvider.java b/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorPageSourceProvider.java index 07d7f8347e51..f6e500000bbd 100644 --- a/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorPageSourceProvider.java +++ b/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorPageSourceProvider.java @@ -43,6 +43,14 @@ public ClassLoaderSafeConnectorPageSourceProvider(@ForClassLoaderSafe ConnectorP this.classLoader = requireNonNull(classLoader, "classLoader is null"); } + @Override + public ConnectorPageSource createPageSource(ConnectorTransactionHandle transaction, ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, List columns, DynamicFilter dynamicFilter) + { + try (ThreadContextClassLoader _ = new ThreadContextClassLoader(classLoader)) { + return delegate.createPageSource(transaction, session, split, table, columns, dynamicFilter); + } + } + @Override public ConnectorPageSource createPageSource( ConnectorTransactionHandle transaction, diff --git a/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeSystemTable.java b/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeSystemTable.java index 27047aa2d63b..eacb36b708f2 100644 --- a/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeSystemTable.java +++ b/lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeSystemTable.java @@ -21,7 +21,6 @@ import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; import io.trino.spi.connector.ConnectorSplitSource; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableMetadata; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.RecordCursor; @@ -124,12 +123,4 @@ public Optional splitSource(ConnectorSession connectorSess return delegate.splitSource(connectorSession, constraint); } } - - @Override - public Optional getTableCredentials(ConnectorSession session) - { - try (ThreadContextClassLoader _ = new ThreadContextClassLoader(classLoader)) { - return delegate.getTableCredentials(session); - } - } } diff --git a/lib/trino-plugin-toolkit/src/test/java/io/trino/plugin/base/classloader/TestClassLoaderSafeWrappers.java b/lib/trino-plugin-toolkit/src/test/java/io/trino/plugin/base/classloader/TestClassLoaderSafeWrappers.java index 008f976655d6..c4f52bec2953 100644 --- a/lib/trino-plugin-toolkit/src/test/java/io/trino/plugin/base/classloader/TestClassLoaderSafeWrappers.java +++ b/lib/trino-plugin-toolkit/src/test/java/io/trino/plugin/base/classloader/TestClassLoaderSafeWrappers.java @@ -27,13 +27,10 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorRecordSetProvider; import io.trino.spi.connector.ConnectorSession; -import io.trino.spi.connector.ConnectorSplit; import io.trino.spi.connector.ConnectorSplitManager; import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.connector.ConnectorTableExecuteHandle; -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 io.trino.spi.connector.SystemTable; import io.trino.spi.eventlistener.EventListener; @@ -45,7 +42,6 @@ import java.lang.reflect.Method; import java.util.Iterator; -import java.util.List; import java.util.Set; import java.util.stream.Stream; @@ -68,8 +64,7 @@ public void test() ClassLoaderSafeConnectorPageSinkProvider.class.getMethod("createPageSink", ConnectorTransactionHandle.class, ConnectorSession.class, ConnectorInsertTableHandle.class, ConnectorPageSinkId.class), ClassLoaderSafeConnectorPageSinkProvider.class.getMethod("createPageSink", ConnectorTransactionHandle.class, ConnectorSession.class, ConnectorTableExecuteHandle.class, ConnectorPageSinkId.class), ClassLoaderSafeConnectorPageSinkProvider.class.getMethod("createMergeSink", ConnectorTransactionHandle.class, ConnectorSession.class, ConnectorMergeTableHandle.class, ConnectorPageSinkId.class))); - testClassLoaderSafe(ConnectorPageSourceProvider.class, ClassLoaderSafeConnectorPageSourceProvider.class, ImmutableSet.of( - ClassLoaderSafeConnectorPageSourceProvider.class.getMethod("createPageSource", ConnectorTransactionHandle.class, ConnectorSession.class, ConnectorSplit.class, ConnectorTableHandle.class, List.class, DynamicFilter.class))); + testClassLoaderSafe(ConnectorPageSourceProvider.class, ClassLoaderSafeConnectorPageSourceProvider.class); testClassLoaderSafe(ConnectorSplitManager.class, ClassLoaderSafeConnectorSplitManager.class); testClassLoaderSafe(ConnectorNodePartitioningProvider.class, ClassLoaderSafeNodePartitioningProvider.class); testClassLoaderSafe(ConnectorSplitSource.class, ClassLoaderSafeConnectorSplitSource.class); diff --git a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/JdbcPageSourceProvider.java b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/JdbcPageSourceProvider.java index e041eeed236b..3bee34f6206a 100644 --- a/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/JdbcPageSourceProvider.java +++ b/plugin/trino-base-jdbc/src/main/java/io/trino/plugin/jdbc/JdbcPageSourceProvider.java @@ -23,7 +23,6 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; @@ -66,7 +65,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { diff --git a/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestJdbcPageSourceProvider.java b/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestJdbcPageSourceProvider.java index a73f8bf47a96..751d6093fdb5 100644 --- a/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestJdbcPageSourceProvider.java +++ b/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestJdbcPageSourceProvider.java @@ -106,7 +106,7 @@ public void testGetPageSource() { ConnectorTransactionHandle transaction = new JdbcTransactionHandle(); JdbcPageSourceProvider pageSourceProvider = new JdbcPageSourceProvider(jdbcClient, executor, RetryPolicy.ofDefaults()); - ConnectorPageSource pageSource = pageSourceProvider.createPageSource(transaction, SESSION, split, table, Optional.empty(), ImmutableList.of(textColumn, textShortColumn, valueColumn), DynamicFilter.EMPTY); + ConnectorPageSource pageSource = pageSourceProvider.createPageSource(transaction, SESSION, split, table, ImmutableList.of(textColumn, textShortColumn, valueColumn), DynamicFilter.EMPTY); assertThat(pageSource).withFailMessage("pageSource is null").isNotNull(); Map data = new LinkedHashMap<>(); @@ -226,6 +226,6 @@ private ConnectorPageSource getCursor(JdbcTableHandle jdbcTableHandle, List tableCredentials, List columns, DynamicFilter dynamicFilter) { diff --git a/plugin/trino-blackhole/src/main/java/io/trino/plugin/blackhole/BlackHolePageSourceProvider.java b/plugin/trino-blackhole/src/main/java/io/trino/plugin/blackhole/BlackHolePageSourceProvider.java index c8f5a6ec7c2e..d644957ba9b2 100644 --- a/plugin/trino-blackhole/src/main/java/io/trino/plugin/blackhole/BlackHolePageSourceProvider.java +++ b/plugin/trino-blackhole/src/main/java/io/trino/plugin/blackhole/BlackHolePageSourceProvider.java @@ -25,7 +25,6 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; @@ -47,7 +46,6 @@ import java.util.Arrays; import java.util.List; -import java.util.Optional; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; @@ -68,7 +66,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle tableHandle, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { diff --git a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakePageSourceProvider.java b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakePageSourceProvider.java index 249d0c76f709..a9fbda68a8f8 100644 --- a/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakePageSourceProvider.java +++ b/plugin/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakePageSourceProvider.java @@ -51,7 +51,6 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; @@ -153,7 +152,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit connectorSplit, ConnectorTableHandle connectorTable, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { diff --git a/plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/TestDeltaLakeNodeLocalDynamicSplitPruning.java b/plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/TestDeltaLakeNodeLocalDynamicSplitPruning.java index 56499384c915..a044abcadd8b 100644 --- a/plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/TestDeltaLakeNodeLocalDynamicSplitPruning.java +++ b/plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/TestDeltaLakeNodeLocalDynamicSplitPruning.java @@ -334,7 +334,6 @@ private static ConnectorPageSource createTestingPageSource( getSession(deltaLakeConfig), split, tableHandle.connectorHandle(), - Optional.empty(), columns, dynamicFilter); } diff --git a/plugin/trino-elasticsearch/src/main/java/io/trino/plugin/elasticsearch/ElasticsearchPageSourceProvider.java b/plugin/trino-elasticsearch/src/main/java/io/trino/plugin/elasticsearch/ElasticsearchPageSourceProvider.java index f38042b7b904..2c445f790267 100644 --- a/plugin/trino-elasticsearch/src/main/java/io/trino/plugin/elasticsearch/ElasticsearchPageSourceProvider.java +++ b/plugin/trino-elasticsearch/src/main/java/io/trino/plugin/elasticsearch/ElasticsearchPageSourceProvider.java @@ -20,14 +20,12 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.type.TypeManager; import java.util.List; -import java.util.Optional; import static com.google.common.collect.ImmutableList.toImmutableList; import static io.trino.plugin.elasticsearch.ElasticsearchTableHandle.Type.QUERY; @@ -52,7 +50,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { diff --git a/plugin/trino-faker/src/main/java/io/trino/plugin/faker/FakerPageSourceProvider.java b/plugin/trino-faker/src/main/java/io/trino/plugin/faker/FakerPageSourceProvider.java index 76eddac77940..e7aad9c92cc3 100644 --- a/plugin/trino-faker/src/main/java/io/trino/plugin/faker/FakerPageSourceProvider.java +++ b/plugin/trino-faker/src/main/java/io/trino/plugin/faker/FakerPageSourceProvider.java @@ -19,7 +19,6 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; @@ -27,7 +26,6 @@ import java.util.List; import java.util.Locale; -import java.util.Optional; import java.util.Random; import java.util.random.RandomGeneratorFactory; @@ -60,7 +58,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { diff --git a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HivePageSourceProvider.java b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HivePageSourceProvider.java index 8fd2334a9070..8d0549166504 100644 --- a/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HivePageSourceProvider.java +++ b/plugin/trino-hive/src/main/java/io/trino/plugin/hive/HivePageSourceProvider.java @@ -33,7 +33,6 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; @@ -108,7 +107,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle tableHandle, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestHivePageSink.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestHivePageSink.java index 85ade1318e4b..0c0ecc82a26d 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestHivePageSink.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestHivePageSink.java @@ -419,7 +419,7 @@ private static ConnectorPageSource createPageSource(TrinoFileSystemFactory fileS TESTING_TYPE_MANAGER, config, getDefaultHivePageSourceFactories(fileSystemFactory, config)); - return provider.createPageSource(transaction, getHiveSession(config), split, table, Optional.empty(), ImmutableList.copyOf(getColumnHandles()), DynamicFilter.EMPTY); + return provider.createPageSource(transaction, getHiveSession(config), split, table, ImmutableList.copyOf(getColumnHandles()), DynamicFilter.EMPTY); } private static ConnectorPageSink createPageSink( diff --git a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestNodeLocalDynamicSplitPruning.java b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestNodeLocalDynamicSplitPruning.java index a42c6122977f..a70dbec72bab 100644 --- a/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestNodeLocalDynamicSplitPruning.java +++ b/plugin/trino-hive/src/test/java/io/trino/plugin/hive/TestNodeLocalDynamicSplitPruning.java @@ -163,7 +163,6 @@ private static ConnectorPageSource createTestingPageSource(HiveTransactionHandle getSession(hiveConfig), split, tableHandle.connectorHandle(), - Optional.empty(), ImmutableList.of(BUCKET_HIVE_COLUMN_HANDLE, PARTITION_HIVE_COLUMN_HANDLE), dynamicFilter); } 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 4fa29181bb8c..3ea909baf775 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 @@ -595,9 +595,8 @@ public SourceOperator newTableScanOperator(DriverContext driverContext) 0, new PlanNodeId("0"), new PlanNodeId("0"), - _ -> (_, _, _, _, _, _) -> pageSource, + _ -> (_, _, _, _, _) -> pageSource, TEST_TABLE_HANDLE, - Optional.empty(), columns.stream().map(ColumnHandle.class::cast).collect(toImmutableList()), types); SourceOperator operator = sourceOperatorFactory.createOperator(driverContext); @@ -618,10 +617,9 @@ public SourceOperator newScanFilterAndProjectOperator(DriverContext driverContex 0, new PlanNodeId("test"), new PlanNodeId("0"), - _ -> (_, _, _, _, _, _) -> pageSource, + _ -> (_, _, _, _, _) -> pageSource, _ -> pageProcessor.get(), TEST_TABLE_HANDLE, - Optional.empty(), columns.stream().map(ColumnHandle.class::cast).collect(toList()), DynamicFilter.EMPTY, types, diff --git a/plugin/trino-hudi/src/main/java/io/trino/plugin/hudi/HudiPageSourceProvider.java b/plugin/trino-hudi/src/main/java/io/trino/plugin/hudi/HudiPageSourceProvider.java index 9e52131c62e0..293790ba6175 100644 --- a/plugin/trino-hudi/src/main/java/io/trino/plugin/hudi/HudiPageSourceProvider.java +++ b/plugin/trino-hudi/src/main/java/io/trino/plugin/hudi/HudiPageSourceProvider.java @@ -42,7 +42,6 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; @@ -151,7 +150,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit connectorSplit, ConnectorTableHandle connectorTable, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { diff --git a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergMetadata.java b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergMetadata.java index fcdf13d1e6e2..24370651b951 100644 --- a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergMetadata.java +++ b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergMetadata.java @@ -912,6 +912,8 @@ private Optional getRawSystemTable(ConnectorSession session, Schema return Optional.empty(); } + tableCredentialsCache.put(tableName, IcebergTableCredentials.forFileIO(table.io())); + TableType tableType = IcebergTableName.tableTypeFrom(tableName.getTableName()); return switch (tableType) { case DATA, MATERIALIZED_VIEW_STORAGE -> throw new VerifyException("Unexpected table type: " + tableType); // Handled above. diff --git a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergPageSourceProvider.java b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergPageSourceProvider.java index 7debd330a1db..cec2fe58215c 100644 --- a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergPageSourceProvider.java +++ b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergPageSourceProvider.java @@ -73,7 +73,6 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; @@ -181,7 +180,6 @@ import static io.trino.plugin.iceberg.IcebergTypes.convertIcebergValueToTrino; import static io.trino.plugin.iceberg.IcebergUtil.deserializePartitionValue; import static io.trino.plugin.iceberg.IcebergUtil.getColumnHandle; -import static io.trino.plugin.iceberg.IcebergUtil.getFileIoProperties; import static io.trino.plugin.iceberg.IcebergUtil.getPartitionKeys; import static io.trino.plugin.iceberg.IcebergUtil.getPartitionValues; import static io.trino.plugin.iceberg.IcebergUtil.schemaFromHandles; @@ -254,14 +252,14 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit connectorSplit, ConnectorTableHandle connectorTable, - Optional connectorTableCredentials, List columns, DynamicFilter dynamicFilter) { if (connectorSplit instanceof FilesTableSplit filesTableSplit) { + Map fileIoProperties = filesTableSplit.tableCredentials().fileIoProperties(); return new FilesTablePageSource( typeManager, - fileSystemFactory.create(session.getIdentity(), getFileIoProperties(connectorTableCredentials)), + fileSystemFactory.create(session.getIdentity(), fileIoProperties), fileIoFactory, columns.stream().map(SystemColumnHandle.class::cast).map(SystemColumnHandle::columnName).collect(toImmutableList()), filesTableSplit); @@ -295,7 +293,7 @@ public ConnectorPageSource createPageSource( split.fileSize(), split.fileRecordCount(), split.fileFormat(), - getFileIoProperties(connectorTableCredentials), + split.tableCredentials().fileIoProperties(), split.dataSequenceNumber(), split.fileFirstRowId(), tableHandle.getNameMappingJson().map(NameMappingParser::fromJson)); diff --git a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergSplit.java b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergSplit.java index bf94f02fd37e..c81d2bce5112 100644 --- a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergSplit.java +++ b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergSplit.java @@ -49,7 +49,8 @@ public record IcebergSplit( @JsonProperty("fileStatisticsDomain") TupleDomain fileStatisticsDomain, @JsonProperty("affinityKey") Optional affinityKey, @JsonProperty("dataSequenceNumber") long dataSequenceNumber, - @JsonProperty("fileFirstRowId") OptionalLong fileFirstRowId) + @JsonProperty("fileFirstRowId") OptionalLong fileFirstRowId, + IcebergTableCredentials tableCredentials) implements ConnectorSplit { private static final int INSTANCE_SIZE = instanceSize(IcebergSplit.class); @@ -64,6 +65,7 @@ public record IcebergSplit( requireNonNull(fileStatisticsDomain, "fileStatisticsDomain is null"); requireNonNull(affinityKey, "affinityKey is null"); requireNonNull(fileFirstRowId, "fileFirstRowId is null"); + requireNonNull(tableCredentials, "tableCredentials is null"); } @Override @@ -91,7 +93,8 @@ public long getRetainedSizeInBytes() + fileStatisticsDomain.getRetainedSizeInBytes(IcebergColumnHandle::getRetainedSizeInBytes) + SIZE_OF_LONG // dataSequenceNumber + sizeOf(affinityKey, SizeOf::estimatedSizeOf) - + (fileFirstRowId.isPresent() ? SIZE_OF_LONG : 0); + + (fileFirstRowId.isPresent() ? SIZE_OF_LONG : 0) + + tableCredentials.retainedSizeInBytes(); } @Override diff --git a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergSplitSource.java b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergSplitSource.java index e579cf300bbe..ecdcb8b9aee4 100644 --- a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergSplitSource.java +++ b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergSplitSource.java @@ -746,7 +746,8 @@ private IcebergSplit toIcebergSplit(FileScanTaskWithDomain taskWithDomain) taskWithDomain.fileStatisticsDomain(), affinityKey, task.file().dataSequenceNumber(), - task.file().firstRowId() == null ? OptionalLong.empty() : OptionalLong.of(task.file().firstRowId())); + task.file().firstRowId() == null ? OptionalLong.empty() : OptionalLong.of(task.file().firstRowId()), + new IcebergTableCredentials(fileIoProperties)); } private static List getPartitionBlockValues(FileScanTask task, TypeManager typeManager) diff --git a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergTableCredentials.java b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergTableCredentials.java index 19b3ea3bee18..1b48c44e2675 100644 --- a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergTableCredentials.java +++ b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/IcebergTableCredentials.java @@ -14,14 +14,20 @@ package io.trino.plugin.iceberg; import com.google.common.collect.ImmutableMap; +import io.airlift.slice.SizeOf; import io.trino.spi.connector.ConnectorTableCredentials; import org.apache.iceberg.io.FileIO; import java.util.Map; +import static io.airlift.slice.SizeOf.estimatedSizeOf; +import static io.airlift.slice.SizeOf.instanceSize; + public record IcebergTableCredentials(Map fileIoProperties) implements ConnectorTableCredentials { + private static final int INSTANCE_SIZE = instanceSize(IcebergTableCredentials.class); + public IcebergTableCredentials { fileIoProperties = ImmutableMap.copyOf(fileIoProperties); @@ -31,4 +37,9 @@ public static IcebergTableCredentials forFileIO(FileIO io) { return new IcebergTableCredentials(io.properties()); } + + public long retainedSizeInBytes() + { + return INSTANCE_SIZE + estimatedSizeOf(fileIoProperties, SizeOf::estimatedSizeOf, SizeOf::estimatedSizeOf); + } } diff --git a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/system/FilesTable.java b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/system/FilesTable.java index 41655354826e..5a15c6d2f368 100644 --- a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/system/FilesTable.java +++ b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/system/FilesTable.java @@ -14,13 +14,11 @@ package io.trino.plugin.iceberg.system; import com.google.common.collect.ImmutableList; -import io.trino.plugin.iceberg.IcebergTableCredentials; import io.trino.plugin.iceberg.system.files.FilesTableSplitSource; import io.trino.spi.connector.ColumnHandle; import io.trino.spi.connector.ColumnMetadata; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplitSource; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableMetadata; import io.trino.spi.connector.SchemaTableName; import io.trino.spi.connector.SystemTable; @@ -164,12 +162,6 @@ public Optional splitSource(ConnectorSession connectorSess partitionColumnType)); } - @Override - public Optional getTableCredentials(ConnectorSession session) - { - return Optional.of(IcebergTableCredentials.forFileIO(icebergTable.io())); - } - public static Type getColumnType(String columnName, TypeManager typeManager) { return switch (columnName) { diff --git a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/system/files/FilesTableSplit.java b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/system/files/FilesTableSplit.java index e66d14e4714b..98a1037e3618 100644 --- a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/system/files/FilesTableSplit.java +++ b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/system/files/FilesTableSplit.java @@ -13,7 +13,9 @@ */ package io.trino.plugin.iceberg.system.files; +import com.google.common.collect.ImmutableMap; import io.airlift.slice.SizeOf; +import io.trino.plugin.iceberg.IcebergTableCredentials; import io.trino.spi.connector.ConnectorSplit; import io.trino.spi.type.Type; @@ -22,17 +24,29 @@ import static io.airlift.slice.SizeOf.estimatedSizeOf; import static io.airlift.slice.SizeOf.instanceSize; +import static java.util.Objects.requireNonNull; public record FilesTableSplit( TrinoManifestFile manifestFile, String schemaJson, String metadataTableJson, Map partitionSpecsByIdJson, - Optional partitionColumnType) + Optional partitionColumnType, + IcebergTableCredentials tableCredentials) implements ConnectorSplit { private static final int INSTANCE_SIZE = instanceSize(FilesTableSplit.class); + public FilesTableSplit + { + requireNonNull(manifestFile, "manifestFile is null"); + requireNonNull(schemaJson, "schemaJson is null"); + requireNonNull(metadataTableJson, "metadataTableJson is null"); + partitionSpecsByIdJson = ImmutableMap.copyOf(partitionSpecsByIdJson); + requireNonNull(partitionColumnType, "partitionColumnType is null"); + requireNonNull(tableCredentials, "tableCredentials is null"); + } + @Override public long getRetainedSizeInBytes() { @@ -41,6 +55,7 @@ public long getRetainedSizeInBytes() + manifestFile.getRetainedSizeInBytes() + estimatedSizeOf(schemaJson) + estimatedSizeOf(metadataTableJson) - + estimatedSizeOf(partitionSpecsByIdJson, SizeOf::sizeOf, SizeOf::estimatedSizeOf); + + estimatedSizeOf(partitionSpecsByIdJson, SizeOf::sizeOf, SizeOf::estimatedSizeOf) + + tableCredentials.retainedSizeInBytes(); } } diff --git a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/system/files/FilesTableSplitSource.java b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/system/files/FilesTableSplitSource.java index e03eb366b237..f22528d19a04 100644 --- a/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/system/files/FilesTableSplitSource.java +++ b/plugin/trino-iceberg/src/main/java/io/trino/plugin/iceberg/system/files/FilesTableSplitSource.java @@ -14,6 +14,7 @@ package io.trino.plugin.iceberg.system.files; import com.google.common.collect.ImmutableMap; +import io.trino.plugin.iceberg.IcebergTableCredentials; import io.trino.spi.connector.ConnectorSplit; import io.trino.spi.connector.ConnectorSplitSource; import io.trino.spi.type.Type; @@ -67,13 +68,15 @@ public CompletableFuture getNextBatch(int maxSize) List splits = new ArrayList<>(); try (FileIO fileIO = icebergTable.io()) { + Map fileIoProperties = fileIO.properties(); for (ManifestFile manifestFile : scan.snapshot().allManifests(fileIO)) { splits.add(new FilesTableSplit( TrinoManifestFile.from(manifestFile), schemaJson, metadataSchemaJson, partitionSpecsByIdJson, - partitionColumnType)); + partitionColumnType, + new IcebergTableCredentials(fileIoProperties))); } } diff --git a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergNodeLocalDynamicSplitPruning.java b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergNodeLocalDynamicSplitPruning.java index 023498d261f9..617fc56c1486 100644 --- a/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergNodeLocalDynamicSplitPruning.java +++ b/plugin/trino-iceberg/src/test/java/io/trino/plugin/iceberg/TestIcebergNodeLocalDynamicSplitPruning.java @@ -153,7 +153,8 @@ public void testDynamicSplitPruningOnUnpartitionedTable() TupleDomain.all(), Optional.empty(), 0, - OptionalLong.empty()); + OptionalLong.empty(), + new IcebergTableCredentials(ImmutableMap.of())); String tablePath = inputFile.location().fileName(); TableHandle tableHandle = new TableHandle( @@ -216,7 +217,8 @@ public void testDynamicSplitPruningOnUnpartitionedTable() TupleDomain.withColumnDomains(ImmutableMap.of(keyColumnHandle, Domain.singleValue(INTEGER, (long) keyColumnValue))), Optional.empty(), 0, - OptionalLong.empty()); + OptionalLong.empty(), + new IcebergTableCredentials(ImmutableMap.of())); tableHandle = new TableHandle( TEST_CATALOG_HANDLE, @@ -327,7 +329,8 @@ public void testDynamicSplitPruningWithExplicitPartitionFilter() TupleDomain.all(), Optional.empty(), 0, - OptionalLong.empty()); + OptionalLong.empty(), + new IcebergTableCredentials(ImmutableMap.of())); String tablePath = inputFile.location().fileName(); TableHandle tableHandle = new TableHandle( @@ -481,7 +484,8 @@ public void testDynamicSplitPruningWithExplicitPartitionFilterPartitionEvolution TupleDomain.all(), Optional.empty(), 0, - OptionalLong.empty()); + OptionalLong.empty(), + new IcebergTableCredentials(ImmutableMap.of())); String tablePath = inputFile.location().fileName(); // Simulate the situation where `month` column is added at a later phase as partitioning column @@ -593,7 +597,6 @@ private static ConnectorPageSource createTestingPageSource( getSession(icebergConfig), split, tableHandle.connectorHandle(), - Optional.empty(), columns, dynamicFilter); } diff --git a/plugin/trino-lakehouse/src/main/java/io/trino/plugin/lakehouse/LakehousePageSourceProviderFactory.java b/plugin/trino-lakehouse/src/main/java/io/trino/plugin/lakehouse/LakehousePageSourceProviderFactory.java index ea51cced9dac..a3172d9a4530 100644 --- a/plugin/trino-lakehouse/src/main/java/io/trino/plugin/lakehouse/LakehousePageSourceProviderFactory.java +++ b/plugin/trino-lakehouse/src/main/java/io/trino/plugin/lakehouse/LakehousePageSourceProviderFactory.java @@ -29,13 +29,11 @@ import io.trino.spi.connector.ConnectorPageSourceProviderFactory; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; import java.util.List; -import java.util.Optional; import static java.util.Objects.requireNonNull; @@ -75,7 +73,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { @@ -86,7 +83,7 @@ public ConnectorPageSource createPageSource( } } } - return delegate.createPageSource(transaction, session, split, table, tableCredentials, columns, dynamicFilter); + return delegate.createPageSource(transaction, session, split, table, columns, dynamicFilter); } @Override diff --git a/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemoryPageSourceProvider.java b/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemoryPageSourceProvider.java index 628c2a2bb740..aa1aa14ee37b 100644 --- a/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemoryPageSourceProvider.java +++ b/plugin/trino-memory/src/main/java/io/trino/plugin/memory/MemoryPageSourceProvider.java @@ -23,7 +23,6 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; @@ -38,7 +37,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -import java.util.Optional; import java.util.OptionalDouble; import java.util.OptionalLong; import java.util.concurrent.CompletableFuture; @@ -64,7 +62,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { diff --git a/plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoPageSourceProvider.java b/plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoPageSourceProvider.java index 71d9210a3764..8228fce130a2 100644 --- a/plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoPageSourceProvider.java +++ b/plugin/trino-mongodb/src/main/java/io/trino/plugin/mongodb/MongoPageSourceProvider.java @@ -20,7 +20,6 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; @@ -28,7 +27,6 @@ import io.trino.spi.predicate.TupleDomain; import java.util.List; -import java.util.Optional; import static io.trino.plugin.mongodb.TypeUtils.isPushdownSupportedType; import static java.util.Objects.requireNonNull; @@ -54,7 +52,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { diff --git a/plugin/trino-opensearch/src/main/java/io/trino/plugin/opensearch/OpenSearchPageSourceProvider.java b/plugin/trino-opensearch/src/main/java/io/trino/plugin/opensearch/OpenSearchPageSourceProvider.java index d4ac58981855..b759d3904a2a 100644 --- a/plugin/trino-opensearch/src/main/java/io/trino/plugin/opensearch/OpenSearchPageSourceProvider.java +++ b/plugin/trino-opensearch/src/main/java/io/trino/plugin/opensearch/OpenSearchPageSourceProvider.java @@ -20,14 +20,12 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; import io.trino.spi.type.TypeManager; import java.util.List; -import java.util.Optional; import static com.google.common.collect.ImmutableList.toImmutableList; import static io.trino.plugin.opensearch.OpenSearchTableHandle.Type.QUERY; @@ -52,7 +50,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { diff --git a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotPageSourceProvider.java b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotPageSourceProvider.java index 57eccc238181..dbcc5da82d64 100755 --- a/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotPageSourceProvider.java +++ b/plugin/trino-pinot/src/main/java/io/trino/plugin/pinot/PinotPageSourceProvider.java @@ -23,14 +23,12 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; import java.util.ArrayList; import java.util.List; -import java.util.Optional; import static io.trino.plugin.pinot.query.DynamicTablePqlExtractor.extractPql; import static io.trino.plugin.pinot.query.PinotQueryBuilder.generatePql; @@ -64,7 +62,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle tableHandle, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { diff --git a/plugin/trino-redshift/src/main/java/io/trino/plugin/redshift/RedshiftPageSourceProvider.java b/plugin/trino-redshift/src/main/java/io/trino/plugin/redshift/RedshiftPageSourceProvider.java index 2768c000c9e9..2a2fc2723044 100644 --- a/plugin/trino-redshift/src/main/java/io/trino/plugin/redshift/RedshiftPageSourceProvider.java +++ b/plugin/trino-redshift/src/main/java/io/trino/plugin/redshift/RedshiftPageSourceProvider.java @@ -34,7 +34,6 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; @@ -78,12 +77,11 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { if (split instanceof JdbcSplit) { - return jdbcPageSourceProvider.createPageSource(transaction, session, split, table, tableCredentials, columns, dynamicFilter); + return jdbcPageSourceProvider.createPageSource(transaction, session, split, table, columns, dynamicFilter); } RedshiftUnloadSplit redshiftUnloadSplit = ((RedshiftUnloadSplit) split); diff --git a/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftPageSourceProvider.java b/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftPageSourceProvider.java index 46122ccdeb39..508c959bd6c7 100644 --- a/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftPageSourceProvider.java +++ b/plugin/trino-thrift/src/main/java/io/trino/plugin/thrift/ThriftPageSourceProvider.java @@ -21,13 +21,11 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; import java.util.List; -import java.util.Optional; import static java.util.Objects.requireNonNull; @@ -54,7 +52,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { diff --git a/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchPageSourceProvider.java b/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchPageSourceProvider.java index b0464427f02c..444ef9fb9f03 100644 --- a/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchPageSourceProvider.java +++ b/plugin/trino-tpch/src/main/java/io/trino/plugin/tpch/TpchPageSourceProvider.java @@ -19,14 +19,12 @@ import io.trino.spi.connector.ConnectorPageSourceProvider; import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; import io.trino.tpch.TpchTable; import java.util.List; -import java.util.Optional; import static io.trino.plugin.tpch.TpchRecordSet.getRecordSet; import static java.util.Objects.requireNonNull; @@ -55,7 +53,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { diff --git a/testing/trino-tests/src/test/java/io/trino/execution/AbstractTestCoordinatorDynamicFiltering.java b/testing/trino-tests/src/test/java/io/trino/execution/AbstractTestCoordinatorDynamicFiltering.java index 6b1b41140400..71bd2a2278df 100644 --- a/testing/trino-tests/src/test/java/io/trino/execution/AbstractTestCoordinatorDynamicFiltering.java +++ b/testing/trino-tests/src/test/java/io/trino/execution/AbstractTestCoordinatorDynamicFiltering.java @@ -33,7 +33,6 @@ import io.trino.spi.connector.ConnectorSplit; import io.trino.spi.connector.ConnectorSplitManager; import io.trino.spi.connector.ConnectorSplitSource; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.Constraint; @@ -57,7 +56,6 @@ import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicBoolean; @@ -621,7 +619,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) { diff --git a/testing/trino-tests/src/test/java/io/trino/execution/TestBeginQuery.java b/testing/trino-tests/src/test/java/io/trino/execution/TestBeginQuery.java index 4eae72119274..4628076770b7 100644 --- a/testing/trino-tests/src/test/java/io/trino/execution/TestBeginQuery.java +++ b/testing/trino-tests/src/test/java/io/trino/execution/TestBeginQuery.java @@ -29,7 +29,6 @@ import io.trino.spi.connector.ConnectorSession; import io.trino.spi.connector.ConnectorSplit; import io.trino.spi.connector.ConnectorSplitManager; -import io.trino.spi.connector.ConnectorTableCredentials; import io.trino.spi.connector.ConnectorTableHandle; import io.trino.spi.connector.ConnectorTransactionHandle; import io.trino.spi.connector.DynamicFilter; @@ -47,7 +46,6 @@ import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.concurrent.atomic.AtomicInteger; import static io.trino.testing.TestingSession.testSessionBuilder; @@ -203,7 +201,6 @@ public ConnectorPageSource createPageSource( ConnectorSession session, ConnectorSplit split, ConnectorTableHandle table, - Optional tableCredentials, List columns, DynamicFilter dynamicFilter) {