• Alexander Barkov's avatar
    MDEV-21689 Add Sql_cmd for GRANT/REVOKE statements · 77c63823
    Alexander Barkov authored
    Rewriting GRANT/REVOKE grammar to use more bison stack and use Sql_cmd_ style
    
    1. Removing a few members from LEX:
       - uint grant, grant_to_col, which_columns
       - List<LEX_COLUMN> columns
       - bool all_privileges
    2. Adding classes Grand_object_name, Lex_grant_object_name
    3. Adding classes Grand_privilege, Lex_grand_privilege
    4. Adding struct Lex_column_list_privilege_st, class Lex_column_list_privilege
    5. Rewriting the GRANT/REVOKE grammar to use new classes and pass them through
       bison stack (rather than directly access LEX members)
    6. Adding classes Sql_cmd_grant* and Sql_cmd_revoke*,
       changing GRANT/REVOKE to use LEX::m_sql_cmd.
    7. Adding the "sp_handler" grammar rule and removing some duplicate grammar
       for GRANT/REVOKE for different kinds of SP objects.
    8. Adding a new rule comma_separated_ident_list, reusing it in:
       - with_column_list
       - colum_list_privilege
    77c63823
sql_lex.cc 325 KB