@@ -490,36 +490,38 @@ vector<unique_ptr<Expression>> ExtractFilterExpressions(const ColumnDefinition &
490490// Recursively updates column bindings in an index expression to match the current input projection,
491491// even if they are the child of a function or cast
492492void UpdateIndexExprColumnBindings (unique_ptr<Expression> &expr, const vector<column_t > &input_column_ids,
493- const vector<column_t > &indexed_columns) {
494- if (!expr) { return ; }
493+ const vector<column_t > &indexed_columns) {
494+ if (!expr) {
495+ return ;
496+ }
495497
496498 switch (expr->GetExpressionClass ()) {
497- case ExpressionClass::BOUND_COLUMN_REF: {
498- auto &bound_column_ref_expr = expr->Cast <BoundColumnRefExpression>();
499-
500- for (idx_t i=0 ; i < input_column_ids.size (); ++i) {
501- if (input_column_ids[i] == indexed_columns[0 ]) {
502- bound_column_ref_expr.binding .column_index = i;
503- break ;
504- }
499+ case ExpressionClass::BOUND_COLUMN_REF: {
500+ auto &bound_column_ref_expr = expr->Cast <BoundColumnRefExpression>();
501+
502+ for (idx_t i = 0 ; i < input_column_ids.size (); ++i) {
503+ if (input_column_ids[i] == indexed_columns[0 ]) {
504+ bound_column_ref_expr.binding .column_index = i;
505+ break ;
505506 }
506- break ;
507507 }
508- case ExpressionClass::BOUND_FUNCTION: {
509- auto &func_expr = expr-> Cast <BoundFunctionExpression>();
510- for ( auto &child : func_expr. children ) {
511- UpdateIndexExprColumnBindings (child, input_column_ids, indexed_columns );
512- }
513- break ;
508+ break ;
509+ }
510+ case ExpressionClass::BOUND_FUNCTION: {
511+ auto &func_expr = expr-> Cast <BoundFunctionExpression>( );
512+ for ( auto &child : func_expr. children ) {
513+ UpdateIndexExprColumnBindings (child, input_column_ids, indexed_columns) ;
514514 }
515- // TODO: never end up here, TableScanInitGlobal called without filters in input
516- // case ExpressionClass::BOUND_CAST: {
517- // auto &cast_expr = expr->Cast<BoundCastExpression>();
518- // UpdateIndexExprColumnBindings(cast_expr.child, input_column_ids, indexed_columns);
519- // break;
520- // }
521- default :
522- break ;
515+ break ;
516+ }
517+ // TODO: never end up here, TableScanInitGlobal called without filters in input
518+ // case ExpressionClass::BOUND_CAST: {
519+ // auto &cast_expr = expr->Cast<BoundCastExpression>();
520+ // UpdateIndexExprColumnBindings(cast_expr.child, input_column_ids, indexed_columns);
521+ // break;
522+ // }
523+ default :
524+ break ;
523525 }
524526}
525527
0 commit comments