INNER CODE UNIT · C++
status
epsilla-cloud/vectordb · engine/db/db_server.cpp:406
Status status = vectordb::query::expr::Expr::ParseNodeFromStr(expr, nodes, table->field_name_field_type_map_, false);
if (!status.ok()) {
return status;
}
auto data_type = nodes[nodes.size() - 1]->value_type;
if (data_type == vectordb::query::expr::ValueType::INT ||
data_type == vectordb::query::expr::ValueType::DOUBLE ||
data_type == vectordb::query::expr::ValueType::STRING ||
data_type == vectordb::query::expr::ValueType::BOOL) {
groupby_expr_nodes.emplace_back(nodes);
} else {
return Status(DB_UNEXPECTED_ERROR, "Group by expression must be int, double, bool, or string.");
}
}
std::vector<std::string> agg_exprs;
std::vector<vectordb::query::expr::NodeType> agg_types;
std::vector<std::vector<query::expr::ExprNodePtr>> agg_expr_nodes;
auto agg_config = facet_config.GetArray("aggregate");