#pragma once #include #include #include namespace DB { class Context; class ASTShowCreateAccessEntityQuery; struct IAccessEntity; /** Returns a single item containing a statement which could be used to create a specified role. */ class InterpreterShowCreateAccessEntityQuery : public IInterpreter { public: InterpreterShowCreateAccessEntityQuery(const ASTPtr & query_ptr_, const Context & context_) : query_ptr(query_ptr_), context(context_) {} BlockIO execute() override; bool ignoreQuota() const override { return true; } bool ignoreLimits() const override { return true; } static ASTPtr getAttachQuery(const IAccessEntity & entity); private: BlockInputStreamPtr executeImpl(); ASTPtr getCreateQuery(const ASTShowCreateAccessEntityQuery & show_query) const; ASTPtr query_ptr; const Context & context; }; }