You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-29 08:21:15 +03:00
This is "productization" of an old code that would enable extent elimination for dictionary columns. This concrete patch enables it, fixes perfomance degradation (main problem with old code) and also fixes incorrect behavior of cpimport.
65 lines
2.4 KiB
Plaintext
65 lines
2.4 KiB
Plaintext
DROP DATABASE IF EXISTS MCOL4580;
|
|
CREATE DATABASE MCOL4580;
|
|
USE MCOL4580;
|
|
CREATE TABLE t(d TEXT) ENGINE=COLUMNSTORE;
|
|
INSERT INTO t(d) VALUES ('b'),('b'),('b');
|
|
SELECT CALSETTRACE(1);
|
|
CALSETTRACE(1)
|
|
0
|
|
SELECT COUNT(*) FROM t WHERE d = 'a';
|
|
COUNT(*)
|
|
0
|
|
SELECT REGEXP_SUBSTR(CALGETTRACE(1),'(BlocksTouched-[^;]*);') AS touched, REGEXP_SUBSTR(CALGETTRACE(1),'(PartitionBlocksEliminated-[^;]*);') AS eliminated;
|
|
touched eliminated
|
|
BlocksTouched-0; PartitionBlocksEliminated-1;
|
|
SELECT COUNT(*) FROM t WHERE d < 'b';
|
|
COUNT(*)
|
|
0
|
|
SELECT REGEXP_SUBSTR(CALGETTRACE(1),'(BlocksTouched-[^;]*);') AS touched, REGEXP_SUBSTR(CALGETTRACE(1),'(PartitionBlocksEliminated-[^;]*);') AS eliminated;
|
|
touched eliminated
|
|
BlocksTouched-3; PartitionBlocksEliminated-0;
|
|
SELECT COUNT(*) FROM t WHERE d > 'b';
|
|
COUNT(*)
|
|
0
|
|
SELECT REGEXP_SUBSTR(CALGETTRACE(1),'(BlocksTouched-[^;]*);') AS touched, REGEXP_SUBSTR(CALGETTRACE(1),'(PartitionBlocksEliminated-[^;]*);') AS eliminated;
|
|
touched eliminated
|
|
BlocksTouched-3; PartitionBlocksEliminated-0;
|
|
SELECT COUNT(*) FROM t WHERE d <= 'a';
|
|
COUNT(*)
|
|
0
|
|
SELECT REGEXP_SUBSTR(CALGETTRACE(1),'(BlocksTouched-[^;]*);') AS touched, REGEXP_SUBSTR(CALGETTRACE(1),'(PartitionBlocksEliminated-[^;]*);') AS eliminated;
|
|
touched eliminated
|
|
BlocksTouched-0; PartitionBlocksEliminated-1;
|
|
SELECT COUNT(*) FROM t WHERE d >= 'c';
|
|
COUNT(*)
|
|
0
|
|
SELECT REGEXP_SUBSTR(CALGETTRACE(1),'(BlocksTouched-[^;]*);') AS touched, REGEXP_SUBSTR(CALGETTRACE(1),'(PartitionBlocksEliminated-[^;]*);') AS eliminated;
|
|
touched eliminated
|
|
BlocksTouched-0; PartitionBlocksEliminated-1;
|
|
SELECT COUNT(*) FROM t WHERE d != 'b';
|
|
COUNT(*)
|
|
0
|
|
SELECT REGEXP_SUBSTR(CALGETTRACE(1),'(BlocksTouched-[^;]*);') AS touched, REGEXP_SUBSTR(CALGETTRACE(1),'(PartitionBlocksEliminated-[^;]*);') AS eliminated;
|
|
touched eliminated
|
|
BlocksTouched-0; PartitionBlocksEliminated-1;
|
|
INSERT INTO t SELECT * FROM t;
|
|
SELECT COUNT(*) FROM t WHERE d = 'b';
|
|
COUNT(*)
|
|
6
|
|
DROP TABLE t;
|
|
CREATE TABLE t (c TEXT CHARACTER SET utf8 COLLATE utf8_czech_ci) engine=columnstore;
|
|
INSERT INTO t(c) VALUES ('ch'), ('ch');
|
|
SELECT COUNT(*) FROM t WHERE c < 'cz';
|
|
COUNT(*)
|
|
0
|
|
SELECT REGEXP_SUBSTR(CALGETTRACE(1),'(BlocksTouched-[^;]*);') AS touched, REGEXP_SUBSTR(CALGETTRACE(1),'(PartitionBlocksEliminated-[^;]*);') AS eliminated;
|
|
touched eliminated
|
|
BlocksTouched-0; PartitionBlocksEliminated-1;
|
|
SELECT COUNT(*) FROM t WHERE c > 'cz';
|
|
COUNT(*)
|
|
2
|
|
SELECT COUNT(*) FROM t WHERE c = 'CH';
|
|
COUNT(*)
|
|
2
|
|
DROP DATABASE MCOL4580;
|