#pragma once #include #include #include namespace DB { class ASTGrantQuery; struct User; struct Role; class InterpreterGrantQuery : public IInterpreter, WithMutableContext { public: InterpreterGrantQuery(const ASTPtr & query_ptr_, ContextMutablePtr context_) : WithMutableContext(context_), query_ptr(query_ptr_) {} BlockIO execute() override; static void updateUserFromQuery(User & user, const ASTGrantQuery & query); static void updateRoleFromQuery(Role & role, const ASTGrantQuery & query); private: ASTPtr query_ptr; }; }