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
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@
import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewrite;
import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewriteFactory;
import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager;
import org.apache.iotdb.db.queryengine.plan.relational.type.TypeManager;
import org.apache.iotdb.db.queryengine.plan.statement.IConfigStatement;
import org.apache.iotdb.db.queryengine.plan.statement.Statement;
import org.apache.iotdb.db.utils.SetThreadName;
Expand Down Expand Up @@ -189,9 +190,11 @@ public class Coordinator {
private final List<PlanOptimizer> logicalPlanOptimizers;
private final List<PlanOptimizer> distributionPlanOptimizers;
private final DataNodeLocationSupplierFactory.DataNodeLocationSupplier dataNodeLocationSupplier;
private final TypeManager typeManager;

private Coordinator() {
this.queryExecutionMap = new ConcurrentHashMap<>();
this.typeManager = new InternalTypeManager();
this.executor = getQueryExecutor();
this.writeOperationExecutor = getWriteExecutor();
this.scheduledExecutor = getScheduledExecutor();
Expand All @@ -205,13 +208,11 @@ private Coordinator() {
this.statementRewrite = new StatementRewriteFactory().getStatementRewrite();
this.logicalPlanOptimizers =
new LogicalOptimizeFactory(
new PlannerContext(
LocalExecutionPlanner.getInstance().metadata, new InternalTypeManager()))
new PlannerContext(LocalExecutionPlanner.getInstance().metadata, typeManager))
.getPlanOptimizers();
this.distributionPlanOptimizers =
new DistributedOptimizeFactory(
new PlannerContext(
LocalExecutionPlanner.getInstance().metadata, new InternalTypeManager()))
new PlannerContext(LocalExecutionPlanner.getInstance().metadata, typeManager))
.getPlanOptimizers();
this.dataNodeLocationSupplier = DataNodeLocationSupplierFactory.getSupplier();
}
Expand Down Expand Up @@ -399,7 +400,8 @@ private IQueryExecution createQueryExecutionForTableModel(
logicalPlanOptimizers,
distributionPlanOptimizers,
AuthorityChecker.getAccessControl(),
dataNodeLocationSupplier);
dataNodeLocationSupplier,
typeManager);
return new QueryExecution(tableModelPlanner, queryContext, executor);
}

Expand Down Expand Up @@ -480,7 +482,7 @@ private IQueryExecution createQueryExecutionForTableModel(
executor,
statement.accept(
new TableConfigTaskVisitor(
clientSession, metadata, AuthorityChecker.getAccessControl()),
clientSession, metadata, AuthorityChecker.getAccessControl(), typeManager),
queryContext));
}
if (statement instanceof WrappedInsertStatement) {
Expand All @@ -498,7 +500,8 @@ private IQueryExecution createQueryExecutionForTableModel(
logicalPlanOptimizers,
distributionPlanOptimizers,
AuthorityChecker.getAccessControl(),
dataNodeLocationSupplier);
dataNodeLocationSupplier,
typeManager);
return new QueryExecution(tableModelPlanner, queryContext, executor);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.ViewFieldDefinition;
import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewrite;
import org.apache.iotdb.db.queryengine.plan.relational.type.AuthorRType;
import org.apache.iotdb.db.queryengine.plan.relational.type.TypeManager;
import org.apache.iotdb.db.queryengine.plan.relational.type.TypeNotFoundException;
import org.apache.iotdb.db.queryengine.plan.statement.metadata.DatabaseSchemaStatement;
import org.apache.iotdb.db.queryengine.plan.statement.metadata.RemoveAINodeStatement;
Expand Down Expand Up @@ -281,13 +282,17 @@ public class TableConfigTaskVisitor extends AstVisitor<IConfigTask, MPPQueryCont

private final AccessControl accessControl;

private final TypeManager typeManager;

public TableConfigTaskVisitor(
final IClientSession clientSession,
final Metadata metadata,
final AccessControl accessControl) {
final AccessControl accessControl,
final TypeManager typeManager) {
this.clientSession = clientSession;
this.metadata = metadata;
this.accessControl = accessControl;
this.typeManager = typeManager;
}

