[Chore](materialized-view) add ssb_flat mv test case (#20869)

add ssb_flat mv test case
This commit is contained in:
Pxl
2023-06-19 10:51:50 +08:00
committed by GitHub
parent f44d2cf296
commit 85c5d7c6a9
13 changed files with 477 additions and 49 deletions

View File

@ -56,17 +56,18 @@ namespace doris::vectorized {
const std::string AGG_STATE_SUFFIX = "_state";
VectorizedFnCall::VectorizedFnCall(const TExprNode& node) : VExpr(node) {}
VectorizedFnCall::VectorizedFnCall(const TExprNode& node) : VExpr(node) {
_expr_name = fmt::format("VectorizedFnCall[{}](arguments={},return={})", _fn.name.function_name,
get_child_names(), _data_type->get_name());
}
Status VectorizedFnCall::prepare(RuntimeState* state, const RowDescriptor& desc,
VExprContext* context) {
RETURN_IF_ERROR_OR_PREPARED(VExpr::prepare(state, desc, context));
ColumnsWithTypeAndName argument_template;
argument_template.reserve(_children.size());
std::vector<std::string_view> child_expr_name;
for (auto child : _children) {
argument_template.emplace_back(nullptr, child->data_type(), child->expr_name());
child_expr_name.emplace_back(child->expr_name());
}
if (_fn.binary_type == TFunctionBinaryType::RPC) {
@ -106,17 +107,12 @@ Status VectorizedFnCall::prepare(RuntimeState* state, const RowDescriptor& desc,
_fn.name.function_name, argument_template, _data_type, state->be_exec_version());
}
if (_function == nullptr) {
std::string type_str;
for (auto arg : argument_template) {
type_str = type_str + " " + arg.type->get_name();
}
return Status::InternalError(
"Function {} is not implemented, input param type is {}, "
"Function {} get failed, expr is {} "
"and return type is {}.",
_fn.name.function_name, type_str, _data_type->get_name());
_fn.name.function_name, _expr_name, _data_type->get_name());
}
VExpr::register_function_context(state, context);
_expr_name = fmt::format("{}({})", _fn.name.function_name, child_expr_name);
_function_name = _fn.name.function_name;
_can_fast_execute = _function->can_fast_execute();