Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
679539e
Simplify PlanOptimizersProvider interface in LocalQueryRunner
dain Dec 4, 2021
19a4bff
Cleanup explain query testing infrastructure
dain Nov 27, 2021
eb92fb7
Simplify SetTimeZoneTask
dain Nov 27, 2021
6faf6ec
Remove unused getAnalyzerFactory methods
dain Nov 27, 2021
1cf6ec8
Simplify statement and expression analyzer creation
dain Nov 27, 2021
e122d9e
Remove ProcedureRegistry from Metadata
dain Nov 26, 2021
f9416dd
Remove TableProceduresRegistry from Metadata
dain Nov 27, 2021
04af2d5
Remove SessionPropertyManager from Metadata
dain Nov 27, 2021
28fc2c1
Remove SchemaPropertyManager from Metadata
dain Nov 27, 2021
fdfdbf4
Remove ColumnPropertyManager from Metadata
dain Nov 27, 2021
edb2ee0
Remove TablePropertyManager from Metadata
dain Nov 27, 2021
62980eb
Remove MaterializedViewPropertyManager from Metadata
dain Nov 27, 2021
f114401
Remove AnalyzePropertyManager from Metadata
dain Nov 27, 2021
f11097c
Remove TableProceduresPropertyManager from Metadata
dain Nov 27, 2021
fba1b54
Remove block encoding management from MetadataManager
dain Nov 28, 2021
b674fa3
Remove type registration from Metadata
dain Nov 28, 2021
a1d79a8
Move session to from a field to a parameter in LiteralEncoder
dain Dec 4, 2021
e9a986d
Add PlannerContext
dain Dec 5, 2021
1bbf601
Remove BlockEncodingSerde from metadata
dain Dec 6, 2021
0331244
Replace most uses of TypeRegistry with TypeManager
dain Dec 6, 2021
0fa7650
Replace Metadata type methods with TypeManager
dain Dec 6, 2021
17fa973
Remove createExpressionAnalyzer from StatementAnalyzerFactory
dain Dec 18, 2021
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
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,21 @@
import io.trino.eventlistener.EventListenerManager;
import io.trino.execution.scheduler.NodeSchedulerConfig;
import io.trino.index.IndexManager;
import io.trino.metadata.AnalyzePropertyManager;
import io.trino.metadata.Catalog;
import io.trino.metadata.Catalog.SecurityManagement;
import io.trino.metadata.CatalogManager;
import io.trino.metadata.ColumnPropertyManager;
import io.trino.metadata.HandleResolver;
import io.trino.metadata.InternalNodeManager;
import io.trino.metadata.MaterializedViewPropertyManager;
import io.trino.metadata.MetadataManager;
import io.trino.metadata.ProcedureRegistry;
import io.trino.metadata.SchemaPropertyManager;
import io.trino.metadata.SessionPropertyManager;
import io.trino.metadata.TableProceduresPropertyManager;
import io.trino.metadata.TableProceduresRegistry;
import io.trino.metadata.TablePropertyManager;
import io.trino.security.AccessControlManager;
import io.trino.spi.PageIndexerFactory;
import io.trino.spi.PageSorter;
Expand All @@ -52,14 +61,13 @@
import io.trino.spi.eventlistener.EventListener;
import io.trino.spi.procedure.Procedure;
import io.trino.spi.session.PropertyMetadata;
import io.trino.spi.type.TypeOperators;
import io.trino.spi.type.TypeManager;
import io.trino.split.PageSinkManager;
import io.trino.split.PageSourceManager;
import io.trino.split.RecordPageSourceProvider;
import io.trino.split.SplitManager;
import io.trino.sql.planner.NodePartitioningManager;
import io.trino.transaction.TransactionManager;
import io.trino.type.InternalTypeManager;

