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

Implement EXPLAIN for DDL such as ALTER TABLE

Details

    Description

      It would be useful if EXPLAIN supported ALTER TABLE and/or other DDL statements.

      For example, something like this:

      EXPLAIN ALTER TABLE tab ADD COLUMN c varchar(50), ALGORITHM=INPLACE;
      

      And probably also something like this:

      EXPLAIN EXTENDED ALTER TABLE tab ADD COLUMN c varchar(50), ALGORITHM=INPLACE;
      

      The output should probably include:

      • What algorithm will be used (i.e. COPY, INPLACE, NOCOPY, INSTANT).
      • Whether the table will be rebuilt.
      • Whether the table will be locked.
      • If the table is locked, what kind of lock will be used.
      • Whether the table's ROW_FORMAT will be changed.
      • For InnoDB, whether the table will use the non-canonical format that is required to implement some instant alter operations.
      • For InnoDB, whether the table will be in the system tablespace or in a file-per-table tablespace.

      The more basic pieces of information could probably be output by EXPLAIN, and the more detailed pieces of information could probably be output by EXPLAIN EXTENDED.

      Attachments

        Issue Links

          Activity

            GeoffMontee Geoff Montee (Inactive) created issue -
            GeoffMontee Geoff Montee (Inactive) made changes -
            Field Original Value New Value
            Description It would be useful if EXPLAIN supported ALTER TABLE and/or other DDL statements. i.e. so that something like this would work:

            {noformat}
            ALTER TABLE tab ADD COLUMN c varchar(50), ALGORITHM=INPLACE;
            {noformat}

            The output should probably include:

            * What algorithm will be used (i.e. COPY, INPLACE, NOCOPY, INSTANT).
            * Whether the table will be rebuilt.
            * Whether the table will be locked.
            * If the table is locked, what kind of lock will be used.
            * Whether the table's ROW_FORMAT will be changed.
            * For InnoDB, whether the table will use the non-canonical format that is required to implement some instant alter operations.
            * For InnoDB, whether the table will be in the system tablespace or in a file-per-table tablespace.
            It would be useful if EXPLAIN supported ALTER TABLE and/or other DDL statements.

            For example, something like this:

            {noformat}
            EXPLAIN ALTER TABLE tab ADD COLUMN c varchar(50), ALGORITHM=INPLACE;
            {noformat}

            And probably also something like this:

            {noformat}
            EXPLAIN EXTENDED ALTER TABLE tab ADD COLUMN c varchar(50), ALGORITHM=INPLACE;
            {noformat}

            The output should probably include:

            * What algorithm will be used (i.e. COPY, INPLACE, NOCOPY, INSTANT).
            * Whether the table will be rebuilt.
            * Whether the table will be locked.
            * If the table is locked, what kind of lock will be used.
            * Whether the table's ROW_FORMAT will be changed.
            * For InnoDB, whether the table will use the non-canonical format that is required to implement some instant alter operations.
            * For InnoDB, whether the table will be in the system tablespace or in a file-per-table tablespace.

            The more basic pieces of information could probably be output by {{EXPLAIN}}, and the more detailed pieces of information could probably be output by {{EXPLAIN EXTENDED}}.
            GeoffMontee Geoff Montee (Inactive) made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            Component/s Data Definition - Alter Table [ 14927 ]
            Component/s Data Definition - Alter Table [ 10114 ]
            Key MDEV-20508 MENT-404
            Project MariaDB Server [ 10000 ] MariaDB Enterprise [ 11500 ]
            julien.fritsch Julien Fritsch made changes -
            Issue Type Task [ 3 ] New Feature [ 2 ]
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 99458 ] MariaDB v4 [ 135778 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Component/s Data Definition - Alter Table [ 10114 ]
            Component/s Data Definition - Alter Table [ 14927 ]
            Key MENT-404 MDEV-30340
            Issue Type New Feature [ 2 ] Task [ 3 ]
            Project MariaDB Enterprise [ 11500 ] MariaDB Server [ 10000 ]
            julien.fritsch Julien Fritsch made changes -
            Labels synchronization
            julien.fritsch Julien Fritsch made changes -
            Labels synchronization
            julien.fritsch Julien Fritsch made changes -
            Issue Type Task [ 3 ] New Feature [ 2 ]
            midenok Aleksey Midenkov made changes -
            alessandro.vetere Alessandro Vetere made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -

            People

              ralf.gebhardt Ralf Gebhardt
              GeoffMontee Geoff Montee (Inactive)
              Votes:
              2 Vote for this issue
              Watchers:
              5 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.