File tree Expand file tree Collapse file tree 3 files changed +7
-5
lines changed
sql/src/planner/optimizer/optimizers/common_subexpression
storages/fuse/src/operations/read Expand file tree Collapse file tree 3 files changed +7
-5
lines changed Original file line number Diff line number Diff line change @@ -26,7 +26,7 @@ use crate::plans::MaterializedCTERef;
2626use crate :: plans:: RelOperator ;
2727pub fn analyze_common_subexpression (
2828 s_expr : & SExpr ,
29- metadata : & Metadata ,
29+ metadata : & mut Metadata ,
3030) -> Result < ( Vec < SExprReplacement > , Vec < SExpr > ) > {
3131 // Skip CSE optimization if the expression contains recursive CTE
3232 if contains_recursive_cte ( s_expr) {
@@ -46,7 +46,7 @@ fn process_candidate_expressions(
4646 candidates : & [ ( Vec < usize > , SExpr ) ] ,
4747 replacements : & mut Vec < SExprReplacement > ,
4848 materialized_ctes : & mut Vec < SExpr > ,
49- _metadata : & Metadata ,
49+ metadata : & mut Metadata ,
5050) -> Result < ( ) > {
5151 if candidates. len ( ) < 2 {
5252 return Ok ( ( ) ) ;
@@ -60,6 +60,7 @@ fn process_candidate_expressions(
6060 new_scan. push_down_predicates = None ;
6161 new_scan. limit = None ;
6262 new_scan. order_by = None ;
63+ new_scan. scan_id = metadata. next_scan_id ( ) ;
6364 Arc :: new ( SExpr :: create_leaf ( Arc :: new ( RelOperator :: Scan ( new_scan) ) ) )
6465 } else {
6566 Arc :: new ( cte_def. clone ( ) )
Original file line number Diff line number Diff line change @@ -31,8 +31,9 @@ pub struct CommonSubexpressionOptimizer {
3131impl Optimizer for CommonSubexpressionOptimizer {
3232 async fn optimize ( & mut self , s_expr : & SExpr ) -> Result < SExpr > {
3333 let metadata = self . _opt_ctx . get_metadata ( ) ;
34- let metadata = metadata. read ( ) ;
35- let ( replacements, materialized_ctes) = analyze_common_subexpression ( s_expr, & metadata) ?;
34+ let mut metadata = metadata. write ( ) ;
35+ let ( replacements, materialized_ctes) =
36+ analyze_common_subexpression ( s_expr, & mut metadata) ?;
3637 rewrite_sexpr ( s_expr, replacements, materialized_ctes)
3738 }
3839
Original file line number Diff line number Diff line change @@ -140,7 +140,7 @@ impl DeserializeDataTransform {
140140 fn runtime_filter ( & mut self , data_block : DataBlock ) -> Result < Option < Bitmap > > {
141141 // Check if already cached runtime filters
142142 if self . cached_runtime_filter . is_none ( ) {
143- let bloom_filters = self . ctx . get_bloom_runtime_filter_with_id ( self . table_index ) ;
143+ let bloom_filters = self . ctx . get_bloom_runtime_filter_with_id ( self . scan_id ) ;
144144 let bloom_filters = bloom_filters
145145 . into_iter ( )
146146 . filter_map ( |filter| {
You can’t perform that action at this time.
0 commit comments