import javax.annotation.PreDestroy;
import javax.annotation.concurrent.GuardedBy;
Expand Down Expand Up @@ -107,7 +115,16 @@ public class ConnectorManager
private final VersionEmbedder versionEmbedder;
private final TransactionManager transactionManager;
private final EventListenerManager eventListenerManager;
private final TypeOperators typeOperators;
private final TypeManager typeManager;
private final ProcedureRegistry procedureRegistry;
private final TableProceduresRegistry tableProceduresRegistry;
private final SessionPropertyManager sessionPropertyManager;
private final SchemaPropertyManager schemaPropertyManager;
private final ColumnPropertyManager columnPropertyManager;
private final TablePropertyManager tablePropertyManager;
private final MaterializedViewPropertyManager materializedViewPropertyManager;
private final AnalyzePropertyManager analyzePropertyManager;
private final TableProceduresPropertyManager tableProceduresPropertyManager;

private final boolean schedulerIncludeCoordinator;

Expand Down Expand Up @@ -137,7 +154,16 @@ public ConnectorManager(
PageIndexerFactory pageIndexerFactory,
TransactionManager transactionManager,
EventListenerManager eventListenerManager,
TypeOperators typeOperators,
TypeManager typeManager,
ProcedureRegistry procedureRegistry,
TableProceduresRegistry tableProceduresRegistry,
SessionPropertyManager sessionPropertyManager,
SchemaPropertyManager schemaPropertyManager,
ColumnPropertyManager columnPropertyManager,
TablePropertyManager tablePropertyManager,
MaterializedViewPropertyManager materializedViewPropertyManager,
AnalyzePropertyManager analyzePropertyManager,
TableProceduresPropertyManager tableProceduresPropertyManager,
NodeSchedulerConfig nodeSchedulerConfig)
{
this.metadataManager = metadataManager;
Expand All @@ -156,7 +182,16 @@ public ConnectorManager(
this.versionEmbedder = versionEmbedder;
this.transactionManager = transactionManager;
this.eventListenerManager = eventListenerManager;
this.typeOperators = typeOperators;
this.typeManager = typeManager;
this.procedureRegistry = procedureRegistry;
this.tableProceduresRegistry = tableProceduresRegistry;
this.sessionPropertyManager = sessionPropertyManager;
this.schemaPropertyManager = schemaPropertyManager;
this.columnPropertyManager = columnPropertyManager;
this.tablePropertyManager = tablePropertyManager;
this.materializedViewPropertyManager = materializedViewPropertyManager;
this.analyzePropertyManager = analyzePropertyManager;
this.tableProceduresPropertyManager = tableProceduresPropertyManager;
this.schedulerIncludeCoordinator = nodeSchedulerConfig.isIncludeCoordinator();
}

Expand Down Expand Up @@ -300,22 +335,22 @@ private synchronized void addConnectorInternal(MaterializedConnector connector)
connector.getPartitioningProvider()
.ifPresent(partitioningProvider -> nodePartitioningManager.addPartitioningProvider(catalogName, partitioningProvider));

metadataManager.getProcedureRegistry().addProcedures(catalogName, connector.getProcedures());
procedureRegistry.addProcedures(catalogName, connector.getProcedures());
Set<TableProcedureMetadata> tableProcedures = connector.getTableProcedures();
metadataManager.getTableProcedureRegistry().addTableProcedures(catalogName, tableProcedures);
tableProceduresRegistry.addTableProcedures(catalogName, tableProcedures);

connector.getAccessControl()
.ifPresent(accessControl -> accessControlManager.addCatalogAccessControl(catalogName, accessControl));

metadataManager.getTablePropertyManager().addProperties(catalogName, connector.getTableProperties());
metadataManager.getMaterializedViewPropertyManager().addProperties(catalogName, connector.getMaterializedViewProperties());
metadataManager.getColumnPropertyManager().addProperties(catalogName, connector.getColumnProperties());
metadataManager.getSchemaPropertyManager().addProperties(catalogName, connector.getSchemaProperties());
metadataManager.getAnalyzePropertyManager().addProperties(catalogName, connector.getAnalyzeProperties());
tablePropertyManager.addProperties(catalogName, connector.getTableProperties());
materializedViewPropertyManager.addProperties(catalogName, connector.getMaterializedViewProperties());
columnPropertyManager.addProperties(catalogName, connector.getColumnProperties());
schemaPropertyManager.addProperties(catalogName, connector.getSchemaProperties());
analyzePropertyManager.addProperties(catalogName, connector.getAnalyzeProperties());
for (TableProcedureMetadata tableProcedure : tableProcedures) {
metadataManager.getTableProceduresPropertyManager().addProperties(catalogName, tableProcedure.getName(), tableProcedure.getProperties());
tableProceduresPropertyManager.addProperties(catalogName, tableProcedure.getName(), tableProcedure.getProperties());
}
metadataManager.getSessionPropertyManager().addConnectorSessionProperties(catalogName, connector.getSessionProperties());
sessionPropertyManager.addConnectorSessionProperties(catalogName, connector.getSessionProperties());
}

