Uploaded image for project: 'MariaDB ColumnStore'
  1. MariaDB ColumnStore
  2. MCOL-4779

Invalid extent ranges for short character columns

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 6.1.1
    • Fix Version/s: 6.1.1
    • Component/s: None
    • Labels:
    • Sprint:
      2021-9

      Description

      Extent ranges are invalid for short character columns. Here is the failing scenario:

      MariaDB [test]> create table t1 (a char(5))engine=columnstore;
      Query OK, 0 rows affected (0.405 sec)
       
      MariaDB [test]> insert into t1 values ('abc'), ('xyz');
      Query OK, 2 rows affected (0.200 sec)
      Records: 2  Duplicates: 0  Warnings: 0
       
      MariaDB [test]> select * from t1;
      +------+
      | a    |
      +------+
      | abc  |
      | xyz  |
      +------+
      2 rows in set (0.041 sec)
       
      MariaDB [test]> select calshowpartitionsbyvalue('t1', 'a', 'aa', 'zz');
      ERROR 1815 (HY000): Internal error: IDB-2040: No partition found for the given value range.
      MariaDB [test]> select c.table_schema, c.table_name, c.column_name, e.min_value, e.max_value from information_schema.columnstore_extents e, information_schema.columnstore_columns c where c.table_schema='test' and c.table_name='t1' and c.column_name='a' and c.object_id=e.object_id;
      +--------------+------------+-------------+-----------+-----------+
      | table_schema | table_name | column_name | min_value | max_value |
      +--------------+------------+-------------+-----------+-----------+
      | test         | t1         | a           |      NULL |      NULL |
      +--------------+------------+-------------+-----------+-----------+
      1 row in set (0.029 sec)
      

      As can be seen, the last 2 queries show the extent ranges are invalid. Correct output for the last 2 queries should be:

      MariaDB [test]> select calshowpartitionsbyvalue('t1', 'a', 'aa', 'zz');
      +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
      | calshowpartitionsbyvalue('t1', 'a', 'aa', 'zz')                                                                                                              |
      +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
      | Part#     Min                           Max                           Status
        0.0.1     abc                           xyz                           Enabled |
      +--------------------------------------------------------------------------------------------------------------------------------------------------------------+
      1 row in set (0.001 sec)
       
      MariaDB [test]> select c.table_schema, c.table_name, c.column_name, e.min_value, e.max_value from information_schema.columnstore_extents e, information_schema.columnstore_columns c where c.table_schema='test' and c.table_name='t1' and c.column_name='a' and c.object_id=e.object_id;
      +--------------+------------+-------------+-----------+-----------+
      | table_schema | table_name | column_name | min_value | max_value |
      +--------------+------------+-------------+-----------+-----------+
      | test         | t1         | a           |   6513249 |   8026488 |
      +--------------+------------+-------------+-----------+-----------+
      1 row in set (0.031 sec)
      

      This is a performance regression since for queries with certain WHERE predicates, the extents should be eliminated but they will be incorrectly scanned as they are invalid.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              dleeyh Daniel Lee
              Reporter:
              tntnatbry Gagan Goel
              Votes:
              0 Vote for this issue
              Watchers:
              4 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.