This is an automated email from the ASF dual-hosted git repository. shuwenwei pushed a commit to branch calc_commons in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 0839a5d26758212fe148103f68f072385241a1f6 Author: shuwenwei <[email protected]> AuthorDate: Fri Apr 17 17:03:58 2026 +0800 refactor Metadata --- .../relational/ColumnTransformerBuilder.java | 6 ++-- .../plan/planner/TableOperatorGenerator.java | 10 +++--- .../plan/relational/metadata/ITypeMetadata.java | 29 ++++++++++++++++ .../relational/function/ITableFunctionFactory.java | 28 ++++++++++++++++ .../relational/function/TableFunctionFactory.java | 39 ++++++++++++++++++++++ .../relational/planner/node/AggregationNode.java | 34 ------------------- .../relational/planner/node/TableFunctionNode.java | 4 +-- .../planner/node/TableFunctionProcessorNode.java | 4 +-- .../planner/DataNodeTableOperatorGenerator.java | 2 +- .../plan/relational/metadata/Metadata.java | 10 ++---- .../relational/metadata/TableMetadataImpl.java | 18 ---------- .../plan/relational/analyzer/TSBSMetadata.java | 5 --- .../plan/relational/analyzer/TestMetadata.java | 5 --- 13 files changed, 113 insertions(+), 81 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/execution/relational/ColumnTransformerBuilder.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/execution/relational/ColumnTransformerBuilder.java index 8aeb4d80a4e..0f287136560 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/execution/relational/ColumnTransformerBuilder.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/execution/relational/ColumnTransformerBuilder.java @@ -21,6 +21,7 @@ package org.apache.iotdb.db.calc_commons.execution.relational; import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinScalarFunction; import org.apache.iotdb.commons.udf.utils.UDFDataTypeTransformer; +import org.apache.iotdb.db.calc_commons.plan.relational.metadata.ITypeMetadata; import org.apache.iotdb.db.calc_commons.plan.udf.TableUDFUtils; import org.apache.iotdb.db.calc_commons.transformation.dag.column.ColumnTransformer; import org.apache.iotdb.db.calc_commons.transformation.dag.column.FailFunctionColumnTransformer; @@ -195,7 +196,6 @@ import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Trim; import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.WhenClause; import org.apache.iotdb.db.node_commons.plan.relational.type.InternalTypeManager; import org.apache.iotdb.db.node_commons.plan.relational.type.TypeNotFoundException; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.udf.api.customizer.analysis.ScalarFunctionAnalysis; import org.apache.iotdb.udf.api.customizer.parameter.FunctionArguments; import org.apache.iotdb.udf.api.relational.ScalarFunction; @@ -1942,7 +1942,7 @@ public class ColumnTransformerBuilder private final ITableTypeProvider typeProvider; - private final Metadata metadata; + private final ITypeMetadata metadata; public Context( SessionInfo sessionInfo, @@ -1954,7 +1954,7 @@ public class ColumnTransformerBuilder List<TSDataType> inputDataTypes, int originSize, ITableTypeProvider typeProvider, - Metadata metadata) { + ITypeMetadata metadata) { this.sessionInfo = sessionInfo; this.leafList = leafList; this.inputLocations = inputLocations; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/plan/planner/TableOperatorGenerator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/plan/planner/TableOperatorGenerator.java index eb631cb297a..0d23e34705d 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/plan/planner/TableOperatorGenerator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/plan/planner/TableOperatorGenerator.java @@ -92,6 +92,7 @@ import org.apache.iotdb.db.calc_commons.execution.operator.source.relational.agg import org.apache.iotdb.db.calc_commons.execution.operator.source.relational.aggregation.grouped.StreamingAggregationOperator; import org.apache.iotdb.db.calc_commons.execution.operator.source.relational.aggregation.grouped.StreamingHashAggregationOperator; import org.apache.iotdb.db.calc_commons.execution.relational.ColumnTransformerBuilder; +import org.apache.iotdb.db.calc_commons.plan.relational.metadata.ITypeMetadata; import org.apache.iotdb.db.calc_commons.plan.relational.planner.CastToBlobLiteralVisitor; import org.apache.iotdb.db.calc_commons.plan.relational.planner.CastToBooleanLiteralVisitor; import org.apache.iotdb.db.calc_commons.plan.relational.planner.CastToDateLiteralVisitor; @@ -113,6 +114,7 @@ import org.apache.iotdb.db.node_commons.plan.planner.plan.node.process.SingleChi import org.apache.iotdb.db.node_commons.plan.planner.plan.parameter.InputLocation; import org.apache.iotdb.db.node_commons.plan.relational.function.BoundSignature; import org.apache.iotdb.db.node_commons.plan.relational.function.FunctionKind; +import org.apache.iotdb.db.node_commons.plan.relational.function.ITableFunctionFactory; import org.apache.iotdb.db.node_commons.plan.relational.metadata.ResolvedFunction; import org.apache.iotdb.db.node_commons.plan.relational.planner.OrderingScheme; import org.apache.iotdb.db.node_commons.plan.relational.planner.SortOrder; @@ -161,7 +163,6 @@ import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Literal; import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.node_commons.plan.relational.type.InternalTypeManager; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import org.apache.iotdb.db.utils.datastructure.SortKey; import org.apache.iotdb.udf.api.relational.TableFunction; import org.apache.iotdb.udf.api.relational.table.TableFunctionProcessorProvider; @@ -233,12 +234,13 @@ import static org.apache.tsfile.read.common.type.StringType.STRING; import static org.apache.tsfile.read.common.type.TimestampType.TIMESTAMP; /** This Visitor is responsible for transferring Table PlanNode Tree to Table Operator Tree. */ -public abstract class TableOperatorGenerator<C extends ITableOperatorGeneratorContext> +public abstract class TableOperatorGenerator< + C extends ITableOperatorGeneratorContext, M extends ITypeMetadata & ITableFunctionFactory> implements ICoreQueryPlanVisitor<Operator, C> { - protected final Metadata metadata; + protected final M metadata; - public TableOperatorGenerator(Metadata metadata) { + public TableOperatorGenerator(M metadata) { this.metadata = metadata; } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/plan/relational/metadata/ITypeMetadata.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/plan/relational/metadata/ITypeMetadata.java new file mode 100644 index 00000000000..251a343c8ed --- /dev/null +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/calc_commons/plan/relational/metadata/ITypeMetadata.java @@ -0,0 +1,29 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.db.calc_commons.plan.relational.metadata; + +import org.apache.iotdb.db.node_commons.plan.relational.type.TypeNotFoundException; +import org.apache.iotdb.db.node_commons.plan.relational.type.TypeSignature; + +import org.apache.tsfile.read.common.type.Type; + +public interface ITypeMetadata { + Type getType(TypeSignature signature) throws TypeNotFoundException; +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/function/ITableFunctionFactory.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/function/ITableFunctionFactory.java new file mode 100644 index 00000000000..9553ddc9fbb --- /dev/null +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/function/ITableFunctionFactory.java @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.db.node_commons.plan.relational.function; + +import org.apache.iotdb.udf.api.relational.TableFunction; + +public interface ITableFunctionFactory { + default TableFunction getTableFunction(String functionName) { + return TableFunctionFactory.getTableFunction(functionName); + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/function/TableFunctionFactory.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/function/TableFunctionFactory.java new file mode 100644 index 00000000000..75d34ec46e2 --- /dev/null +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/function/TableFunctionFactory.java @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.db.node_commons.plan.relational.function; + +import org.apache.iotdb.db.calc_commons.plan.udf.TableUDFUtils; +import org.apache.iotdb.db.exception.sql.SemanticException; +import org.apache.iotdb.udf.api.relational.TableFunction; + +public class TableFunctionFactory { + + private TableFunctionFactory() {} + + public static TableFunction getTableFunction(String functionName) { + if (TableBuiltinTableFunction.isBuiltInTableFunction(functionName)) { + return TableBuiltinTableFunction.getBuiltinTableFunction(functionName); + } else if (TableUDFUtils.isTableFunction(functionName)) { + return TableUDFUtils.getTableFunction(functionName); + } else { + throw new SemanticException("Unknown function: " + functionName); + } + } +} diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/AggregationNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/AggregationNode.java index 05900d8425c..9c1a57dac5e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/AggregationNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/AggregationNode.java @@ -19,7 +19,6 @@ package org.apache.iotdb.db.node_commons.plan.relational.planner.node; -import org.apache.iotdb.db.node_commons.common.SessionInfo; import org.apache.iotdb.db.node_commons.plan.expression.multi.FunctionType; import org.apache.iotdb.db.node_commons.plan.planner.plan.node.ICoreQueryPlanVisitor; import org.apache.iotdb.db.node_commons.plan.planner.plan.node.IPlanVisitor; @@ -32,7 +31,6 @@ import org.apache.iotdb.db.node_commons.plan.relational.planner.OrderingScheme; import org.apache.iotdb.db.node_commons.plan.relational.planner.Symbol; import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.SymbolReference; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -342,38 +340,6 @@ public class AggregationNode extends SingleChildProcessNode { && outputs.containsAll(new HashSet<>(groupingSets.getGroupingKeys())); } - public boolean isDecomposable(SessionInfo session, Metadata metadata) { - boolean hasOrderBy = - getAggregations().values().stream() - .map(Aggregation::getOrderingScheme) - .anyMatch(Optional::isPresent); - - boolean hasDistinct = getAggregations().values().stream().anyMatch(Aggregation::isDistinct); - - /*boolean decomposableFunctions = getAggregations().values().stream() - .map(Aggregation::getResolvedFunction) - .map(resolvedFunction -> metadata.getAggregationFunctionMetadata(session, resolvedFunction)) - .allMatch(AggregationFunctionMetadata::isDecomposable);*/ - - return !hasOrderBy && !hasDistinct; - } - - public boolean hasSingleNodeExecutionPreference(SessionInfo session, Metadata metadata) { - // There are two kinds of aggregations the have single node execution preference: - // - // 1. aggregations with only empty grouping sets like - // - // SELECT count(*) FROM lineitem; - // - // there is no need for distributed aggregation. Single node FINAL aggregation will suffice, - // since all input have to be aggregated into one line output. - // - // 2. aggregations that must produce default output and are not decomposable, we cannot - // distribute them. - return (hasEmptyGroupingSet() && !hasNonEmptyGroupingSet()) - || (hasDefaultOutput() && !isDecomposable(session, metadata)); - } - public boolean isStreamable() { return !preGroupedSymbols.isEmpty() && groupingSets.getGroupingSetCount() == 1 diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TableFunctionNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TableFunctionNode.java index f8f79f56c84..3b673ea8738 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TableFunctionNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TableFunctionNode.java @@ -25,9 +25,9 @@ import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.node_commons.plan.planner.plan.node.process.MultiChildProcessNode; +import org.apache.iotdb.db.node_commons.plan.relational.function.TableFunctionFactory; import org.apache.iotdb.db.node_commons.plan.relational.planner.DataOrganizationSpecification; import org.apache.iotdb.db.node_commons.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl; import org.apache.iotdb.udf.api.relational.table.TableFunctionHandle; import com.google.common.collect.ImmutableList; @@ -198,7 +198,7 @@ public class TableFunctionNode extends MultiChildProcessNode { int size = ReadWriteIOUtils.readInt(byteBuffer); byte[] bytes = ReadWriteIOUtils.readBytes(byteBuffer, size); TableFunctionHandle tableFunctionHandle = - new TableMetadataImpl().getTableFunction(name).createTableFunctionHandle(); + TableFunctionFactory.getTableFunction(name).createTableFunctionHandle(); tableFunctionHandle.deserialize(bytes); size = ReadWriteIOUtils.readInt(byteBuffer); ImmutableList.Builder<Symbol> properOutputs = ImmutableList.builder(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TableFunctionProcessorNode.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TableFunctionProcessorNode.java index 2f6c2009d51..677e2da553a 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TableFunctionProcessorNode.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/node_commons/plan/relational/planner/node/TableFunctionProcessorNode.java @@ -25,9 +25,9 @@ import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNode; import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeId; import org.apache.iotdb.db.node_commons.plan.planner.plan.node.PlanNodeType; import org.apache.iotdb.db.node_commons.plan.planner.plan.node.process.SingleChildProcessNode; +import org.apache.iotdb.db.node_commons.plan.relational.function.TableFunctionFactory; import org.apache.iotdb.db.node_commons.plan.relational.planner.DataOrganizationSpecification; import org.apache.iotdb.db.node_commons.plan.relational.planner.Symbol; -import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableMetadataImpl; import org.apache.iotdb.udf.api.relational.table.TableFunctionHandle; import com.google.common.collect.ImmutableList; @@ -260,7 +260,7 @@ public class TableFunctionProcessorNode extends SingleChildProcessNode { size = ReadWriteIOUtils.readInt(byteBuffer); byte[] bytes = ReadWriteIOUtils.readBytes(byteBuffer, size); TableFunctionHandle tableFunctionHandle = - new TableMetadataImpl().getTableFunction(name).createTableFunctionHandle(); + TableFunctionFactory.getTableFunction(name).createTableFunctionHandle(); tableFunctionHandle.deserialize(bytes); boolean requireRecordSnapshot = ReadWriteIOUtils.readBoolean(byteBuffer); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java index 48ba79cb922..6aa266ff743 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/DataNodeTableOperatorGenerator.java @@ -197,7 +197,7 @@ import static org.apache.iotdb.db.utils.constant.SqlConstant.SUM; import static org.apache.tsfile.read.common.type.TimestampType.TIMESTAMP; public class DataNodeTableOperatorGenerator - extends TableOperatorGenerator<LocalExecutionPlanContext> + extends TableOperatorGenerator<LocalExecutionPlanContext, Metadata> implements PlanVisitor<Operator, LocalExecutionPlanContext> { private static final MPPDataExchangeManager MPP_DATA_EXCHANGE_MANAGER = diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/Metadata.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/Metadata.java index 873c31b5393..0a5cabbd0d3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/Metadata.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/Metadata.java @@ -24,18 +24,18 @@ import org.apache.iotdb.commons.partition.DataPartitionQueryParam; import org.apache.iotdb.commons.partition.SchemaPartition; import org.apache.iotdb.commons.schema.table.InsertNodeMeasurementInfo; import org.apache.iotdb.commons.udf.builtin.relational.TableBuiltinWindowFunction; +import org.apache.iotdb.db.calc_commons.plan.relational.metadata.ITypeMetadata; import org.apache.iotdb.db.exception.load.LoadAnalyzeTableColumnDisorderException; import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.node_commons.common.SessionInfo; +import org.apache.iotdb.db.node_commons.plan.relational.function.ITableFunctionFactory; import org.apache.iotdb.db.node_commons.plan.relational.function.OperatorType; import org.apache.iotdb.db.node_commons.plan.relational.sql.ast.Expression; import org.apache.iotdb.db.node_commons.plan.relational.type.TypeNotFoundException; import org.apache.iotdb.db.node_commons.plan.relational.type.TypeSignature; import org.apache.iotdb.db.queryengine.common.MPPQueryContext; -import org.apache.iotdb.db.queryengine.plan.analyze.IPartitionFetcher; import org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher.TableHeaderSchemaValidator; import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl; -import org.apache.iotdb.udf.api.relational.TableFunction; import org.apache.tsfile.file.metadata.IDeviceID; import org.apache.tsfile.read.common.type.Type; @@ -46,7 +46,7 @@ import java.util.Optional; import java.util.concurrent.atomic.AtomicBoolean; // All the input databases shall not contain "root" -public interface Metadata { +public interface Metadata extends ITypeMetadata, ITableFunctionFactory { boolean tableExists(final QualifiedObjectName name); @@ -76,8 +76,6 @@ public interface Metadata { boolean canCoerce(final Type from, final Type to); - IPartitionFetcher getPartitionFetcher(); - /** * Get all device ids and corresponding attributes from schema region * @@ -212,6 +210,4 @@ public interface Metadata { */ DataPartition getDataPartitionWithUnclosedTimeRange( final String database, final List<DataPartitionQueryParam> sgNameToQueryParamsMap); - - TableFunction getTableFunction(final String functionName); } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java index c6351934348..bef1ea1b484 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/TableMetadataImpl.java @@ -34,7 +34,6 @@ import org.apache.iotdb.db.exception.load.LoadAnalyzeTableColumnDisorderExceptio import org.apache.iotdb.db.exception.sql.SemanticException; import org.apache.iotdb.db.node_commons.common.SessionInfo; import org.apache.iotdb.db.node_commons.plan.relational.function.OperatorType; -import org.apache.iotdb.db.node_commons.plan.relational.function.TableBuiltinTableFunction; import org.apache.iotdb.db.node_commons.plan.relational.function.arithmetic.AdditionResolver; import org.apache.iotdb.db.node_commons.plan.relational.function.arithmetic.DivisionResolver; import org.apache.iotdb.db.node_commons.plan.relational.function.arithmetic.ModulusResolver; @@ -59,7 +58,6 @@ import org.apache.iotdb.udf.api.customizer.analysis.ScalarFunctionAnalysis; import org.apache.iotdb.udf.api.customizer.parameter.FunctionArguments; import org.apache.iotdb.udf.api.relational.AggregateFunction; import org.apache.iotdb.udf.api.relational.ScalarFunction; -import org.apache.iotdb.udf.api.relational.TableFunction; import org.apache.tsfile.file.metadata.IDeviceID; import org.apache.tsfile.read.common.type.ObjectType; @@ -1417,11 +1415,6 @@ public class TableMetadataImpl implements Metadata { return true; } - @Override - public IPartitionFetcher getPartitionFetcher() { - return ClusterPartitionFetcher.getInstance(); - } - @Override public Map<String, List<DeviceEntry>> indexScan( final QualifiedObjectName tableName, @@ -1516,15 +1509,4 @@ public class TableMetadataImpl implements Metadata { return partitionFetcher.getDataPartitionWithUnclosedTimeRange( Collections.singletonMap(database, sgNameToQueryParamsMap)); } - - @Override - public TableFunction getTableFunction(String functionName) { - if (TableBuiltinTableFunction.isBuiltInTableFunction(functionName)) { - return TableBuiltinTableFunction.getBuiltinTableFunction(functionName); - } else if (TableUDFUtils.isTableFunction(functionName)) { - return TableUDFUtils.getTableFunction(functionName); - } else { - throw new SemanticException("Unknown function: " + functionName); - } - } } diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TSBSMetadata.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TSBSMetadata.java index 2d4f50c3ee2..2eedf5c62e4 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TSBSMetadata.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TSBSMetadata.java @@ -278,11 +278,6 @@ public class TSBSMetadata implements Metadata { return true; } - @Override - public IPartitionFetcher getPartitionFetcher() { - return getFakePartitionFetcher(); - } - @Override public Map<String, List<DeviceEntry>> indexScan( QualifiedObjectName tableName, diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestMetadata.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestMetadata.java index f152a9edff2..83ce87c2fe1 100644 --- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestMetadata.java +++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TestMetadata.java @@ -318,11 +318,6 @@ public class TestMetadata implements Metadata { return true; } - @Override - public IPartitionFetcher getPartitionFetcher() { - return getFakePartitionFetcher(); - } - @Override public Map<String, List<DeviceEntry>> indexScan( final QualifiedObjectName tableName,
