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

Add basic optimizer support for virtual columns

Details

    Description

      This MDEV covers basic optimizer support for virtual columns added in 11.8.

      If a user declares a virtual column and an index on it

      ALTER TABLE t1
        ADD COLUMN vcol INT AS (col1+1),
        ADD INDEX idx1(vcol);
      

      and then a query uses the exact same expression:

      SELECT * FROM t1 WHERE col1+1 <= 100
      

      Then the optimizer will rewrite the above into

      ... WHERE vcol <= 100
      

      which enables the rest of the optimizer to construct query plans that use index idx1.

      The rewrite is performed in WHERE/ON clauses (and only there).
      The rewrite targets indexed virtual columns.
      The rewrite targets a subset of conditions usable by the range optimizer:

      vcol_expr $CMP const1 where $CMP is = or [less|greater][or equal].
      vcol_expr BETWEEN const1 AND const2
      vcol_expr IN (const-list)
      vcol_expr IS [NOT] NULL
      

      Attachments

        Issue Links

          Activity

            psergei Sergei Petrunia created issue -
            psergei Sergei Petrunia made changes -
            Field Original Value New Value
            Component/s Optimizer [ 10200 ]
            psergei Sergei Petrunia made changes -
            Labels optimizer-feature
            psergei Sergei Petrunia made changes -
            Fix Version/s 11.8 [ 29921 ]
            psergei Sergei Petrunia made changes -
            Assignee Sergei Petrunia [ psergey ]
            psergei Sergei Petrunia made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            psergei Sergei Petrunia made changes -
            Status In Progress [ 3 ] In Testing [ 10301 ]
            psergei Sergei Petrunia made changes -
            psergei Sergei Petrunia made changes -
            Assignee Sergei Petrunia [ psergey ] Lena Startseva [ JIRAUSER50478 ]
            psergei Sergei Petrunia made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            psergei Sergei Petrunia made changes -
            psergei Sergei Petrunia made changes -
            serg Sergei Golubchik made changes -
            alice Alice Sherepa made changes -
            Assignee Lena Startseva [ JIRAUSER50478 ] Alice Sherepa [ alice ]
            psergei Sergei Petrunia made changes -
            Labels optimizer-feature optimizer-feature virtual_columns
            alice Alice Sherepa made changes -
            alice Alice Sherepa made changes -
            Assignee Alice Sherepa [ alice ] Sergei Petrunia [ psergey ]
            Status In Testing [ 10301 ] Stalled [ 10000 ]
            psergei Sergei Petrunia made changes -
            Fix Version/s 11.8.1 [ 29961 ]
            Fix Version/s 11.8 [ 29921 ]
            Resolution Fixed [ 1 ]
            Status Stalled [ 10000 ] Closed [ 6 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Labels optimizer-feature virtual_columns Preview_11.8 optimizer-feature virtual_columns
            elenst Elena Stepanova made changes -
            johan.wikman Johan Wikman made changes -
            psergei Sergei Petrunia made changes -

            People

              psergei Sergei Petrunia
              psergei Sergei Petrunia
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

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