#pragma once #include #include namespace DB { class ASTSystemQuery : public IAST { public: enum class Type { _UNKNOWN, SHUTDOWN, KILL, DROP_DNS_CACHE, DROP_MARK_CACHE, DROP_UNCOMPRESSED_CACHE, STOP_LISTEN_QUERIES, START_LISTEN_QUERIES, RESTART_REPLICAS, SYNC_REPLICA, RELOAD_DICTIONARY, RELOAD_DICTIONARIES, STOP_MERGES, START_MERGES, STOP_REPLICATION_QUEUES, START_REPLICATION_QUEUES, _END }; static const char * typeToString(Type type); Type type = Type::_UNKNOWN; String target_dictionary; //String target_replica; ASTSystemQuery() = default; explicit ASTSystemQuery(const StringRange range) : IAST(range) {} String getID() const override { return "SYSTEM"; }; ASTPtr clone() const override { return std::make_shared(*this); } ~ASTSystemQuery() override = default; protected: void formatImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const override { settings.ostr << (settings.hilite ? hilite_keyword : "") << "SYSTEM " << (settings.hilite ? hilite_none : ""); } }; }