Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions core/trino-main/src/main/java/io/trino/metadata/Metadata.java
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ Optional<TableExecuteHandle> getTableHandleForExecute(
String procedureName,
Map<String, Object> executeProperties);

Optional<NewTableLayout> getLayoutForTableExecute(Session session, TableExecuteHandle tableExecuteHandle);
Optional<TableLayout> getLayoutForTableExecute(Session session, TableExecuteHandle tableExecuteHandle);

BeginTableExecuteResult<TableExecuteHandle, TableHandle> beginTableExecute(Session session, TableExecuteHandle handle, TableHandle updatedSourceTableHandle);

Expand Down Expand Up @@ -250,19 +250,19 @@ Optional<TableExecuteHandle> getTableHandleForExecute(
*/
void truncateTable(Session session, TableHandle tableHandle);

Optional<NewTableLayout> getNewTableLayout(Session session, String catalogName, ConnectorTableMetadata tableMetadata);
Optional<TableLayout> getNewTableLayout(Session session, String catalogName, ConnectorTableMetadata tableMetadata);

/**
* Begin the atomic creation of a table with data.
*/
OutputTableHandle beginCreateTable(Session session, String catalogName, ConnectorTableMetadata tableMetadata, Optional<NewTableLayout> layout);
OutputTableHandle beginCreateTable(Session session, String catalogName, ConnectorTableMetadata tableMetadata, Optional<TableLayout> layout);

/**
* Finish a table creation with data after the data is written.
*/
Optional<ConnectorOutputMetadata> finishCreateTable(Session session, OutputTableHandle tableHandle, Collection<Slice> fragments, Collection<ComputedStatistics> computedStatistics);

Optional<NewTableLayout> getInsertLayout(Session session, TableHandle target);
Optional<TableLayout> getInsertLayout(Session session, TableHandle target);

/**
* Describes statistics that must be collected during a write.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -382,14 +382,14 @@ public Optional<TableExecuteHandle> getTableHandleForExecute(Session session, Ta
}

@Override
public Optional<NewTableLayout> getLayoutForTableExecute(Session session, TableExecuteHandle tableExecuteHandle)
public Optional<TableLayout> getLayoutForTableExecute(Session session, TableExecuteHandle tableExecuteHandle)
{
CatalogName catalogName = tableExecuteHandle.getCatalogName();
CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, catalogName);
ConnectorMetadata metadata = catalogMetadata.getMetadata();

return metadata.getLayoutForTableExecute(session.toConnectorSession(catalogName), tableExecuteHandle.getConnectorHandle())
.map(layout -> new NewTableLayout(catalogName, catalogMetadata.getTransactionHandleFor(catalogName), layout));
.map(layout -> new TableLayout(catalogName, catalogMetadata.getTransactionHandleFor(catalogName), layout));
}

@Override
Expand Down Expand Up @@ -806,14 +806,14 @@ public void truncateTable(Session session, TableHandle tableHandle)
}

@Override
public Optional<NewTableLayout> getInsertLayout(Session session, TableHandle table)
public Optional<TableLayout> getInsertLayout(Session session, TableHandle table)
{
CatalogName catalogName = table.getCatalogName();
CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, catalogName);
ConnectorMetadata metadata = catalogMetadata.getMetadata();

return metadata.getInsertLayout(session.toConnectorSession(catalogName), table.getConnectorHandle())
.map(layout -> new NewTableLayout(catalogName, catalogMetadata.getTransactionHandleFor(catalogName), layout));
.map(layout -> new TableLayout(catalogName, catalogMetadata.getTransactionHandleFor(catalogName), layout));
}

@Override
Expand Down Expand Up @@ -855,7 +855,7 @@ public void finishStatisticsCollection(Session session, AnalyzeTableHandle table
}

@Override
public Optional<NewTableLayout> getNewTableLayout(Session session, String catalogName, ConnectorTableMetadata tableMetadata)
public Optional<TableLayout> getNewTableLayout(Session session, String catalogName, ConnectorTableMetadata tableMetadata)
{
CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, catalogName);
CatalogName catalog = catalogMetadata.getCatalogName();
Expand All @@ -864,7 +864,7 @@ public Optional<NewTableLayout> getNewTableLayout(Session session, String catalo
ConnectorTransactionHandle transactionHandle = catalogMetadata.getTransactionHandleFor(catalog);
ConnectorSession connectorSession = session.toConnectorSession(catalog);
return metadata.getNewTableLayout(connectorSession, tableMetadata)
.map(layout -> new NewTableLayout(catalog, transactionHandle, layout));
.map(layout -> new TableLayout(catalog, transactionHandle, layout));
}

@Override
Expand All @@ -877,15 +877,15 @@ public void cleanupQuery(Session session)
}

@Override
public OutputTableHandle beginCreateTable(Session session, String catalogName, ConnectorTableMetadata tableMetadata, Optional<NewTableLayout> layout)
public OutputTableHandle beginCreateTable(Session session, String catalogName, ConnectorTableMetadata tableMetadata, Optional<TableLayout> layout)
{
CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, catalogName);
CatalogName catalog = catalogMetadata.getCatalogName();
ConnectorMetadata metadata = catalogMetadata.getMetadata();

ConnectorTransactionHandle transactionHandle = catalogMetadata.getTransactionHandleFor(catalog);
ConnectorSession connectorSession = session.toConnectorSession(catalog);
ConnectorOutputTableHandle handle = metadata.beginCreateTable(connectorSession, tableMetadata, layout.map(NewTableLayout::getLayout), getRetryPolicy(session).getRetryMode());
ConnectorOutputTableHandle handle = metadata.beginCreateTable(connectorSession, tableMetadata, layout.map(TableLayout::getLayout), getRetryPolicy(session).getRetryMode());
// TODO this should happen after finish but there is no way to get table name in finish step
if (catalogMetadata.getSecurityManagement() == SecurityManagement.SYSTEM) {
systemSecurityMetadata.tableCreated(session, new CatalogSchemaTableName(catalogName, tableMetadata.getTable()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.trino.connector.CatalogName;
import io.trino.spi.connector.ConnectorNewTableLayout;
import io.trino.spi.connector.ConnectorTableLayout;
import io.trino.spi.connector.ConnectorTransactionHandle;
import io.trino.sql.planner.PartitioningHandle;

Expand All @@ -27,17 +27,17 @@
import static com.google.common.base.MoreObjects.toStringHelper;
import static java.util.Objects.requireNonNull;

public class NewTableLayout
public class TableLayout
{
private final CatalogName catalogName;
private final ConnectorTransactionHandle transactionHandle;
private final ConnectorNewTableLayout layout;
private final ConnectorTableLayout layout;

@JsonCreator
public NewTableLayout(
public TableLayout(
@JsonProperty("catalogName") CatalogName catalogName,
@JsonProperty("transactionHandle") ConnectorTransactionHandle transactionHandle,
@JsonProperty("layout") ConnectorNewTableLayout layout)
@JsonProperty("layout") ConnectorTableLayout layout)
{
this.catalogName = requireNonNull(catalogName, "catalogName is null");
this.transactionHandle = requireNonNull(transactionHandle, "transactionHandle is null");
Expand All @@ -51,7 +51,7 @@ public CatalogName getCatalogName()
}

@JsonProperty
public ConnectorNewTableLayout getLayout()
public ConnectorTableLayout getLayout()
{
return layout;
}
Expand All @@ -77,7 +77,7 @@ public boolean equals(Object o)
return false;
}

NewTableLayout that = (NewTableLayout) o;
TableLayout that = (TableLayout) o;
return Objects.equals(catalogName, that.catalogName) &&
Objects.equals(transactionHandle, that.transactionHandle) &&
Objects.equals(layout, that.layout);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@
import com.google.common.collect.Multimap;
import com.google.common.collect.Multiset;
import com.google.common.collect.Streams;
import io.trino.metadata.NewTableLayout;
import io.trino.metadata.QualifiedObjectName;
import io.trino.metadata.ResolvedFunction;
import io.trino.metadata.TableExecuteHandle;
import io.trino.metadata.TableHandle;
import io.trino.metadata.TableLayout;
import io.trino.security.AccessControl;
import io.trino.security.SecurityContext;
import io.trino.spi.QueryId;
Expand Down Expand Up @@ -1187,14 +1187,14 @@ public static final class Create
{
private final Optional<QualifiedObjectName> destination;
private final Optional<ConnectorTableMetadata> metadata;
private final Optional<NewTableLayout> layout;
private final Optional<TableLayout> layout;
private final boolean createTableAsSelectWithData;
private final boolean createTableAsSelectNoOp;

public Create(
Optional<QualifiedObjectName> destination,
Optional<ConnectorTableMetadata> metadata,
Optional<NewTableLayout> layout,
Optional<TableLayout> layout,
boolean createTableAsSelectWithData,
boolean createTableAsSelectNoOp)
{
Expand All @@ -1215,7 +1215,7 @@ public Optional<ConnectorTableMetadata> getMetadata()
return metadata;
}

public Optional<NewTableLayout> getLayout()
public Optional<TableLayout> getLayout()
{
return layout;
}
Expand All @@ -1237,9 +1237,9 @@ public static final class Insert
private final Table table;
private final TableHandle target;
private final List<ColumnHandle> columns;
private final Optional<NewTableLayout> newTableLayout;
private final Optional<TableLayout> newTableLayout;

public Insert(Table table, TableHandle target, List<ColumnHandle> columns, Optional<NewTableLayout> newTableLayout)
public Insert(Table table, TableHandle target, List<ColumnHandle> columns, Optional<TableLayout> newTableLayout)
{
this.table = requireNonNull(table, "table is null");
this.target = requireNonNull(target, "target is null");
Expand All @@ -1263,7 +1263,7 @@ public TableHandle getTarget()
return target;
}

public Optional<NewTableLayout> getNewTableLayout()
public Optional<TableLayout> getNewTableLayout()
{
return newTableLayout;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,14 @@
import io.trino.metadata.FunctionKind;
import io.trino.metadata.MaterializedViewDefinition;
import io.trino.metadata.Metadata;
import io.trino.metadata.NewTableLayout;
import io.trino.metadata.OperatorNotFoundException;
import io.trino.metadata.QualifiedObjectName;
import io.trino.metadata.RedirectionAwareTableHandle;
import io.trino.metadata.ResolvedFunction;
import io.trino.metadata.SessionPropertyManager;
import io.trino.metadata.TableExecuteHandle;
import io.trino.metadata.TableHandle;
import io.trino.metadata.TableLayout;
import io.trino.metadata.TableMetadata;
import io.trino.metadata.TableProceduresPropertyManager;
import io.trino.metadata.TableProceduresRegistry;
Expand Down Expand Up @@ -487,7 +487,7 @@ protected Scope visitInsert(Insert insert, Optional<Scope> scope)
.collect(toImmutableList());

// analyze target table layout, table columns should contain all partition columns
Optional<NewTableLayout> newTableLayout = metadata.getInsertLayout(session, targetTableHandle.get());
Optional<TableLayout> newTableLayout = metadata.getInsertLayout(session, targetTableHandle.get());
newTableLayout.ifPresent(layout -> {
if (!ImmutableSet.copyOf(tableColumns).containsAll(layout.getPartitionColumns())) {
throw new TrinoException(NOT_SUPPORTED, "INSERT must write all distribution columns: " + layout.getPartitionColumns());
Expand Down Expand Up @@ -851,14 +851,14 @@ protected Scope visitCreateTableAsSelect(CreateTableAsSelect node, Optional<Scop
ConnectorTableMetadata tableMetadata = new ConnectorTableMetadata(targetTable.asSchemaTableName(), columns.build(), properties, node.getComment());

// analyze target table layout
Optional<NewTableLayout> newTableLayout = metadata.getNewTableLayout(session, targetTable.getCatalogName(), tableMetadata);
Optional<TableLayout> newTableLayout = metadata.getNewTableLayout(session, targetTable.getCatalogName(), tableMetadata);

Set<String> columnNames = columns.build().stream()
.map(ColumnMetadata::getName)
.collect(toImmutableSet());

if (newTableLayout.isPresent()) {
NewTableLayout layout = newTableLayout.get();
TableLayout layout = newTableLayout.get();
if (!columnNames.containsAll(layout.getPartitionColumns())) {
if (layout.getLayout().getPartitioning().isPresent()) {
throw new TrinoException(NOT_SUPPORTED, "INSERT must write all distribution columns: " + layout.getPartitionColumns());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@
import io.trino.cost.StatsProvider;
import io.trino.execution.warnings.WarningCollector;
import io.trino.metadata.Metadata;
import io.trino.metadata.NewTableLayout;
import io.trino.metadata.QualifiedObjectName;
import io.trino.metadata.ResolvedFunction;
import io.trino.metadata.TableExecuteHandle;
import io.trino.metadata.TableHandle;
import io.trino.metadata.TableLayout;
import io.trino.metadata.TableMetadata;
import io.trino.spi.StandardErrorCode;
import io.trino.spi.TrinoException;
Expand Down Expand Up @@ -374,7 +374,7 @@ private RelationPlan createTableCreationPlan(Analysis analysis, Query query)

ConnectorTableMetadata tableMetadata = create.getMetadata().orElseThrow();

Optional<NewTableLayout> newTableLayout = create.getLayout();
Optional<TableLayout> newTableLayout = create.getLayout();

List<String> columnNames = tableMetadata.getColumns().stream()
.filter(column -> !column.isHidden()) // todo this filter is redundant
Expand All @@ -400,7 +400,7 @@ private RelationPlan getInsertPlan(
Query query,
TableHandle tableHandle,
List<ColumnHandle> insertColumns,
Optional<NewTableLayout> newTableLayout,
Optional<TableLayout> newTableLayout,
Optional<WriterTarget> materializedViewRefreshWriterTarget)
{
TableMetadata tableMetadata = metadata.getTableMetadata(session, tableHandle);
Expand Down Expand Up @@ -529,7 +529,7 @@ private RelationPlan createInsertPlan(Analysis analysis, Insert insertStatement)
Analysis.Insert insert = analysis.getInsert().orElseThrow();
TableHandle tableHandle = insert.getTarget();
Query query = insertStatement.getQuery();
Optional<NewTableLayout> newTableLayout = insert.getNewTableLayout();
Optional<TableLayout> newTableLayout = insert.getNewTableLayout();
return getInsertPlan(analysis, insert.getTable(), query, tableHandle, insert.getColumns(), newTableLayout, Optional.empty());
}

Expand All @@ -548,7 +548,7 @@ private RelationPlan createRefreshMaterializedViewPlan(Analysis analysis)
Analysis.RefreshMaterializedViewAnalysis viewAnalysis = analysis.getRefreshMaterializedView().get();
TableHandle tableHandle = viewAnalysis.getTarget();
Query query = viewAnalysis.getQuery();
Optional<NewTableLayout> newTableLayout = metadata.getInsertLayout(session, viewAnalysis.getTarget());
Optional<TableLayout> newTableLayout = metadata.getInsertLayout(session, viewAnalysis.getTarget());
TableWriterNode.RefreshMaterializedViewReference writerTarget = new TableWriterNode.RefreshMaterializedViewReference(
viewAnalysis.getTable(),
tableHandle,
Expand All @@ -563,7 +563,7 @@ private RelationPlan createTableWriterPlan(
WriterTarget target,
List<String> columnNames,
List<ColumnMetadata> columnMetadataList,
Optional<NewTableLayout> writeTableLayout,
Optional<TableLayout> writeTableLayout,
TableStatisticsMetadata statisticsMetadata)
{
Optional<PartitioningScheme> partitioningScheme = Optional.empty();
Expand Down Expand Up @@ -833,7 +833,7 @@ private RelationPlan createTableExecutePlan(Analysis analysis, TableExecute stat

TableWriterNode.TableExecuteTarget tableExecuteTarget = new TableWriterNode.TableExecuteTarget(executeHandle, Optional.empty(), tableName.asSchemaTableName());

Optional<NewTableLayout> layout = metadata.getLayoutForTableExecute(session, executeHandle);
Optional<TableLayout> layout = metadata.getLayoutForTableExecute(session, executeHandle);

List<Symbol> symbols = visibleFields(tableScanPlan);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import io.trino.metadata.InsertTableHandle;
import io.trino.metadata.NewTableLayout;
import io.trino.metadata.OutputTableHandle;
import io.trino.metadata.TableExecuteHandle;
import io.trino.metadata.TableHandle;
import io.trino.metadata.TableLayout;
import io.trino.spi.connector.ColumnHandle;
import io.trino.spi.connector.ConnectorTableMetadata;
import io.trino.spi.connector.SchemaTableName;
Expand Down Expand Up @@ -216,9 +216,9 @@ public static class CreateReference
{
private final String catalog;
private final ConnectorTableMetadata tableMetadata;
private final Optional<NewTableLayout> layout;
private final Optional<TableLayout> layout;

public CreateReference(String catalog, ConnectorTableMetadata tableMetadata, Optional<NewTableLayout> layout)
public CreateReference(String catalog, ConnectorTableMetadata tableMetadata, Optional<TableLayout> layout)
{
this.catalog = requireNonNull(catalog, "catalog is null");
this.tableMetadata = requireNonNull(tableMetadata, "tableMetadata is null");
Expand All @@ -235,7 +235,7 @@ public ConnectorTableMetadata getTableMetadata()
return tableMetadata;
}

public Optional<NewTableLayout> getLayout()
public Optional<TableLayout> getLayout()
{
return layout;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@
import io.trino.spi.connector.ConnectorInsertTableHandle;
import io.trino.spi.connector.ConnectorMaterializedViewDefinition;
import io.trino.spi.connector.ConnectorMetadata;
import io.trino.spi.connector.ConnectorNewTableLayout;
import io.trino.spi.connector.ConnectorOutputMetadata;
import io.trino.spi.connector.ConnectorOutputTableHandle;
import io.trino.spi.connector.ConnectorSession;
import io.trino.spi.connector.ConnectorTableHandle;
import io.trino.spi.connector.ConnectorTableLayout;
import io.trino.spi.connector.ConnectorTableMetadata;
import io.trino.spi.connector.ConnectorTableProperties;
import io.trino.spi.connector.ConnectorViewDefinition;
Expand Down Expand Up @@ -276,7 +276,7 @@ public void markMaterializedViewIsFresh(SchemaTableName name)
}

@Override
public ConnectorOutputTableHandle beginCreateTable(ConnectorSession session, ConnectorTableMetadata tableMetadata, Optional<ConnectorNewTableLayout> layout)
public ConnectorOutputTableHandle beginCreateTable(ConnectorSession session, ConnectorTableMetadata tableMetadata, Optional<ConnectorTableLayout> layout)
{
createTable(session, tableMetadata, false);
return TestingHandle.INSTANCE;
Expand Down
Loading