Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-8094

sql_yacc.yy: get rid of the rules "opt_if_not_exists_table_element" and "opt_if_exists_table_element"

    Details

      Description

      This is a clean-up task that can be easily done after MDEV-8093.

      There are two pairs of very similar rules:

      • opt_if_exists vs opt_if_exists_table_element
      • opt_if_not_exists vs opt_if_not_exists_table_element

      which all handle IF EXISTS and IF NOT EXISTS clauses.

      The "opt_if_xxx_table_element" rules use Lex->check_exists as a storage and are used in column and key context of ALTER TABLE:

      ALTER TABLE t1 DROP INDEX IF EXISTS f1;

      The "opt_if_xxx" rules are based on DDL_options_st and used in a schema object context:

      CREATE TABLE IF NOT EXISTS t1 (a int);
      DROP FUNCTION IF EXISTS f1;

      We'll modify sql_yacc.yy to use the DDL_options_st based rules in all contexts and will get rid of:

      • The "opt_if_exists_table_element" rule
      • The "opt_if_not_exists_table_element" rule
      • The "check_exists" member in LEX.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                bar Alexander Barkov
                Reporter:
                bar Alexander Barkov
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated: