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"

    XMLWordPrintable

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

              Unassigned Unassigned
              bar Alexander Barkov
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.