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

Add char(>8) and double to feature extends elimination

    XMLWordPrintable

Details

    Description

      Extent exlimination works regarding
      https://mariadb.com/kb/en/library/columnstore-storage-architecture/

      "filter value is compared to the minimum and maximum values stored in each extent for the column: If the filter value is outside of a extent's min-max value range, the extent is eliminated."

      This is not the case for the datatypes char(>8) and double (+real)

      To Reproduce:

      Create Table

      create database `etest`;
       
      USE `etest`  ; 
      CREATE TABLE `etest` 
        ( 
           `e01`    int         , 
           `e02`    char(8)     , 
           `e03`    char(9)     , 
           `e04`    decimal     , 
           `e05`    double      , 
           `e06`    real        
      ) engine=columnstore;
       
      }
      

      Activate extends elimination with insert value and select col from table for every column.

      insert into `etest` (`e01`,`e02`,`e03`,`e04`,`e05`,`e06`) VALUES (1,'12345678','123456789',1.1,1.1,1.1);
       
      select `e01` from `etest` ;
      select `e02` from `etest` ;
      select `e03` from `etest` ;
      select `e04` from `etest` ;
      select `e05` from `etest` ;
      select `e06` from `etest` ;
       
      
      

      MariaDB [etest]> select ce.object_id,object_type,min_value,max_value,state,status,cc.data_type,cc.column_length from  `information_schema`.`COLUMNSTORE_EXTENTS`  ce left join   `information_schema`.`COLUMNSTORE_COLUMNS`  cc on ce.object_id = cc.object_id where cc.table_schema = 'etest' and cc.table_name = 'etest';
      +-----------+-------------+---------------------+---------------------+---------+-----------+-----------+---------------+
      | object_id | object_type | min_value           | max_value           | state   | status    | data_type | column_length |
      +-----------+-------------+---------------------+---------------------+---------+-----------+-----------+---------------+
      |      3023 | Column      |                   1 |                   1 | Valid   | Available | int       |             4 |
      |      3024 | Column      | 4050765991979987456 | 4050765991979987456 | Valid   | Available | char      |             8 |
      |      3025 | Column      |                NULL |                NULL | Invalid | Available | char      |             9 |
      |      3026 | Column      |                NULL |                NULL | Invalid | Available | decimal   |             8 |
      |      3027 | Column      |                NULL |                NULL | Invalid | Available | double    |             8 |
      |      3028 | Column      |                NULL |                NULL | Invalid | Available | double    |             8 |
      +-----------+-------------+---------------------+---------------------+---------+-----------+-----------+---------------+
      6 rows in set (0.06 sec)
      
      

      CHAR(8) and int will be recognized feature.

      CHAR(9) also double(real) even if column length is only 8.

      It would be nice and a performance bonus, if these datatypes will be included into the extents elimination feature.

      Richard

      Attachments

        Issue Links

          Activity

            People

              toddstoffel Todd Stoffel (Inactive)
              Richard Richard Stracke
              Votes:
              1 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.