[Fix](inverted index) fix fast execute condition for vexpr (#35673)

This commit is contained in:
airborne12
2024-06-01 08:23:01 +08:00
committed by yiguolei
parent 8df1a3c849
commit f67bd4b03b
5 changed files with 130 additions and 1 deletions

View File

@ -112,7 +112,8 @@ Status VectorizedFnCall::prepare(RuntimeState* state, const RowDescriptor& desc,
}
VExpr::register_function_context(state, context);
_function_name = _fn.name.function_name;
_can_fast_execute = _function->can_fast_execute();
_can_fast_execute = _function->can_fast_execute() && _children.size() == 2 &&
_children[0]->is_slot_ref() && _children[1]->is_literal();
_prepare_finished = true;
return Status::OK();
}

View File

@ -134,6 +134,7 @@ public:
TypeDescriptor type() { return _type; }
bool is_slot_ref() const { return _node_type == TExprNodeType::SLOT_REF; }
virtual bool is_literal() const { return false; }
TExprNodeType::type node_type() const { return _node_type; }

View File

@ -55,6 +55,8 @@ public:
const ColumnPtr& get_column_ptr() const { return _column_ptr; }
bool is_literal() const override { return true; }
protected:
ColumnPtr _column_ptr;
std::string _expr_name;

View File

@ -0,0 +1,19 @@
-- This file is automatically generated. You should know what you did if you want to edit this
-- !select_bug_2 --
2023-12-10 2024-01-08
2023-12-15 2023-12-13
2023-12-15 2023-12-14
2023-12-17 2025-02-18
2023-12-18 2023-12-14
2023-12-18 2024-02-18
2023-12-20 2023-12-09
2024-02-18 2023-12-13
2024-02-18 2025-02-17
2025-02-18 2024-01-08
2025-06-18 2023-12-10
2025-06-18 2023-12-14
2025-06-18 2023-12-15
2025-06-18 2026-01-18
2027-01-09 2023-12-19
2027-01-09 2024-01-08

File diff suppressed because one or more lines are too long