#pragma once #include #include #include namespace DB { /** Query SHOW TABLES or SHOW DATABASES or SHOW CLUSTERS or SHOW CACHES */ class ASTShowTablesQuery : public ASTQueryWithOutput { public: bool databases = false; bool clusters = false; bool cluster = false; bool dictionaries = false; bool m_settings = false; bool changed = false; bool temporary = false; bool caches = false; bool full = false; String cluster_str; String from; String like; bool not_like = false; bool case_insensitive_like = false; ASTPtr where_expression; ASTPtr limit_length; String getID(char) const override { return "ShowTables"; } ASTPtr clone() const override; QueryKind getQueryKind() const override { return QueryKind::Show; } protected: void formatLike(const FormatSettings & settings) const; void formatLimit(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const; void formatQueryImpl(const FormatSettings & settings, FormatState &, FormatStateStacked) const override; }; }