#pragma once #include #include #include #include #include namespace DB { /** Запрос USE db */ class ParserUseQuery : public IParserBase { protected: const char * getName() const { return "USE query"; } bool parseImpl(Pos & pos, Pos end, ASTPtr & node, 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, expected)) return false; ws.ignore(pos, end); if (!name_p.parse(pos, end, database, expected)) return false; ws.ignore(pos, end); ASTUseQuery * query = new ASTUseQuery(StringRange(begin, pos)); node = query; query->database = typeid_cast(*database).name; return true; } }; }