INNER CODE UNIT · C++
data_type
epsilla-cloud/vectordb · engine/db/db_server.cpp:410
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");
size_t agg_size = agg_config.GetSize();
if (agg_size == 0) {
return Status(DB_UNEXPECTED_ERROR, "Aggregation is not specified.");
}