Skip to content

Commit b3548cd

Browse files
committed
Add replace flag to getStatisticsCollectionMetadataForWrite
1 parent 4da16d9 commit b3548cd

File tree

9 files changed

+38
-8
lines changed

9 files changed

+38
-8
lines changed

core/trino-main/src/main/java/io/trino/metadata/Metadata.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ Optional<TableExecuteHandle> getTableHandleForExecute(
353353
/**
354354
* Describes statistics that must be collected during a write.
355355
*/
356-
TableStatisticsMetadata getStatisticsCollectionMetadataForWrite(Session session, CatalogHandle catalogHandle, ConnectorTableMetadata tableMetadata);
356+
TableStatisticsMetadata getStatisticsCollectionMetadataForWrite(Session session, CatalogHandle catalogHandle, ConnectorTableMetadata tableMetadata, boolean replace);
357357

358358
/**
359359
* Describe statistics that must be collected during a statistics collection

core/trino-main/src/main/java/io/trino/metadata/MetadataManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1067,11 +1067,11 @@ public Optional<TableLayout> getInsertLayout(Session session, TableHandle table)
10671067
}
10681068

10691069
@Override
1070-
public TableStatisticsMetadata getStatisticsCollectionMetadataForWrite(Session session, CatalogHandle catalogHandle, ConnectorTableMetadata tableMetadata)
1070+
public TableStatisticsMetadata getStatisticsCollectionMetadataForWrite(Session session, CatalogHandle catalogHandle, ConnectorTableMetadata tableMetadata, boolean replace)
10711071
{
10721072
CatalogMetadata catalogMetadata = getCatalogMetadataForWrite(session, catalogHandle);
10731073
ConnectorMetadata metadata = catalogMetadata.getMetadata(session);
1074-
return metadata.getStatisticsCollectionMetadataForWrite(session.toConnectorSession(catalogHandle), tableMetadata);
1074+
return metadata.getStatisticsCollectionMetadataForWrite(session.toConnectorSession(catalogHandle), tableMetadata, replace);
10751075
}
10761076

10771077
@Override

core/trino-main/src/main/java/io/trino/sql/planner/LogicalPlanner.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ private RelationPlan createTableCreationPlan(Analysis analysis, Query query)
489489
.map(ColumnMetadata::getName)
490490
.collect(toImmutableList());
491491

492-
TableStatisticsMetadata statisticsMetadata = metadata.getStatisticsCollectionMetadataForWrite(session, catalogHandle, tableMetadata);
492+
TableStatisticsMetadata statisticsMetadata = metadata.getStatisticsCollectionMetadataForWrite(session, catalogHandle, tableMetadata, create.isReplace());
493493

494494
return createTableWriterPlan(
495495
analysis,
@@ -600,7 +600,7 @@ private RelationPlan getInsertPlan(
600600
.map(ColumnMetadata::getName)
601601
.collect(toImmutableList());
602602

603-
TableStatisticsMetadata statisticsMetadata = metadata.getStatisticsCollectionMetadataForWrite(session, tableHandle.catalogHandle(), tableMetadata.metadata());
603+
TableStatisticsMetadata statisticsMetadata = metadata.getStatisticsCollectionMetadataForWrite(session, tableHandle.catalogHandle(), tableMetadata.metadata(), false);
604604

605605
if (materializedViewRefreshWriterTarget.isPresent()) {
606606
RefreshType refreshType = IncrementalRefreshVisitor.canIncrementallyRefresh(plan.getRoot());

core/trino-main/src/main/java/io/trino/tracing/TracingConnectorMetadata.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,15 @@ public Optional<ConnectorTableLayout> getInsertLayout(ConnectorSession session,
578578
}
579579
}
580580

581+
@Override
582+
public TableStatisticsMetadata getStatisticsCollectionMetadataForWrite(ConnectorSession session, ConnectorTableMetadata tableMetadata, boolean replace)
583+
{
584+
Span span = startSpan("getStatisticsCollectionMetadataForWrite", tableMetadata.getTable());
585+
try (var _ = scopedSpan(span)) {
586+
return delegate.getStatisticsCollectionMetadataForWrite(session, tableMetadata, replace);
587+
}
588+
}
589+
581590
@Override
582591
public TableStatisticsMetadata getStatisticsCollectionMetadataForWrite(ConnectorSession session, ConnectorTableMetadata tableMetadata)
583592
{

core/trino-main/src/main/java/io/trino/tracing/TracingMetadata.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -630,11 +630,11 @@ public Optional<TableLayout> getInsertLayout(Session session, TableHandle target
630630
}
631631

632632
@Override
633-
public TableStatisticsMetadata getStatisticsCollectionMetadataForWrite(Session session, CatalogHandle catalogHandle, ConnectorTableMetadata tableMetadata)
633+
public TableStatisticsMetadata getStatisticsCollectionMetadataForWrite(Session session, CatalogHandle catalogHandle, ConnectorTableMetadata tableMetadata, boolean replace)
634634
{
635635
Span span = startSpan("getStatisticsCollectionMetadataForWrite", catalogHandle.getCatalogName().toString(), tableMetadata);
636636
try (var _ = scopedSpan(span)) {
637-
return delegate.getStatisticsCollectionMetadataForWrite(session, catalogHandle, tableMetadata);
637+
return delegate.getStatisticsCollectionMetadataForWrite(session, catalogHandle, tableMetadata, replace);
638638
}
639639
}
640640

core/trino-main/src/test/java/io/trino/metadata/AbstractMockMetadata.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ public Optional<TableLayout> getInsertLayout(Session session, TableHandle target
436436
}
437437

438438
@Override
439-
public TableStatisticsMetadata getStatisticsCollectionMetadataForWrite(Session session, CatalogHandle catalogHandle, ConnectorTableMetadata tableMetadata)
439+
public TableStatisticsMetadata getStatisticsCollectionMetadataForWrite(Session session, CatalogHandle catalogHandle, ConnectorTableMetadata tableMetadata, boolean replace)
440440
{
441441
throw new UnsupportedOperationException();
442442
}

core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorMetadata.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,17 @@ default Optional<ConnectorTableLayout> getInsertLayout(ConnectorSession session,
685685
/**
686686
* Describes statistics that must be collected during a write.
687687
*/
688+
default TableStatisticsMetadata getStatisticsCollectionMetadataForWrite(ConnectorSession session, ConnectorTableMetadata tableMetadata, boolean replace)
689+
{
690+
return getStatisticsCollectionMetadataForWrite(session, tableMetadata);
691+
}
692+
693+
/**
694+
* Describes statistics that must be collected during a write.
695+
*
696+
* @deprecated use {@link #getStatisticsCollectionMetadataForWrite(ConnectorSession, ConnectorTableMetadata, boolean)}
697+
*/
698+
@Deprecated
688699
default TableStatisticsMetadata getStatisticsCollectionMetadataForWrite(ConnectorSession session, ConnectorTableMetadata tableMetadata)
689700
{
690701
return TableStatisticsMetadata.empty();

lib/trino-plugin-toolkit/src/main/java/io/trino/plugin/base/classloader/ClassLoaderSafeConnectorMetadata.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,14 @@ public Optional<ConnectorTableLayout> getInsertLayout(ConnectorSession session,
154154
}
155155
}
156156

157+
@Override
158+
public TableStatisticsMetadata getStatisticsCollectionMetadataForWrite(ConnectorSession session, ConnectorTableMetadata tableMetadata, boolean replace)
159+
{
160+
try (ThreadContextClassLoader _ = new ThreadContextClassLoader(classLoader)) {
161+
return delegate.getStatisticsCollectionMetadataForWrite(session, tableMetadata, replace);
162+
}
163+
}
164+
157165
@Override
158166
public TableStatisticsMetadata getStatisticsCollectionMetadataForWrite(ConnectorSession session, ConnectorTableMetadata tableMetadata)
159167
{

plugin/trino-lakehouse/src/test/java/io/trino/plugin/lakehouse/TestLakehouseMetadata.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import io.trino.spi.connector.ConnectorMetadata;
1818
import io.trino.spi.connector.ConnectorSession;
1919
import io.trino.spi.connector.ConnectorTableHandle;
20+
import io.trino.spi.connector.ConnectorTableMetadata;
2021
import io.trino.spi.connector.JoinStatistics;
2122
import io.trino.spi.connector.JoinType;
2223
import io.trino.spi.connector.SaveMode;
@@ -48,6 +49,7 @@ public class TestLakehouseMetadata
4849
.add(ConnectorMetadata.class.getMethod("supportsMissingColumnsOnInsert"))
4950
.add(ConnectorMetadata.class.getMethod("refreshMaterializedView", ConnectorSession.class, SchemaTableName.class))
5051
.add(ConnectorMetadata.class.getMethod("resolveIndex", ConnectorSession.class, ConnectorTableHandle.class, Set.class, Set.class, TupleDomain.class))
52+
.add(ConnectorMetadata.class.getMethod("getStatisticsCollectionMetadataForWrite", ConnectorSession.class, ConnectorTableMetadata.class))
5153
.add(ConnectorMetadata.class.getMethod("listFunctions", ConnectorSession.class, String.class))
5254
.add(ConnectorMetadata.class.getMethod("getFunctions", ConnectorSession.class, SchemaFunctionName.class))
5355
.add(ConnectorMetadata.class.getMethod("getFunctionMetadata", ConnectorSession.class, FunctionId.class))

0 commit comments

Comments
 (0)