This is an automated email from the ASF dual-hosted git repository. caogaofei pushed a commit to branch TableModelGrammar0606 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit e9583f870c95caf1266b920a4829d38fff4d57dd Merge: 3bea488e014 cfb83e59d72 Author: Beyyes <[email protected]> AuthorDate: Tue Jun 11 15:22:36 2024 +0800 Merge branch 'ty/TableModelGrammar' of github.com:apache/iotdb into ty/TableModelGrammar .../protocol/thrift/impl/ClientRPCServiceImpl.java | 2 +- .../db/queryengine/common/MPPQueryContext.java | 15 ++ .../relational/ColumnTransformerBuilder.java | 68 +++--- .../iotdb/db/queryengine/plan/Coordinator.java | 24 +-- .../queryengine/plan/analyze/PredicateUtils.java | 6 +- .../execution/config/TableConfigTaskVisitor.java | 26 +-- .../config/executor/ClusterConfigTaskExecutor.java | 8 +- .../config/executor/IConfigTaskExecutor.java | 8 +- .../config/metadata/relational/CreateDBTask.java | 2 +- .../config/metadata/relational/DropDBTask.java | 2 +- .../config/metadata/relational/ShowDBTask.java | 2 +- .../config/metadata/relational/UseDBTask.java | 2 +- .../plan/planner/TableOperatorGenerator.java | 2 +- .../plan/planner/plan/TableModelTimePredicate.java | 2 +- .../plan/planner/plan/TimePredicate.java | 2 +- .../relational/analyzer/AggregationAnalyzer.java | 66 +++--- .../plan/relational/analyzer/Analysis.java | 38 ++-- .../plan/relational/analyzer/Analyzer.java | 6 +- .../relational/analyzer/CanonicalizationAware.java | 4 +- .../relational/analyzer/ExpressionAnalysis.java | 10 +- .../relational/analyzer/ExpressionAnalyzer.java | 90 ++++---- .../relational/analyzer/ExpressionTreeUtils.java | 14 +- .../plan/relational/analyzer/Field.java | 2 +- .../plan/relational/analyzer/NodeRef.java | 2 +- .../plan/relational/analyzer/RelationId.java | 2 +- .../plan/relational/analyzer/RelationType.java | 2 +- .../plan/relational/analyzer/Scope.java | 8 +- .../analyzer/ScopeReferenceExtractor.java | 4 +- .../relational/analyzer/StatementAnalyzer.java | 142 ++++++------- .../predicate/ConvertPredicateToFilterVisitor.java | 38 ++-- .../ConvertPredicateToTimeFilterVisitor.java | 32 +-- .../PredicateCombineIntoTableScanChecker.java | 153 ++++++++++++++ ....java => PredicatePushIntoMetadataChecker.java} | 41 ++-- .../predicate/PredicatePushIntoScanChecker.java | 30 +-- .../analyzer/predicate/PredicateVisitor.java | 28 +-- .../plan/relational/metadata/Metadata.java | 2 +- .../plan/relational/metadata/MetadataUtil.java | 4 +- .../relational/metadata/TableMetadataImpl.java | 2 +- .../plan/relational/planner/Assignments.java | 2 +- .../plan/relational/planner/LogicalPlanner.java | 10 +- .../relational/planner/OrderingTranslator.java | 2 +- .../plan/relational/planner/PlanBuilder.java | 4 +- .../plan/relational/planner/PredicateUtils.java | 22 +- .../plan/relational/planner/QueryPlanner.java | 20 +- .../plan/relational/planner/RelationPlanner.java | 26 +-- .../relational/planner/RelationalModelPlanner.java | 2 +- .../plan/relational/planner/ScopeAware.java | 6 +- .../plan/relational/planner/Symbol.java | 4 +- .../distribute/FragmentInstanceGenerator.java | 4 +- .../distribute/TableDistributionPlanner.java | 2 +- .../TableModelTypeProviderExtractor.java | 2 +- .../planner/ir/DefaultTraversalVisitor.java | 32 +-- .../planner/ir/DeterminismEvaluator.java | 4 +- .../relational/planner/ir/ExpressionRewriter.java | 32 +-- .../planner/ir/ExpressionTranslateVisitor.java | 32 +-- .../planner/ir/ExpressionTreeRewriter.java | 38 ++-- .../ExtractCommonPredicatesExpressionRewriter.java | 8 +- .../ir/GlobalTimePredicateExtractVisitor.java | 44 ++-- .../plan/relational/planner/ir/IrUtils.java | 8 +- .../plan/relational/planner/ir/IrVisitor.java | 34 +-- .../planner/ir/NormalizeOrExpressionRewriter.java | 12 +- .../relational/planner/ir/RewritingVisitor.java | 32 +-- .../plan/relational/planner/node/FilterNode.java | 2 +- .../plan/relational/planner/node/ProjectNode.java | 2 +- .../relational/planner/node/TableScanNode.java | 24 ++- .../planner/optimizations/FilterScanCombine.java | 227 +++++++++++++++++++++ .../planner/optimizations/IndexScan.java | 69 +++---- .../planner/optimizations/PredicatePushDown.java | 125 ------------ .../planner/optimizations/PruneUnUsedColumns.java | 6 +- .../planner/optimizations/SimplifyExpressions.java | 2 +- .../relational/sql/{tree => ast}/AddColumn.java | 2 +- .../sql/{tree => ast}/AliasedRelation.java | 2 +- .../relational/sql/{tree => ast}/AllColumns.java | 2 +- .../plan/relational/sql/{tree => ast}/AllRows.java | 2 +- .../{tree => ast}/ArithmeticBinaryExpression.java | 2 +- .../{tree => ast}/ArithmeticUnaryExpression.java | 2 +- .../relational/sql/{tree => ast}/AstVisitor.java | 2 +- .../sql/{tree => ast}/BetweenPredicate.java | 2 +- .../sql/{tree => ast}/BinaryLiteral.java | 2 +- .../sql/{tree => ast}/BooleanLiteral.java | 2 +- .../plan/relational/sql/{tree => ast}/Cast.java | 2 +- .../sql/{tree => ast}/CoalesceExpression.java | 2 +- .../sql/{tree => ast}/ColumnDefinition.java | 2 +- .../sql/{tree => ast}/ComparisonExpression.java | 2 +- .../relational/sql/{tree => ast}/CreateDB.java | 2 +- .../sql/{tree => ast}/CreateFunction.java | 2 +- .../relational/sql/{tree => ast}/CreateIndex.java | 2 +- .../relational/sql/{tree => ast}/CreateTable.java | 2 +- .../sql/{tree => ast}/CurrentDatabase.java | 2 +- .../relational/sql/{tree => ast}/CurrentTime.java | 2 +- .../relational/sql/{tree => ast}/CurrentUser.java | 2 +- .../relational/sql/{tree => ast}/DataType.java | 2 +- .../sql/{tree => ast}/DataTypeParameter.java | 2 +- .../sql/{tree => ast}/DecimalLiteral.java | 2 +- .../DefaultExpressionTraversalVisitor.java | 2 +- .../sql/{tree => ast}/DefaultTraversalVisitor.java | 2 +- .../plan/relational/sql/{tree => ast}/Delete.java | 2 +- .../sql/{tree => ast}/DereferenceExpression.java | 2 +- .../sql/{tree => ast}/DescribeTable.java | 2 +- .../sql/{tree => ast}/DoubleLiteral.java | 2 +- .../relational/sql/{tree => ast}/DropColumn.java | 2 +- .../plan/relational/sql/{tree => ast}/DropDB.java | 2 +- .../relational/sql/{tree => ast}/DropFunction.java | 2 +- .../relational/sql/{tree => ast}/DropIndex.java | 2 +- .../relational/sql/{tree => ast}/DropTable.java | 2 +- .../plan/relational/sql/{tree => ast}/Except.java | 2 +- .../sql/{tree => ast}/ExistsPredicate.java | 2 +- .../plan/relational/sql/{tree => ast}/Explain.java | 2 +- .../sql/{tree => ast}/ExplainAnalyze.java | 2 +- .../relational/sql/{tree => ast}/Expression.java | 2 +- .../sql/{tree => ast}/FieldReference.java | 2 +- .../relational/sql/{tree => ast}/FunctionCall.java | 2 +- .../sql/{tree => ast}/GenericDataType.java | 2 +- .../sql/{tree => ast}/GenericLiteral.java | 2 +- .../plan/relational/sql/{tree => ast}/GroupBy.java | 2 +- .../sql/{tree => ast}/GroupingElement.java | 2 +- .../relational/sql/{tree => ast}/GroupingSets.java | 2 +- .../relational/sql/{tree => ast}/Identifier.java | 2 +- .../relational/sql/{tree => ast}/IfExpression.java | 2 +- .../sql/{tree => ast}/InListExpression.java | 2 +- .../relational/sql/{tree => ast}/InPredicate.java | 2 +- .../plan/relational/sql/{tree => ast}/Insert.java | 2 +- .../relational/sql/{tree => ast}/Intersect.java | 2 +- .../sql/{tree => ast}/IsNotNullPredicate.java | 2 +- .../sql/{tree => ast}/IsNullPredicate.java | 2 +- .../plan/relational/sql/{tree => ast}/Join.java | 2 +- .../relational/sql/{tree => ast}/JoinCriteria.java | 2 +- .../plan/relational/sql/{tree => ast}/JoinOn.java | 2 +- .../relational/sql/{tree => ast}/JoinUsing.java | 2 +- .../sql/{tree => ast}/LikePredicate.java | 2 +- .../plan/relational/sql/{tree => ast}/Limit.java | 2 +- .../plan/relational/sql/{tree => ast}/Literal.java | 2 +- .../sql/{tree => ast}/LogicalExpression.java | 2 +- .../relational/sql/{tree => ast}/LongLiteral.java | 2 +- .../relational/sql/{tree => ast}/NaturalJoin.java | 2 +- .../plan/relational/sql/{tree => ast}/Node.java | 2 +- .../relational/sql/{tree => ast}/NodeLocation.java | 2 +- .../sql/{tree => ast}/NotExpression.java | 2 +- .../sql/{tree => ast}/NullIfExpression.java | 2 +- .../relational/sql/{tree => ast}/NullLiteral.java | 2 +- .../sql/{tree => ast}/NumericParameter.java | 2 +- .../plan/relational/sql/{tree => ast}/Offset.java | 2 +- .../plan/relational/sql/{tree => ast}/OrderBy.java | 2 +- .../relational/sql/{tree => ast}/Parameter.java | 2 +- .../relational/sql/{tree => ast}/Property.java | 2 +- .../sql/{tree => ast}/QualifiedName.java | 2 +- .../QuantifiedComparisonExpression.java | 2 +- .../plan/relational/sql/{tree => ast}/Query.java | 2 +- .../relational/sql/{tree => ast}/QueryBody.java | 2 +- .../sql/{tree => ast}/QuerySpecification.java | 2 +- .../relational/sql/{tree => ast}/Relation.java | 2 +- .../relational/sql/{tree => ast}/RenameColumn.java | 2 +- .../relational/sql/{tree => ast}/RenameTable.java | 2 +- .../plan/relational/sql/{tree => ast}/Row.java | 2 +- .../sql/{tree => ast}/SearchedCaseExpression.java | 2 +- .../plan/relational/sql/{tree => ast}/Select.java | 2 +- .../relational/sql/{tree => ast}/SelectItem.java | 2 +- .../relational/sql/{tree => ast}/SetOperation.java | 2 +- .../sql/{tree => ast}/SetProperties.java | 2 +- .../plan/relational/sql/{tree => ast}/ShowDB.java | 2 +- .../sql/{tree => ast}/ShowFunctions.java | 2 +- .../relational/sql/{tree => ast}/ShowIndex.java | 2 +- .../relational/sql/{tree => ast}/ShowTables.java | 2 +- .../sql/{tree => ast}/SimpleCaseExpression.java | 2 +- .../sql/{tree => ast}/SimpleGroupBy.java | 2 +- .../relational/sql/{tree => ast}/SingleColumn.java | 2 +- .../relational/sql/{tree => ast}/SortItem.java | 2 +- .../sql/{tree => ast}/StackableAstVisitor.java | 2 +- .../relational/sql/{tree => ast}/Statement.java | 2 +- .../sql/{tree => ast}/StringLiteral.java | 2 +- .../sql/{tree => ast}/SubqueryExpression.java | 2 +- .../sql/{tree => ast}/SymbolReference.java | 2 +- .../plan/relational/sql/{tree => ast}/Table.java | 2 +- .../sql/{tree => ast}/TableExpressionType.java | 2 +- .../sql/{tree => ast}/TableSubquery.java | 2 +- .../plan/relational/sql/{tree => ast}/Trim.java | 2 +- .../sql/{tree => ast}/TypeParameter.java | 2 +- .../plan/relational/sql/{tree => ast}/Union.java | 2 +- .../plan/relational/sql/{tree => ast}/Update.java | 2 +- .../sql/{tree => ast}/UpdateAssignment.java | 2 +- .../plan/relational/sql/{tree => ast}/Use.java | 2 +- .../plan/relational/sql/{tree => ast}/Values.java | 2 +- .../relational/sql/{tree => ast}/WhenClause.java | 2 +- .../plan/relational/sql/{tree => ast}/With.java | 2 +- .../relational/sql/{tree => ast}/WithQuery.java | 2 +- .../plan/relational/sql/parser/AstBuilder.java | 202 +++++++++--------- .../relational/sql/parser/ParsingException.java | 2 +- .../plan/relational/sql/parser/SqlParser.java | 10 +- .../plan/relational/sql/util/AstUtil.java | 2 +- .../relational/sql/util/ExpressionFormatter.java | 110 +++++----- .../plan/relational/sql/util/QueryUtil.java | 52 ++--- .../relational/sql/util/ReservedIdentifiers.java | 2 +- .../plan/relational/sql/util/SqlFormatter.java | 102 ++++----- .../relational/type/TypeSignatureTranslator.java | 12 +- .../plan/relational/utils/NodeUtils.java | 4 +- .../dag/column/unary/InColumnTransformer.java | 10 +- .../plan/relational/analyzer/AnalyzerTest.java | 55 ++++- .../plan/relational/analyzer/TestMatadata.java | 2 +- .../relational/planner/PredicateUtilsTest.java | 2 +- 199 files changed, 1428 insertions(+), 1099 deletions(-)
