mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-06 21:32:58 +00:00
fix: put type rewrite optimizer rule at first (#337)
This commit is contained in:
@@ -5,6 +5,13 @@ use std::sync::{Arc, RwLock};
|
||||
use catalog::CatalogListRef;
|
||||
use common_function::scalars::aggregate::AggregateFunctionMetaRef;
|
||||
use common_query::prelude::ScalarUdf;
|
||||
use datafusion::optimizer::common_subexpr_eliminate::CommonSubexprEliminate;
|
||||
use datafusion::optimizer::eliminate_limit::EliminateLimit;
|
||||
use datafusion::optimizer::filter_push_down::FilterPushDown;
|
||||
use datafusion::optimizer::limit_push_down::LimitPushDown;
|
||||
use datafusion::optimizer::projection_push_down::ProjectionPushDown;
|
||||
use datafusion::optimizer::single_distinct_to_groupby::SingleDistinctToGroupBy;
|
||||
use datafusion::optimizer::to_approx_perc::ToApproxPerc;
|
||||
use datafusion::prelude::{ExecutionConfig, ExecutionContext};
|
||||
|
||||
use crate::datafusion::DfCatalogListAdapter;
|
||||
@@ -36,7 +43,18 @@ impl QueryEngineState {
|
||||
catalog::DEFAULT_CATALOG_NAME,
|
||||
catalog::DEFAULT_SCHEMA_NAME,
|
||||
)
|
||||
.add_optimizer_rule(Arc::new(TypeConversionRule {}));
|
||||
.with_optimizer_rules(vec![
|
||||
// TODO(hl): SimplifyExpressions is not exported.
|
||||
Arc::new(TypeConversionRule {}),
|
||||
// These are the default optimizer in datafusion
|
||||
Arc::new(CommonSubexprEliminate::new()),
|
||||
Arc::new(EliminateLimit::new()),
|
||||
Arc::new(ProjectionPushDown::new()),
|
||||
Arc::new(FilterPushDown::new()),
|
||||
Arc::new(LimitPushDown::new()),
|
||||
Arc::new(SingleDistinctToGroupBy::new()),
|
||||
Arc::new(ToApproxPerc::new()),
|
||||
]);
|
||||
|
||||
let df_context = ExecutionContext::with_config(config);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user