#pragma once #include #include namespace DB { struct IAccessEntity; using AccessEntityPtr = std::shared_ptr; /** Return all queries for creating access entities and grants. */ class InterpreterShowAccessQuery : public IInterpreter, WithContext { public: InterpreterShowAccessQuery(const ASTPtr & query_ptr_, ContextPtr context_) : WithContext(context_), query_ptr(query_ptr_) {} BlockIO execute() override; bool ignoreQuota() const override { return true; } bool ignoreLimits() const override { return true; } private: BlockInputStreamPtr executeImpl() const; ASTs getCreateAndGrantQueries() const; std::vector getEntities() const; ASTPtr query_ptr; }; }