[Fix](inverted index) fix fast execute condition for vexpr (#35673)
This commit is contained in:
@ -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();
|
||||
}
|
||||
|
||||
@ -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; }
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
Reference in New Issue
Block a user