Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

db_verify::getIndex(): Support index_col_name optional parts #5055

Merged
merged 1 commit into from
Aug 17, 2023

Commits on Aug 17, 2023

  1. db_verify::getIndex(): Support index_col_name optional parts

    In the MariaDB `CREATE TABLE` [`index_definition`](https://mariadb.com/kb/en/create-table/#index-definitions),
     the `index_col_name` could have an optional length and a sort order:
    
    ```
    index_definition:
        {INDEX|KEY} [index_name] [index_type] (index_col_name,...) [index_option] ...
      {{{|}}} {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...) [index_option] ...
      {{{|}}} [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) [index_option] ...
      {{{|}}} [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...) [index_option] ...
      {{{|}}} [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) reference_definition
    
    index_col_name:
        col_name [(length)] [ASC | DESC]
    
    index_type:
        USING {BTREE | HASH | RTREE}
    
    index_option:
        [ KEY_BLOCK_SIZE [=] value
      {{{|}}} index_type
      {{{|}}} WITH PARSER parser_name
      {{{|}}} COMMENT 'string'
      {{{|}}} CLUSTERING={YES| NO} ]
      [ IGNORED | NOT IGNORED ]
    
    reference_definition:
        REFERENCES tbl_name (index_col_name,...)
          [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]
          [ON DELETE reference_option]
          [ON UPDATE reference_option]
    
    reference_option:
        RESTRICT | CASCADE | SET NULL | NO ACTION
    ```
    
    `db_verify::getIndex()` didn't handle this possibility, leading to a
    database validity check failure despite the index actually existing.
    
    Fixes: e107inc#5054
    Deltik committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    b623868 View commit details
    Browse the repository at this point in the history