MCPcopy Create free account
hub / github.com/duckdb/duckdb / ParseGroupByList

Method ParseGroupByList

src/parser/parser.cpp:620–634  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

618}
619
620GroupByNode Parser::ParseGroupByList(const string &group_by, ParserOptions options) {
621 // construct a mock SELECT query with our group_by expressions
622 string mock_query = StringUtil::Format("SELECT 42 GROUP BY %s", group_by);
623 // parse the query
624 Parser parser(options);
625 parser.ParseQuery(mock_query);
626 // check the result
627 if (parser.statements.size() != 1 || parser.statements[0]->type != StatementType::SELECT_STATEMENT) {
628 throw ParserException("Expected a single SELECT statement");
629 }
630 auto &select = parser.statements[0]->Cast<SelectStatement>();
631 D_ASSERT(select.node->type == QueryNodeType::SELECT_NODE);
632 auto &select_node = select.node->Cast<SelectNode>();
633 return std::move(select_node.groups);
634}
635
636vector<OrderByNode> Parser::ParseOrderList(const string &select_list, ParserOptions options) {
637 // construct a mock query

Callers

nothing calls this directly

Calls 3

ParserExceptionClass · 0.85
ParseQueryMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected