#include #include #include #include #include #include namespace DB { bool ParserUseQuery::parseImpl(Pos & pos, Pos end, ASTPtr & node, Pos & max_parsed_pos, Expected & expected) { Pos begin = pos; ParserWhitespaceOrComments ws; ParserString s_use("USE", true, true); ParserIdentifier name_p; ASTPtr database; ws.ignore(pos, end); if (!s_use.ignore(pos, end, max_parsed_pos, expected)) return false; ws.ignore(pos, end); if (!name_p.parse(pos, end, database, max_parsed_pos, expected)) return false; ws.ignore(pos, end); auto query = std::make_shared(StringRange(begin, pos)); query->database = typeid_cast(*database).name; node = query; return true; } }