private RelationPlan createTableCreationPlan(Analysis analysis, Query query)
{
QualifiedObjectName destination = analysis.getCreateTableDestination().get();
RelationPlan plan = createRelationPlan(analysis, query);
ConnectorTableMetadata tableMetadata = createTableMetadata(
destination,
getOutputTableColumns(plan, analysis.getColumnAliases()),
analysis.getCreateTableProperties(),
analysis.getParameters(),
analysis.getCreateTableComment());
Optional<NewTableLayout> newTableLayout = metadata.getNewTableLayout(session, destination.getCatalogName(), tableMetadata);
List<String> columnNames = tableMetadata.getColumns().stream()
.filter(column -> !column.isHidden())
.map(ColumnMetadata::getName)
.collect(toImmutableList());
TableStatisticsMetadata statisticsMetadata = metadata.getStatisticsCollectionMetadata(session, destination.getCatalogName(), tableMetadata);
return createTableWriterPlan(
analysis,
plan,
new CreateName(destination.getCatalogName(), tableMetadata, newTableLayout),
columnNames,
newTableLayout,
statisticsMetadata);
}