public synchronized void dropConnection(String catalogName)
Expand All @@ -338,16 +373,16 @@ private synchronized void removeConnectorInternal(CatalogName catalogName)
pageSinkManager.removeConnectorPageSinkProvider(catalogName);
indexManager.removeIndexProvider(catalogName);
nodePartitioningManager.removePartitioningProvider(catalogName);
metadataManager.getProcedureRegistry().removeProcedures(catalogName);
metadataManager.getTableProcedureRegistry().removeProcedures(catalogName);
procedureRegistry.removeProcedures(catalogName);
tableProceduresRegistry.removeProcedures(catalogName);
accessControlManager.removeCatalogAccessControl(catalogName);
metadataManager.getTablePropertyManager().removeProperties(catalogName);
metadataManager.getMaterializedViewPropertyManager().removeProperties(catalogName);
metadataManager.getColumnPropertyManager().removeProperties(catalogName);
metadataManager.getSchemaPropertyManager().removeProperties(catalogName);
metadataManager.getAnalyzePropertyManager().removeProperties(catalogName);
metadataManager.getTableProceduresPropertyManager().removeProperties(catalogName);
metadataManager.getSessionPropertyManager().removeConnectorSessionProperties(catalogName);
tablePropertyManager.removeProperties(catalogName);
materializedViewPropertyManager.removeProperties(catalogName);
columnPropertyManager.removeProperties(catalogName);
schemaPropertyManager.removeProperties(catalogName);
analyzePropertyManager.removeProperties(catalogName);
tableProceduresPropertyManager.removeProperties(catalogName);
sessionPropertyManager.removeConnectorSessionProperties(catalogName);

