diff --git a/src/query/service/src/sql/common/mod.rs b/src/query/service/src/sql/common/mod.rs deleted file mode 100644 index 033ef0facfabd..0000000000000 --- a/src/query/service/src/sql/common/mod.rs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2021 Datafuse Labs. -// -// Licensed 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. - -pub type IndexType = usize; diff --git a/src/query/service/src/sql/executor/expression_builder.rs b/src/query/service/src/sql/executor/expression_builder.rs index 1f70f65833e00..bfd9959cd3089 100644 --- a/src/query/service/src/sql/executor/expression_builder.rs +++ b/src/query/service/src/sql/executor/expression_builder.rs @@ -19,6 +19,7 @@ use common_exception::Result; use common_legacy_planners::Expression; use crate::sql::executor::util::format_field_name; +use crate::sql::planner::IndexType; use crate::sql::plans::AggregateFunction; use crate::sql::plans::AndExpr; use crate::sql::plans::BoundColumnRef; @@ -28,7 +29,6 @@ use crate::sql::plans::ConstantExpr; use crate::sql::plans::FunctionCall; use crate::sql::plans::OrExpr; use crate::sql::plans::Scalar; -use crate::sql::IndexType; use crate::sql::MetadataRef; pub trait FiledNameFormat { diff --git a/src/query/service/src/sql/executor/format.rs b/src/query/service/src/sql/executor/format.rs index 1e81890d25090..73fba5cc14fba 100644 --- a/src/query/service/src/sql/executor/format.rs +++ b/src/query/service/src/sql/executor/format.rs @@ -30,7 +30,7 @@ use super::Project; use super::Sort; use super::TableScan; use super::UnionAll; -use crate::sql::IndexType; +use crate::sql::planner::IndexType; use crate::sql::MetadataRef; use crate::sql::DUMMY_TABLE_INDEX; diff --git a/src/query/service/src/sql/executor/physical_plan.rs b/src/query/service/src/sql/executor/physical_plan.rs index 8f662c121ed10..95bcedc44461a 100644 --- a/src/query/service/src/sql/executor/physical_plan.rs +++ b/src/query/service/src/sql/executor/physical_plan.rs @@ -33,9 +33,9 @@ use super::physical_scalar::PhysicalScalar; use super::AggregateFunctionDesc; use super::SortDesc; use crate::sql::optimizer::ColumnSet; +use crate::sql::planner::IndexType; use crate::sql::plans::JoinType; use crate::sql::ColumnBinding; -use crate::sql::IndexType; pub type ColumnID = String; diff --git a/src/query/service/src/sql/executor/physical_scalar.rs b/src/query/service/src/sql/executor/physical_scalar.rs index 547b118ee3b93..4c8195a01f6a4 100644 --- a/src/query/service/src/sql/executor/physical_scalar.rs +++ b/src/query/service/src/sql/executor/physical_scalar.rs @@ -18,7 +18,7 @@ use common_datavalues::DataValue; use common_exception::Result; use super::ColumnID; -use crate::sql::IndexType; +use crate::sql::planner::IndexType; use crate::sql::MetadataRef; /// Serializable and desugared representation of `Scalar`. diff --git a/src/query/service/src/sql/executor/util.rs b/src/query/service/src/sql/executor/util.rs index 09a44c8d5f083..102c78d2a0535 100644 --- a/src/query/service/src/sql/executor/util.rs +++ b/src/query/service/src/sql/executor/util.rs @@ -18,8 +18,8 @@ use once_cell::sync::Lazy; use regex::Regex; use crate::sql::optimizer::SExpr; +use crate::sql::planner::IndexType; use crate::sql::plans::Operator; -use crate::sql::IndexType; /// Check if all plans in an expression are physical plans pub fn check_physical(expression: &SExpr) -> bool { diff --git a/src/query/service/src/sql/mod.rs b/src/query/service/src/sql/mod.rs index 2e9b0296affa4..68c7bf4b69793 100644 --- a/src/query/service/src/sql/mod.rs +++ b/src/query/service/src/sql/mod.rs @@ -12,17 +12,14 @@ // See the License for the specific language governing permissions and // limitations under the License. -mod common; pub mod executor; mod metrics; -pub mod optimizer; mod parsers; mod plan_parser; pub mod planner; mod sql_parser; mod sql_statement; pub mod statements; -pub use common::*; use common_legacy_parser::sql_common; use common_storages_util::table_option_keys; pub use plan_parser::PlanParser; diff --git a/src/query/service/src/sql/planner/binder/bind_context.rs b/src/query/service/src/sql/planner/binder/bind_context.rs index 9f732fa238699..7915bb763281a 100644 --- a/src/query/service/src/sql/planner/binder/bind_context.rs +++ b/src/query/service/src/sql/planner/binder/bind_context.rs @@ -28,9 +28,9 @@ use common_exception::Result; use parking_lot::RwLock; use super::AggregateInfo; -use crate::sql::common::IndexType; use crate::sql::normalize_identifier; use crate::sql::optimizer::SExpr; +use crate::sql::planner::IndexType; use crate::sql::plans::Scalar; use crate::sql::NameResolutionContext; diff --git a/src/query/service/src/sql/planner/binder/distinct.rs b/src/query/service/src/sql/planner/binder/distinct.rs index c76617a444ca2..66d90d2e0023b 100644 --- a/src/query/service/src/sql/planner/binder/distinct.rs +++ b/src/query/service/src/sql/planner/binder/distinct.rs @@ -20,6 +20,7 @@ use crate::sql::binder::Binder; use crate::sql::binder::ColumnBinding; use crate::sql::optimizer::SExpr; use crate::sql::planner::semantic::GroupingChecker; +use crate::sql::planner::IndexType; use crate::sql::plans::Aggregate; use crate::sql::plans::AggregateMode; use crate::sql::plans::BoundColumnRef; @@ -27,7 +28,6 @@ use crate::sql::plans::EvalScalar; use crate::sql::plans::Scalar; use crate::sql::plans::ScalarItem; use crate::sql::BindContext; -use crate::sql::IndexType; impl Binder { pub(super) fn bind_distinct( diff --git a/src/query/service/src/sql/planner/binder/project.rs b/src/query/service/src/sql/planner/binder/project.rs index 400114931e510..6054cec2b29a7 100644 --- a/src/query/service/src/sql/planner/binder/project.rs +++ b/src/query/service/src/sql/planner/binder/project.rs @@ -31,6 +31,7 @@ use crate::sql::planner::binder::Binder; use crate::sql::planner::binder::ColumnBinding; use crate::sql::planner::semantic::normalize_identifier; use crate::sql::planner::semantic::GroupingChecker; +use crate::sql::planner::IndexType; use crate::sql::plans::BoundColumnRef; use crate::sql::plans::EvalScalar; use crate::sql::plans::Project; @@ -39,7 +40,6 @@ use crate::sql::plans::ScalarExpr; use crate::sql::plans::ScalarItem; use crate::sql::plans::SubqueryExpr; use crate::sql::plans::SubqueryType; -use crate::sql::IndexType; impl<'a> Binder { pub(super) fn analyze_projection( diff --git a/src/query/service/src/sql/planner/binder/sort.rs b/src/query/service/src/sql/planner/binder/sort.rs index 23a51dcccaa98..dbf4571203cf1 100644 --- a/src/query/service/src/sql/planner/binder/sort.rs +++ b/src/query/service/src/sql/planner/binder/sort.rs @@ -30,6 +30,7 @@ use crate::sql::binder::ColumnBinding; use crate::sql::normalize_identifier; use crate::sql::optimizer::SExpr; use crate::sql::planner::semantic::GroupingChecker; +use crate::sql::planner::IndexType; use crate::sql::plans::AggregateFunction; use crate::sql::plans::AndExpr; use crate::sql::plans::BoundColumnRef; @@ -43,7 +44,6 @@ use crate::sql::plans::ScalarItem; use crate::sql::plans::Sort; use crate::sql::plans::SortItem; use crate::sql::BindContext; -use crate::sql::IndexType; use crate::sql::ScalarExpr; pub struct OrderItems<'a> { diff --git a/src/query/service/src/sql/planner/binder/table.rs b/src/query/service/src/sql/planner/binder/table.rs index 0f247f32070d3..0c74c0b43446f 100644 --- a/src/query/service/src/sql/planner/binder/table.rs +++ b/src/query/service/src/sql/planner/binder/table.rs @@ -40,11 +40,11 @@ use crate::sql::binder::Visibility; use crate::sql::optimizer::SExpr; use crate::sql::planner::semantic::normalize_identifier; use crate::sql::planner::semantic::TypeChecker; +use crate::sql::planner::IndexType; use crate::sql::plans::ConstantExpr; use crate::sql::plans::LogicalGet; use crate::sql::plans::Scalar; use crate::sql::BindContext; -use crate::sql::IndexType; use crate::storages::view::view_table::QUERY; use crate::storages::NavigationPoint; use crate::storages::Table; diff --git a/src/query/service/src/sql/planner/metadata.rs b/src/query/service/src/sql/planner/metadata.rs index 7bfdccdfc4946..30cede4a46f09 100644 --- a/src/query/service/src/sql/planner/metadata.rs +++ b/src/query/service/src/sql/planner/metadata.rs @@ -21,8 +21,8 @@ use common_ast::ast::Literal; use common_datavalues::prelude::*; use parking_lot::RwLock; -use crate::sql::common::IndexType; use crate::sql::optimizer::ColumnSet; +use crate::sql::planner::IndexType; use crate::storages::Table; pub static DUMMY_TABLE_INDEX: IndexType = IndexType::MAX; diff --git a/src/query/service/src/sql/planner/mod.rs b/src/query/service/src/sql/planner/mod.rs index 47d23c7b01f2d..6b01fa12c58da 100644 --- a/src/query/service/src/sql/planner/mod.rs +++ b/src/query/service/src/sql/planner/mod.rs @@ -30,6 +30,7 @@ pub use crate::sql::planner::binder::BindContext; pub(crate) mod binder; mod format; mod metadata; +pub mod optimizer; pub mod plans; mod semantic; @@ -54,6 +55,8 @@ use crate::sessions::TableContext; const PROBE_INSERT_INITIAL_TOKENS: usize = 128; const PROBE_INSERT_MAX_TOKENS: usize = 128 * 8; +pub type IndexType = usize; + pub struct Planner { ctx: Arc, } diff --git a/src/query/service/src/sql/optimizer/cascades/explore_rules.rs b/src/query/service/src/sql/planner/optimizer/cascades/explore_rules.rs similarity index 100% rename from src/query/service/src/sql/optimizer/cascades/explore_rules.rs rename to src/query/service/src/sql/planner/optimizer/cascades/explore_rules.rs diff --git a/src/query/service/src/sql/optimizer/cascades/implement_rules.rs b/src/query/service/src/sql/planner/optimizer/cascades/implement_rules.rs similarity index 100% rename from src/query/service/src/sql/optimizer/cascades/implement_rules.rs rename to src/query/service/src/sql/planner/optimizer/cascades/implement_rules.rs diff --git a/src/query/service/src/sql/optimizer/cascades/mod.rs b/src/query/service/src/sql/planner/optimizer/cascades/mod.rs similarity index 99% rename from src/query/service/src/sql/optimizer/cascades/mod.rs rename to src/query/service/src/sql/planner/optimizer/cascades/mod.rs index 5ccf0fa26a0ea..c9c6649e92be1 100644 --- a/src/query/service/src/sql/optimizer/cascades/mod.rs +++ b/src/query/service/src/sql/planner/optimizer/cascades/mod.rs @@ -33,8 +33,8 @@ use crate::sql::optimizer::memo::Memo; use crate::sql::optimizer::rule::RuleSet; use crate::sql::optimizer::rule::TransformState; use crate::sql::optimizer::SExpr; +use crate::sql::planner::IndexType; use crate::sql::plans::Operator; -use crate::sql::IndexType; /// A cascades-style search engine to enumerate possible alternations of a relational expression and /// find the optimal one. diff --git a/src/query/service/src/sql/optimizer/cost/cost_model.rs b/src/query/service/src/sql/planner/optimizer/cost/cost_model.rs similarity index 100% rename from src/query/service/src/sql/optimizer/cost/cost_model.rs rename to src/query/service/src/sql/planner/optimizer/cost/cost_model.rs diff --git a/src/query/service/src/sql/optimizer/cost/mod.rs b/src/query/service/src/sql/planner/optimizer/cost/mod.rs similarity index 97% rename from src/query/service/src/sql/optimizer/cost/mod.rs rename to src/query/service/src/sql/planner/optimizer/cost/mod.rs index 5c1b65890a5e9..4f73737f9921c 100644 --- a/src/query/service/src/sql/optimizer/cost/mod.rs +++ b/src/query/service/src/sql/planner/optimizer/cost/mod.rs @@ -21,7 +21,7 @@ pub use cost_model::DefaultCostModel; use super::MExpr; use super::Memo; -use crate::sql::IndexType; +use crate::sql::planner::IndexType; #[derive(Debug, Clone, Copy, PartialEq, PartialOrd)] pub struct Cost(pub f64); diff --git a/src/query/service/src/sql/optimizer/distributed/mod.rs b/src/query/service/src/sql/planner/optimizer/distributed/mod.rs similarity index 100% rename from src/query/service/src/sql/optimizer/distributed/mod.rs rename to src/query/service/src/sql/planner/optimizer/distributed/mod.rs diff --git a/src/query/service/src/sql/optimizer/format/mod.rs b/src/query/service/src/sql/planner/optimizer/format/mod.rs similarity index 100% rename from src/query/service/src/sql/optimizer/format/mod.rs rename to src/query/service/src/sql/planner/optimizer/format/mod.rs diff --git a/src/query/service/src/sql/optimizer/group.rs b/src/query/service/src/sql/planner/optimizer/group.rs similarity index 97% rename from src/query/service/src/sql/optimizer/group.rs rename to src/query/service/src/sql/planner/optimizer/group.rs index f2d823d2329d7..ec32632c01050 100644 --- a/src/query/service/src/sql/optimizer/group.rs +++ b/src/query/service/src/sql/planner/optimizer/group.rs @@ -16,7 +16,7 @@ use common_exception::Result; use crate::sql::optimizer::m_expr::MExpr; use crate::sql::optimizer::property::RelationalProperty; -use crate::sql::IndexType; +use crate::sql::planner::IndexType; /// `Group` is a set of logically equivalent relational expressions represented with `MExpr`. #[derive(Clone)] diff --git a/src/query/service/src/sql/optimizer/heuristic/decorrelate.rs b/src/query/service/src/sql/planner/optimizer/heuristic/decorrelate.rs similarity index 99% rename from src/query/service/src/sql/optimizer/heuristic/decorrelate.rs rename to src/query/service/src/sql/planner/optimizer/heuristic/decorrelate.rs index b3c2476318983..a28a38a4ed3b3 100644 --- a/src/query/service/src/sql/optimizer/heuristic/decorrelate.rs +++ b/src/query/service/src/sql/planner/optimizer/heuristic/decorrelate.rs @@ -30,6 +30,7 @@ use crate::sql::optimizer::heuristic::subquery_rewriter::UnnestResult; use crate::sql::optimizer::ColumnSet; use crate::sql::optimizer::RelExpr; use crate::sql::optimizer::SExpr; +use crate::sql::planner::IndexType; use crate::sql::plans::Aggregate; use crate::sql::plans::AggregateFunction; use crate::sql::plans::AggregateMode; @@ -54,7 +55,6 @@ use crate::sql::plans::SubqueryExpr; use crate::sql::plans::SubqueryType; use crate::sql::plans::UnionAll; use crate::sql::ColumnBinding; -use crate::sql::IndexType; use crate::sql::MetadataRef; use crate::sql::ScalarExpr; diff --git a/src/query/service/src/sql/optimizer/heuristic/implement.rs b/src/query/service/src/sql/planner/optimizer/heuristic/implement.rs similarity index 100% rename from src/query/service/src/sql/optimizer/heuristic/implement.rs rename to src/query/service/src/sql/planner/optimizer/heuristic/implement.rs diff --git a/src/query/service/src/sql/optimizer/heuristic/mod.rs b/src/query/service/src/sql/planner/optimizer/heuristic/mod.rs similarity index 100% rename from src/query/service/src/sql/optimizer/heuristic/mod.rs rename to src/query/service/src/sql/planner/optimizer/heuristic/mod.rs diff --git a/src/query/service/src/sql/optimizer/heuristic/prune_columns.rs b/src/query/service/src/sql/planner/optimizer/heuristic/prune_columns.rs similarity index 100% rename from src/query/service/src/sql/optimizer/heuristic/prune_columns.rs rename to src/query/service/src/sql/planner/optimizer/heuristic/prune_columns.rs diff --git a/src/query/service/src/sql/optimizer/heuristic/rule_list.rs b/src/query/service/src/sql/planner/optimizer/heuristic/rule_list.rs similarity index 100% rename from src/query/service/src/sql/optimizer/heuristic/rule_list.rs rename to src/query/service/src/sql/planner/optimizer/heuristic/rule_list.rs diff --git a/src/query/service/src/sql/optimizer/heuristic/subquery_rewriter.rs b/src/query/service/src/sql/planner/optimizer/heuristic/subquery_rewriter.rs similarity index 99% rename from src/query/service/src/sql/optimizer/heuristic/subquery_rewriter.rs rename to src/query/service/src/sql/planner/optimizer/heuristic/subquery_rewriter.rs index 1461113f41252..e41e0dfdfbba7 100644 --- a/src/query/service/src/sql/optimizer/heuristic/subquery_rewriter.rs +++ b/src/query/service/src/sql/planner/optimizer/heuristic/subquery_rewriter.rs @@ -28,6 +28,7 @@ use crate::sql::binder::Visibility; use crate::sql::optimizer::ColumnSet; use crate::sql::optimizer::RelExpr; use crate::sql::optimizer::SExpr; +use crate::sql::planner::IndexType; use crate::sql::plans::Aggregate; use crate::sql::plans::AggregateFunction; use crate::sql::plans::AggregateMode; @@ -49,7 +50,6 @@ use crate::sql::plans::Scalar; use crate::sql::plans::ScalarItem; use crate::sql::plans::SubqueryExpr; use crate::sql::plans::SubqueryType; -use crate::sql::IndexType; use crate::sql::MetadataRef; use crate::sql::ScalarExpr; diff --git a/src/query/service/src/sql/optimizer/heuristic/where_optimizer.rs b/src/query/service/src/sql/planner/optimizer/heuristic/where_optimizer.rs similarity index 100% rename from src/query/service/src/sql/optimizer/heuristic/where_optimizer.rs rename to src/query/service/src/sql/planner/optimizer/heuristic/where_optimizer.rs diff --git a/src/query/service/src/sql/optimizer/m_expr.rs b/src/query/service/src/sql/planner/optimizer/m_expr.rs similarity index 98% rename from src/query/service/src/sql/optimizer/m_expr.rs rename to src/query/service/src/sql/planner/optimizer/m_expr.rs index 20606254ecf00..fb2368d02a641 100644 --- a/src/query/service/src/sql/optimizer/m_expr.rs +++ b/src/query/service/src/sql/planner/optimizer/m_expr.rs @@ -21,9 +21,9 @@ use crate::sql::optimizer::pattern_extractor::PatternExtractor; use crate::sql::optimizer::rule::RulePtr; use crate::sql::optimizer::rule::TransformState; use crate::sql::optimizer::SExpr; +use crate::sql::planner::IndexType; use crate::sql::plans::Operator; use crate::sql::plans::RelOperator; -use crate::sql::IndexType; /// `MExpr` is abbreviation of multiple expression, which is the representation of relational /// expressions inside `Memo`. diff --git a/src/query/service/src/sql/optimizer/memo.rs b/src/query/service/src/sql/planner/optimizer/memo.rs similarity index 99% rename from src/query/service/src/sql/optimizer/memo.rs rename to src/query/service/src/sql/planner/optimizer/memo.rs index 82506ccc68097..6e2637caddcce 100644 --- a/src/query/service/src/sql/optimizer/memo.rs +++ b/src/query/service/src/sql/planner/optimizer/memo.rs @@ -22,8 +22,8 @@ use super::RelationalProperty; use crate::sql::optimizer::group::Group; use crate::sql::optimizer::m_expr::MExpr; use crate::sql::optimizer::s_expr::SExpr; +use crate::sql::planner::IndexType; use crate::sql::plans::RelOperator; -use crate::sql::IndexType; /// `Memo` is a search space which memoize possible plans of a query. /// The plans inside `Memo` are organized with `Group`s. diff --git a/src/query/service/src/sql/optimizer/mod.rs b/src/query/service/src/sql/planner/optimizer/mod.rs similarity index 100% rename from src/query/service/src/sql/optimizer/mod.rs rename to src/query/service/src/sql/planner/optimizer/mod.rs diff --git a/src/query/service/src/sql/optimizer/pattern_extractor.rs b/src/query/service/src/sql/planner/optimizer/pattern_extractor.rs similarity index 100% rename from src/query/service/src/sql/optimizer/pattern_extractor.rs rename to src/query/service/src/sql/planner/optimizer/pattern_extractor.rs diff --git a/src/query/service/src/sql/optimizer/property/builder.rs b/src/query/service/src/sql/planner/optimizer/property/builder.rs similarity index 100% rename from src/query/service/src/sql/optimizer/property/builder.rs rename to src/query/service/src/sql/planner/optimizer/property/builder.rs diff --git a/src/query/service/src/sql/optimizer/property/enforcer.rs b/src/query/service/src/sql/planner/optimizer/property/enforcer.rs similarity index 100% rename from src/query/service/src/sql/optimizer/property/enforcer.rs rename to src/query/service/src/sql/planner/optimizer/property/enforcer.rs diff --git a/src/query/service/src/sql/optimizer/property/mod.rs b/src/query/service/src/sql/planner/optimizer/property/mod.rs similarity index 98% rename from src/query/service/src/sql/optimizer/property/mod.rs rename to src/query/service/src/sql/planner/optimizer/property/mod.rs index c84621dd9eec9..50ee01045e186 100644 --- a/src/query/service/src/sql/optimizer/property/mod.rs +++ b/src/query/service/src/sql/planner/optimizer/property/mod.rs @@ -21,7 +21,7 @@ use std::collections::HashSet; pub use builder::RelExpr; pub use enforcer::require_property; -use crate::sql::common::IndexType; +use crate::sql::planner::IndexType; use crate::sql::plans::Scalar; pub type ColumnSet = HashSet; diff --git a/src/query/service/src/sql/optimizer/property/stat.rs b/src/query/service/src/sql/planner/optimizer/property/stat.rs similarity index 100% rename from src/query/service/src/sql/optimizer/property/stat.rs rename to src/query/service/src/sql/planner/optimizer/property/stat.rs diff --git a/src/query/service/src/sql/optimizer/rule/factory.rs b/src/query/service/src/sql/planner/optimizer/rule/factory.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/factory.rs rename to src/query/service/src/sql/planner/optimizer/rule/factory.rs diff --git a/src/query/service/src/sql/optimizer/rule/mod.rs b/src/query/service/src/sql/planner/optimizer/rule/mod.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/mod.rs rename to src/query/service/src/sql/planner/optimizer/rule/mod.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/mod.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/mod.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/mod.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/mod.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_eliminate_eval_scalar.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_eliminate_eval_scalar.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_eliminate_eval_scalar.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_eliminate_eval_scalar.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_eliminate_filter.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_eliminate_filter.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_eliminate_filter.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_eliminate_filter.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_eliminate_project.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_eliminate_project.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_eliminate_project.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_eliminate_project.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_fold_count_aggregate.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_fold_count_aggregate.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_fold_count_aggregate.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_fold_count_aggregate.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_merge_eval_scalar.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_merge_eval_scalar.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_merge_eval_scalar.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_merge_eval_scalar.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_merge_filter.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_merge_filter.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_merge_filter.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_merge_filter.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_merge_project.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_merge_project.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_merge_project.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_merge_project.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_normalize_disjunctive_filter.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_normalize_disjunctive_filter.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_normalize_disjunctive_filter.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_normalize_disjunctive_filter.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_normalize_scalar.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_normalize_scalar.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_normalize_scalar.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_normalize_scalar.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_filter_eval_scalar.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_filter_eval_scalar.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_filter_eval_scalar.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_filter_eval_scalar.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_filter_join.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_filter_join.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_filter_join.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_filter_join.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_filter_project.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_filter_project.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_filter_project.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_filter_project.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_filter_scan.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_filter_scan.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_filter_scan.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_filter_scan.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_limit_join.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_limit_join.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_limit_join.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_limit_join.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_limit_project.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_limit_project.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_limit_project.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_limit_project.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_limit_scan.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_limit_scan.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_limit_scan.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_limit_scan.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_limit_sort.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_limit_sort.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_limit_sort.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_limit_sort.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_sort_scan.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_sort_scan.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_push_down_sort_scan.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_push_down_sort_scan.rs diff --git a/src/query/service/src/sql/optimizer/rule/rewrite/rule_split_aggregate.rs b/src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_split_aggregate.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rewrite/rule_split_aggregate.rs rename to src/query/service/src/sql/planner/optimizer/rule/rewrite/rule_split_aggregate.rs diff --git a/src/query/service/src/sql/optimizer/rule/rule_implement_get.rs b/src/query/service/src/sql/planner/optimizer/rule/rule_implement_get.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rule_implement_get.rs rename to src/query/service/src/sql/planner/optimizer/rule/rule_implement_get.rs diff --git a/src/query/service/src/sql/optimizer/rule/rule_implement_hash_join.rs b/src/query/service/src/sql/planner/optimizer/rule/rule_implement_hash_join.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rule_implement_hash_join.rs rename to src/query/service/src/sql/planner/optimizer/rule/rule_implement_hash_join.rs diff --git a/src/query/service/src/sql/optimizer/rule/rule_set.rs b/src/query/service/src/sql/planner/optimizer/rule/rule_set.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/rule_set.rs rename to src/query/service/src/sql/planner/optimizer/rule/rule_set.rs diff --git a/src/query/service/src/sql/optimizer/rule/transform/mod.rs b/src/query/service/src/sql/planner/optimizer/rule/transform/mod.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/transform/mod.rs rename to src/query/service/src/sql/planner/optimizer/rule/transform/mod.rs diff --git a/src/query/service/src/sql/optimizer/rule/transform/rule_commute_join.rs b/src/query/service/src/sql/planner/optimizer/rule/transform/rule_commute_join.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/transform/rule_commute_join.rs rename to src/query/service/src/sql/planner/optimizer/rule/transform/rule_commute_join.rs diff --git a/src/query/service/src/sql/optimizer/rule/transform/rule_left_associate_join.rs b/src/query/service/src/sql/planner/optimizer/rule/transform/rule_left_associate_join.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/transform/rule_left_associate_join.rs rename to src/query/service/src/sql/planner/optimizer/rule/transform/rule_left_associate_join.rs diff --git a/src/query/service/src/sql/optimizer/rule/transform/rule_right_associate_join.rs b/src/query/service/src/sql/planner/optimizer/rule/transform/rule_right_associate_join.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/transform/rule_right_associate_join.rs rename to src/query/service/src/sql/planner/optimizer/rule/transform/rule_right_associate_join.rs diff --git a/src/query/service/src/sql/optimizer/rule/transform/util.rs b/src/query/service/src/sql/planner/optimizer/rule/transform/util.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/transform/util.rs rename to src/query/service/src/sql/planner/optimizer/rule/transform/util.rs diff --git a/src/query/service/src/sql/optimizer/rule/transform_state.rs b/src/query/service/src/sql/planner/optimizer/rule/transform_state.rs similarity index 100% rename from src/query/service/src/sql/optimizer/rule/transform_state.rs rename to src/query/service/src/sql/planner/optimizer/rule/transform_state.rs diff --git a/src/query/service/src/sql/optimizer/s_expr.rs b/src/query/service/src/sql/planner/optimizer/s_expr.rs similarity index 89% rename from src/query/service/src/sql/optimizer/s_expr.rs rename to src/query/service/src/sql/planner/optimizer/s_expr.rs index 6eade3bb927ac..918570fff057f 100644 --- a/src/query/service/src/sql/optimizer/s_expr.rs +++ b/src/query/service/src/sql/planner/optimizer/s_expr.rs @@ -18,24 +18,24 @@ use common_exception::Result; use super::RelationalProperty; use crate::sql::optimizer::rule::AppliedRules; use crate::sql::optimizer::rule::RuleID; +use crate::sql::planner::IndexType; use crate::sql::plans::Operator; use crate::sql::plans::PatternPlan; use crate::sql::plans::RelOp; use crate::sql::plans::RelOperator; -use crate::sql::IndexType; /// `SExpr` is abbreviation of single expression, which is a tree of relational operators. #[derive(Clone, Debug)] pub struct SExpr { - pub(super) plan: RelOperator, - pub(super) children: Vec, + pub(in crate::sql) plan: RelOperator, + pub(in crate::sql) children: Vec, - pub(super) original_group: Option, - pub(super) rel_prop: Option>, + pub(in crate::sql) original_group: Option, + pub(in crate::sql) rel_prop: Option>, /// A bitmap to record applied rules on current SExpr, to prevent /// redundant transformations. - pub(super) applied_rules: AppliedRules, + pub(in crate::sql) applied_rules: AppliedRules, } impl SExpr { @@ -139,12 +139,12 @@ impl SExpr { } /// Record the applied rule id in current SExpr - pub(super) fn apply_rule(&mut self, rule_id: &RuleID) { + pub(in crate::sql) fn apply_rule(&mut self, rule_id: &RuleID) { self.applied_rules.set(rule_id, true); } /// Check if a rule is applied for current SExpr - pub(super) fn applied_rule(&self, rule_id: &RuleID) -> bool { + pub(in crate::sql) fn applied_rule(&self, rule_id: &RuleID) -> bool { self.applied_rules.get(rule_id) } } diff --git a/src/query/service/src/sql/optimizer/util.rs b/src/query/service/src/sql/planner/optimizer/util.rs similarity index 100% rename from src/query/service/src/sql/optimizer/util.rs rename to src/query/service/src/sql/planner/optimizer/util.rs diff --git a/src/query/service/src/sql/planner/plans/eval_scalar.rs b/src/query/service/src/sql/planner/plans/eval_scalar.rs index c28441033fe43..b499f2b118013 100644 --- a/src/query/service/src/sql/planner/plans/eval_scalar.rs +++ b/src/query/service/src/sql/planner/plans/eval_scalar.rs @@ -19,13 +19,13 @@ use crate::sql::optimizer::PhysicalProperty; use crate::sql::optimizer::RelExpr; use crate::sql::optimizer::RelationalProperty; use crate::sql::optimizer::RequiredProperty; +use crate::sql::planner::IndexType; use crate::sql::plans::LogicalOperator; use crate::sql::plans::Operator; use crate::sql::plans::PhysicalOperator; use crate::sql::plans::RelOp; use crate::sql::plans::Scalar; use crate::sql::plans::ScalarExpr; -use crate::sql::IndexType; /// Evaluate scalar expression #[derive(Clone, Debug, PartialEq, Eq, Hash)] diff --git a/src/query/service/src/sql/planner/plans/hash_join.rs b/src/query/service/src/sql/planner/plans/hash_join.rs index 03fa4a65e2c6a..e892dca735d75 100644 --- a/src/query/service/src/sql/planner/plans/hash_join.rs +++ b/src/query/service/src/sql/planner/plans/hash_join.rs @@ -19,12 +19,12 @@ use crate::sql::optimizer::Distribution; use crate::sql::optimizer::PhysicalProperty; use crate::sql::optimizer::RelExpr; use crate::sql::optimizer::RequiredProperty; +use crate::sql::planner::IndexType; use crate::sql::plans::LogicalOperator; use crate::sql::plans::Operator; use crate::sql::plans::PhysicalOperator; use crate::sql::plans::RelOp; use crate::sql::plans::Scalar; -use crate::sql::IndexType; #[derive(Clone, Debug, PartialEq, Eq, Hash)] pub struct PhysicalHashJoin { diff --git a/src/query/service/src/sql/planner/plans/logical_get.rs b/src/query/service/src/sql/planner/plans/logical_get.rs index 0f3599f947809..d3d38b58cf05e 100644 --- a/src/query/service/src/sql/planner/plans/logical_get.rs +++ b/src/query/service/src/sql/planner/plans/logical_get.rs @@ -19,13 +19,13 @@ use itertools::Itertools; use crate::sql::optimizer::ColumnSet; use crate::sql::optimizer::RelExpr; use crate::sql::optimizer::RelationalProperty; +use crate::sql::planner::IndexType; use crate::sql::plans::LogicalOperator; use crate::sql::plans::Operator; use crate::sql::plans::PhysicalOperator; use crate::sql::plans::RelOp; use crate::sql::plans::Scalar; use crate::sql::plans::SortItem; -use crate::sql::IndexType; #[derive(Clone, Debug, PartialEq, Eq)] pub struct Prewhere { diff --git a/src/query/service/src/sql/planner/plans/logical_join.rs b/src/query/service/src/sql/planner/plans/logical_join.rs index 3529fb558456a..c67a4113e8d70 100644 --- a/src/query/service/src/sql/planner/plans/logical_join.rs +++ b/src/query/service/src/sql/planner/plans/logical_join.rs @@ -20,12 +20,12 @@ use common_exception::Result; use super::ScalarExpr; use crate::sql::optimizer::RelExpr; use crate::sql::optimizer::RelationalProperty; +use crate::sql::planner::IndexType; use crate::sql::plans::LogicalOperator; use crate::sql::plans::Operator; use crate::sql::plans::PhysicalOperator; use crate::sql::plans::RelOp; use crate::sql::plans::Scalar; -use crate::sql::IndexType; #[derive(Clone, Debug, Eq, PartialEq, Hash, serde::Serialize, serde::Deserialize)] pub enum JoinType { diff --git a/src/query/service/src/sql/planner/plans/physical_scan.rs b/src/query/service/src/sql/planner/plans/physical_scan.rs index d8d239d5aa020..64ac64b4e9f84 100644 --- a/src/query/service/src/sql/planner/plans/physical_scan.rs +++ b/src/query/service/src/sql/planner/plans/physical_scan.rs @@ -23,13 +23,13 @@ use crate::sql::optimizer::Distribution; use crate::sql::optimizer::PhysicalProperty; use crate::sql::optimizer::RelExpr; use crate::sql::optimizer::RequiredProperty; +use crate::sql::planner::IndexType; use crate::sql::plans::LogicalOperator; use crate::sql::plans::Operator; use crate::sql::plans::PhysicalOperator; use crate::sql::plans::RelOp; use crate::sql::plans::Scalar; use crate::sql::plans::SortItem; -use crate::sql::IndexType; #[derive(Clone, Debug, PartialEq, Eq)] pub struct PhysicalScan { diff --git a/src/query/service/src/sql/planner/plans/scalar.rs b/src/query/service/src/sql/planner/plans/scalar.rs index 54325060a6871..7a909222a6ba5 100644 --- a/src/query/service/src/sql/planner/plans/scalar.rs +++ b/src/query/service/src/sql/planner/plans/scalar.rs @@ -25,7 +25,7 @@ use common_functions::scalars::FunctionFactory; use crate::sql::binder::ColumnBinding; use crate::sql::optimizer::ColumnSet; use crate::sql::optimizer::SExpr; -use crate::sql::IndexType; +use crate::sql::planner::IndexType; pub trait ScalarExpr { /// Get return type and nullability diff --git a/src/query/service/src/sql/planner/plans/sort.rs b/src/query/service/src/sql/planner/plans/sort.rs index eb0b38b2dac1c..b8e690f5ed14e 100644 --- a/src/query/service/src/sql/planner/plans/sort.rs +++ b/src/query/service/src/sql/planner/plans/sort.rs @@ -19,11 +19,11 @@ use crate::sql::optimizer::PhysicalProperty; use crate::sql::optimizer::RelExpr; use crate::sql::optimizer::RelationalProperty; use crate::sql::optimizer::RequiredProperty; +use crate::sql::planner::IndexType; use crate::sql::plans::LogicalOperator; use crate::sql::plans::Operator; use crate::sql::plans::PhysicalOperator; use crate::sql::plans::RelOp; -use crate::sql::IndexType; #[derive(Clone, Debug, PartialEq, Eq, Hash)] pub struct Sort {