@Override
Expand Down Expand Up @@ -868,7 +873,7 @@ protected IConfigTask visitDeleteDevice(final DeleteDevice node, final MPPQueryC
new Analyzer(
context,
context.getSession(),
new StatementAnalyzerFactory(metadata, null, accessControl),
new StatementAnalyzerFactory(metadata, null, accessControl, typeManager),
Collections.emptyList(),
Collections.emptyMap(),
StatementRewrite.NOOP,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,6 @@
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WithQuery;
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WrappedInsertStatement;
import org.apache.iotdb.db.queryengine.plan.relational.type.CompatibleResolver;
import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager;
import org.apache.iotdb.db.queryengine.plan.relational.type.TypeManager;
import org.apache.iotdb.db.queryengine.plan.statement.component.FillPolicy;
import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertBaseStatement;
Expand Down Expand Up @@ -306,12 +305,12 @@ public class StatementAnalyzer {

private final SessionInfo sessionContext;

private final TypeManager typeManager = new InternalTypeManager();

private final Metadata metadata;

private final CorrelationSupport correlationSupport;

private final TypeManager typeManager;

public StatementAnalyzer(
StatementAnalyzerFactory statementAnalyzerFactory,
Analysis analysis,
Expand All @@ -320,7 +319,8 @@ public StatementAnalyzer(
WarningCollector warningCollector,
SessionInfo sessionContext,
Metadata metadata,
CorrelationSupport correlationSupport) {
CorrelationSupport correlationSupport,
TypeManager typeManager) {
this.statementAnalyzerFactory = statementAnalyzerFactory;
this.analysis = analysis;
this.queryContext = queryContext;
Expand All @@ -329,6 +329,7 @@ public StatementAnalyzer(
this.sessionContext = sessionContext;
this.metadata = metadata;
this.correlationSupport = correlationSupport;
this.typeManager = typeManager;
}

public Scope analyze(Node node) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl;
import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser;
import org.apache.iotdb.db.queryengine.plan.relational.type.TypeManager;

import static java.util.Objects.requireNonNull;

Expand All @@ -33,16 +34,21 @@ public class StatementAnalyzerFactory {
private final Metadata metadata;
private final SqlParser sqlParser;
private final AccessControl accessControl;
private final TypeManager typeManager;

public StatementAnalyzerFactory(
final Metadata metadata, final SqlParser sqlParser, final AccessControl accessControl) {
final Metadata metadata,
final SqlParser sqlParser,
final AccessControl accessControl,
final TypeManager typeManager) {
this.metadata = requireNonNull(metadata, "plannerContext is null");
this.sqlParser = sqlParser;
this.accessControl = requireNonNull(accessControl, "accessControl is null");
this.typeManager = requireNonNull(typeManager, "typeManager is null");
}

public StatementAnalyzerFactory withSpecializedAccessControl(AccessControl accessControl) {
return new StatementAnalyzerFactory(metadata, sqlParser, accessControl);
return new StatementAnalyzerFactory(metadata, sqlParser, accessControl, typeManager);
}

public StatementAnalyzer createStatementAnalyzer(
Expand All @@ -59,12 +65,13 @@ public StatementAnalyzer createStatementAnalyzer(
warningCollector,
session,
metadata,
correlationSupport);
correlationSupport,
typeManager);
}

public static StatementAnalyzerFactory createTestingStatementAnalyzerFactory(
Metadata metadata, AccessControl accessControl) {
return new StatementAnalyzerFactory(metadata, new SqlParser(), accessControl);
Metadata metadata, AccessControl accessControl, TypeManager typeManager) {
return new StatementAnalyzerFactory(metadata, new SqlParser(), accessControl, typeManager);
}

public AccessControl getAccessControl() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.WrappedInsertStatement;
import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser;
import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewrite;
import org.apache.iotdb.db.queryengine.plan.relational.type.TypeManager;
import org.apache.iotdb.db.queryengine.plan.scheduler.ClusterScheduler;
import org.apache.iotdb.db.queryengine.plan.scheduler.IScheduler;
import org.apache.iotdb.db.queryengine.plan.scheduler.load.LoadTsFileScheduler;
Expand Down Expand Up @@ -87,6 +88,8 @@ public class TableModelPlanner implements IPlanner {

private final DataNodeLocationSupplierFactory.DataNodeLocationSupplier dataNodeLocationSupplier;

private final TypeManager typeManager;

public TableModelPlanner(
final Statement statement,
final SqlParser sqlParser,
Expand All @@ -100,7 +103,8 @@ public TableModelPlanner(
final List<PlanOptimizer> logicalPlanOptimizers,
final List<PlanOptimizer> distributionPlanOptimizers,
final AccessControl accessControl,
final DataNodeLocationSupplierFactory.DataNodeLocationSupplier dataNodeLocationSupplier) {
final DataNodeLocationSupplierFactory.DataNodeLocationSupplier dataNodeLocationSupplier,
final TypeManager typeManager) {
this.statement = statement;
this.sqlParser = sqlParser;
this.metadata = metadata;
Expand All @@ -112,14 +116,15 @@ public TableModelPlanner(
this.distributionPlanOptimizers = distributionPlanOptimizers;
this.accessControl = accessControl;
this.dataNodeLocationSupplier = dataNodeLocationSupplier;
this.typeManager = typeManager;
}

@Override
public IAnalysis analyze(final MPPQueryContext context) {
return new Analyzer(
context,
context.getSession(),
new StatementAnalyzerFactory(metadata, sqlParser, accessControl),
new StatementAnalyzerFactory(metadata, sqlParser, accessControl, typeManager),
Collections.emptyList(),
Collections.emptyMap(),
statementRewrite,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement;
import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser;
import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewriteFactory;
import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager;
import org.apache.iotdb.db.queryengine.plan.statement.StatementTestUtils;
import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertRowStatement;
import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement;
Expand Down Expand Up @@ -1261,7 +1262,8 @@ public static Analysis analyzeStatement(
final SessionInfo session) {
try {
final StatementAnalyzerFactory statementAnalyzerFactory =
new StatementAnalyzerFactory(metadata, sqlParser, nopAccessControl);
new StatementAnalyzerFactory(
metadata, sqlParser, nopAccessControl, new InternalTypeManager());

Analyzer analyzer =
new Analyzer(
Expand All @@ -1285,7 +1287,8 @@ public static Analysis analyzeStatementWithException(
final SqlParser sqlParser,
final SessionInfo session) {
final StatementAnalyzerFactory statementAnalyzerFactory =
new StatementAnalyzerFactory(metadata, sqlParser, nopAccessControl);
new StatementAnalyzerFactory(
metadata, sqlParser, nopAccessControl, new InternalTypeManager());
Analyzer analyzer =
new Analyzer(
context,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement;
import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser;
import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewrite;
import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager;

import org.junit.Test;
import org.mockito.Mockito;
Expand Down Expand Up @@ -224,7 +225,8 @@ private void analyzeSQL(
new StatementAnalyzerFactory(
TEST_MATADATA,
sqlParser,
new AccessControlImpl(authChecker, new TreeAccessCheckVisitor()));
new AccessControlImpl(authChecker, new TreeAccessCheckVisitor()),
new InternalTypeManager());
MPPQueryContext context = new MPPQueryContext(sql, QUERY_ID, 0, session, null, null);
Analyzer analyzer =
new Analyzer(
Expand All @@ -251,7 +253,8 @@ private void analyzeConfigTask(String sql, String userName, ITableAuthChecker au
new TableConfigTaskVisitor(
Mockito.mock(IClientSession.class),
TEST_MATADATA,
new AccessControlImpl(authChecker, new TreeAccessCheckVisitor())),
new AccessControlImpl(authChecker, new TreeAccessCheckVisitor()),
new InternalTypeManager()),
context);
}

Expand All @@ -266,7 +269,8 @@ private void analyzeConfigTask(
new TableConfigTaskVisitor(
clientSession,
TEST_MATADATA,
new AccessControlImpl(authChecker, new TreeAccessCheckVisitor())),
new AccessControlImpl(authChecker, new TreeAccessCheckVisitor()),
new InternalTypeManager()),
context);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement;
import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser;
import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewriteFactory;
import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager;

import org.junit.Assert;
import org.junit.Test;
Expand Down Expand Up @@ -475,7 +476,8 @@ public static void analyzeStatement(
final SqlParser sqlParser,
final SessionInfo session) {
final StatementAnalyzerFactory statementAnalyzerFactory =
new StatementAnalyzerFactory(metadata, sqlParser, nopAccessControl);
new StatementAnalyzerFactory(
metadata, sqlParser, nopAccessControl, new InternalTypeManager());

Analyzer analyzer =
new Analyzer(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.Statement;
import org.apache.iotdb.db.queryengine.plan.relational.sql.parser.SqlParser;
import org.apache.iotdb.db.queryengine.plan.relational.sql.rewrite.StatementRewriteFactory;
import org.apache.iotdb.db.queryengine.plan.relational.type.InternalTypeManager;

import com.google.common.collect.ImmutableList;
import org.mockito.Mockito;
Expand Down Expand Up @@ -170,7 +171,8 @@ public static Analysis analyzeStatement(
SessionInfo session) {
try {
StatementAnalyzerFactory statementAnalyzerFactory =
new StatementAnalyzerFactory(metadata, sqlParser, new AllowAllAccessControl());
new StatementAnalyzerFactory(
metadata, sqlParser, new AllowAllAccessControl(), new InternalTypeManager());

Analyzer analyzer =
new Analyzer(
Expand Down
Loading