MaterializedConnector materializedConnector = connectors.remove(catalogName);
if (materializedConnector != null) {
Expand All @@ -366,8 +401,8 @@ private Connector createConnector(CatalogName catalogName, InternalConnectorFact
ConnectorContext context = new ConnectorContextInstance(
new ConnectorAwareNodeManager(nodeManager, nodeInfo.getEnvironment(), catalogName, schedulerIncludeCoordinator),
versionEmbedder,
new InternalTypeManager(metadataManager, typeOperators),
new InternalMetadataProvider(metadataManager),
typeManager,
new InternalMetadataProvider(metadataManager, typeManager),
pageSorter,
pageIndexerFactory,
factory.getDuplicatePluginClassLoaderFactory());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import io.trino.spi.connector.ConnectorSession;
import io.trino.spi.connector.ConnectorTableSchema;
import io.trino.spi.connector.MetadataProvider;
import io.trino.spi.type.TypeManager;

import java.util.List;
import java.util.Optional;
Expand All @@ -37,10 +38,12 @@ public class InternalMetadataProvider
implements MetadataProvider
{
private final MetadataManager metadataManager;
private final TypeManager typeManager;

public InternalMetadataProvider(MetadataManager metadataManager)
public InternalMetadataProvider(MetadataManager metadataManager, TypeManager typeManager)
{
this.metadataManager = requireNonNull(metadataManager, "metadataManager is null");
this.typeManager = requireNonNull(typeManager, "typeManager is null");
}

@Override
Expand Down Expand Up @@ -73,7 +76,7 @@ private List<ColumnSchema> toColumnSchema(List<ViewColumn> viewColumns)
.map(viewColumn ->
ColumnSchema.builder()
.setName(viewColumn.getName())
.setType(metadataManager.getType(viewColumn.getType()))
.setType(typeManager.getType(viewColumn.getType()))
.build())
.collect(toImmutableList());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*/
package io.trino.connector.system;

import io.trino.metadata.Metadata;
import io.trino.metadata.AnalyzePropertyManager;
import io.trino.transaction.TransactionManager;

import javax.inject.Inject;
Expand All @@ -22,8 +22,8 @@ public class AnalyzePropertiesSystemTable
extends AbstractPropertiesSystemTable
{
@Inject
public AnalyzePropertiesSystemTable(TransactionManager transactionManager, Metadata metadata)
public AnalyzePropertiesSystemTable(TransactionManager transactionManager, AnalyzePropertyManager analyzePropertyManager)
{
super("analyze_properties", transactionManager, () -> metadata.getAnalyzePropertyManager().getAllProperties());
super("analyze_properties", transactionManager, analyzePropertyManager::getAllProperties);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*/
package io.trino.connector.system;

import io.trino.metadata.Metadata;
import io.trino.metadata.ColumnPropertyManager;
import io.trino.transaction.TransactionManager;

import javax.inject.Inject;
Expand All @@ -22,8 +22,8 @@ public class ColumnPropertiesSystemTable
extends AbstractPropertiesSystemTable
{
@Inject
public ColumnPropertiesSystemTable(TransactionManager transactionManager, Metadata metadata)
public ColumnPropertiesSystemTable(TransactionManager transactionManager, ColumnPropertyManager columnPropertyManager)
{
super("column_properties", transactionManager, () -> metadata.getColumnPropertyManager().getAllProperties());
super("column_properties", transactionManager, columnPropertyManager::getAllProperties);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*/
package io.trino.connector.system;

import io.trino.metadata.Metadata;
import io.trino.metadata.MaterializedViewPropertyManager;
import io.trino.transaction.TransactionManager;

import javax.inject.Inject;
Expand All @@ -22,8 +22,8 @@ public class MaterializedViewPropertiesSystemTable
extends AbstractPropertiesSystemTable
{
@Inject
public MaterializedViewPropertiesSystemTable(TransactionManager transactionManager, Metadata metadata)
public MaterializedViewPropertiesSystemTable(TransactionManager transactionManager, MaterializedViewPropertyManager materializedViewPropertyManager)
{
super("materialized_view_properties", transactionManager, () -> metadata.getMaterializedViewPropertyManager().getAllProperties());
super("materialized_view_properties", transactionManager, materializedViewPropertyManager::getAllProperties);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
package io.trino.connector.system;

import com.google.common.collect.ImmutableList;
import io.trino.metadata.Metadata;
import io.trino.spi.Page;
import io.trino.spi.block.Block;
import io.trino.spi.block.BlockBuilder;
Expand All @@ -27,6 +26,7 @@
import io.trino.spi.connector.SchemaTableName;
import io.trino.spi.connector.SystemTable;
import io.trino.spi.predicate.TupleDomain;
import io.trino.spi.type.TypeManager;
import io.trino.sql.planner.RuleStatsRecorder;
import io.trino.sql.planner.iterative.RuleStats;

Expand All @@ -53,18 +53,18 @@ public class RuleStatsSystemTable
private final Optional<RuleStatsRecorder> ruleStatsRecorder;

@Inject
public RuleStatsSystemTable(Optional<RuleStatsRecorder> ruleStatsRecorder, Metadata metadata)
public RuleStatsSystemTable(Optional<RuleStatsRecorder> ruleStatsRecorder, TypeManager typeManager)
{
this.ruleStatsRecorder = requireNonNull(ruleStatsRecorder, "ruleStatsRecorder is null");
requireNonNull(metadata, "metadata is null");
requireNonNull(typeManager, "typeManager is null");

this.ruleStatsTable = tableMetadataBuilder(TABLE_NAME)
.column("rule_name", VARCHAR)
.column("invocations", BIGINT)
.column("matches", BIGINT)
.column("failures", BIGINT)
.column("average_time", DOUBLE)
.column("time_distribution_percentiles", metadata.getType(mapType(DOUBLE.getTypeSignature(), DOUBLE.getTypeSignature())))
.column("time_distribution_percentiles", typeManager.getType(mapType(DOUBLE.getTypeSignature(), DOUBLE.getTypeSignature())))
.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*/
package io.trino.connector.system;

import io.trino.metadata.Metadata;
import io.trino.metadata.SchemaPropertyManager;
import io.trino.transaction.TransactionManager;

import javax.inject.Inject;
Expand All @@ -22,8 +22,8 @@ public class SchemaPropertiesSystemTable
extends AbstractPropertiesSystemTable
{
@Inject
public SchemaPropertiesSystemTable(TransactionManager transactionManager, Metadata metadata)
public SchemaPropertiesSystemTable(TransactionManager transactionManager, SchemaPropertyManager schemaPropertyManager)
{
super("schema_properties", transactionManager, () -> metadata.getSchemaPropertyManager().getAllProperties());
super("schema_properties", transactionManager, schemaPropertyManager::getAllProperties);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*/
package io.trino.connector.system;

import io.trino.metadata.Metadata;
import io.trino.metadata.TablePropertyManager;
import io.trino.transaction.TransactionManager;

import javax.inject.Inject;
Expand All @@ -22,8 +22,8 @@ public class TablePropertiesSystemTable
extends AbstractPropertiesSystemTable
{
@Inject
public TablePropertiesSystemTable(TransactionManager transactionManager, Metadata metadata)
public TablePropertiesSystemTable(TransactionManager transactionManager, TablePropertyManager tablePropertyManager)
{
super("table_properties", transactionManager, () -> metadata.getTablePropertyManager().getAllProperties());
super("table_properties", transactionManager, tablePropertyManager::getAllProperties);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@

import com.google.common.collect.ImmutableList;
import io.trino.connector.CatalogName;
import io.trino.metadata.Metadata;
import io.trino.spi.block.Block;
import io.trino.spi.block.BlockBuilder;
import io.trino.spi.connector.ConnectorSession;
Expand All @@ -27,6 +26,7 @@
import io.trino.spi.connector.SchemaTableName;
import io.trino.spi.connector.SystemTable;
import io.trino.spi.predicate.TupleDomain;
import io.trino.spi.type.TypeManager;
import io.trino.spi.type.TypeSignatureParameter;
import io.trino.spi.type.VarcharType;
import io.trino.transaction.TransactionInfo;
Expand Down Expand Up @@ -58,7 +58,7 @@ public class TransactionsSystemTable
private final TransactionManager transactionManager;

@Inject
public TransactionsSystemTable(Metadata metadata, TransactionManager transactionManager)
public TransactionsSystemTable(TypeManager typeManager, TransactionManager transactionManager)
{
this.transactionsTable = tableMetadataBuilder(TRANSACTIONS_TABLE_NAME)
.column("transaction_id", createUnboundedVarcharType())
Expand All @@ -68,7 +68,7 @@ public TransactionsSystemTable(Metadata metadata, TransactionManager transaction
.column("create_time", TIMESTAMP_TZ_MILLIS)
.column("idle_time_secs", BIGINT)
.column("written_catalog", createUnboundedVarcharType())
.column("catalogs", metadata.getParameterizedType(ARRAY, ImmutableList.of(TypeSignatureParameter.typeParameter(createUnboundedVarcharType().getTypeSignature()))))
.column("catalogs", typeManager.getParameterizedType(ARRAY, ImmutableList.of(TypeSignatureParameter.typeParameter(createUnboundedVarcharType().getTypeSignature()))))
.build();
this.transactionManager = requireNonNull(transactionManager, "transactionManager is null");
}
Expand Down
Loading