mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-05-30 11:50:38 +00:00
fix: disable field pruning in last non null mode (#4740)
* fix: don't prune fields in last non null mode * test: add sqlness test for field pruning * test: add flush * refine implementation Signed-off-by: Ruihang Xia <waynestxia@gmail.com> --------- Signed-off-by: Ruihang Xia <waynestxia@gmail.com> Co-authored-by: Ruihang Xia <waynestxia@gmail.com>
This commit is contained in:
69
tests/cases/standalone/common/select/prune_field.result
Normal file
69
tests/cases/standalone/common/select/prune_field.result
Normal file
@@ -0,0 +1,69 @@
|
||||
CREATE TABLE IF NOT EXISTS prune_field (
|
||||
ts TIMESTAMP TIME INDEX,
|
||||
tag UInt16,
|
||||
a UInt8,
|
||||
b UInt8,
|
||||
PRIMARY KEY (tag)) ENGINE = mito WITH('merge_mode'='last_non_null');
|
||||
|
||||
Affected Rows: 0
|
||||
|
||||
insert into prune_field(ts, tag, a, b) values(0, 1, 1, null);
|
||||
|
||||
Affected Rows: 1
|
||||
|
||||
admin flush_table('prune_field');
|
||||
|
||||
+----------------------------------+
|
||||
| ADMIN flush_table('prune_field') |
|
||||
+----------------------------------+
|
||||
| 0 |
|
||||
+----------------------------------+
|
||||
|
||||
insert into prune_field(ts, tag, a, b) values(0, 1, null, 1);
|
||||
|
||||
Affected Rows: 1
|
||||
|
||||
admin flush_table('prune_field');
|
||||
|
||||
+----------------------------------+
|
||||
| ADMIN flush_table('prune_field') |
|
||||
+----------------------------------+
|
||||
| 0 |
|
||||
+----------------------------------+
|
||||
|
||||
select * from prune_field where a = 1;
|
||||
|
||||
+---------------------+-----+---+---+
|
||||
| ts | tag | a | b |
|
||||
+---------------------+-----+---+---+
|
||||
| 1970-01-01T00:00:00 | 1 | 1 | 1 |
|
||||
+---------------------+-----+---+---+
|
||||
|
||||
select * from prune_field where b = 1;
|
||||
|
||||
+---------------------+-----+---+---+
|
||||
| ts | tag | a | b |
|
||||
+---------------------+-----+---+---+
|
||||
| 1970-01-01T00:00:00 | 1 | 1 | 1 |
|
||||
+---------------------+-----+---+---+
|
||||
|
||||
select * from prune_field;
|
||||
|
||||
+---------------------+-----+---+---+
|
||||
| ts | tag | a | b |
|
||||
+---------------------+-----+---+---+
|
||||
| 1970-01-01T00:00:00 | 1 | 1 | 1 |
|
||||
+---------------------+-----+---+---+
|
||||
|
||||
select * from prune_field where a = 1 and b = 1;
|
||||
|
||||
+---------------------+-----+---+---+
|
||||
| ts | tag | a | b |
|
||||
+---------------------+-----+---+---+
|
||||
| 1970-01-01T00:00:00 | 1 | 1 | 1 |
|
||||
+---------------------+-----+---+---+
|
||||
|
||||
drop table prune_field;
|
||||
|
||||
Affected Rows: 0
|
||||
|
||||
24
tests/cases/standalone/common/select/prune_field.sql
Normal file
24
tests/cases/standalone/common/select/prune_field.sql
Normal file
@@ -0,0 +1,24 @@
|
||||
CREATE TABLE IF NOT EXISTS prune_field (
|
||||
ts TIMESTAMP TIME INDEX,
|
||||
tag UInt16,
|
||||
a UInt8,
|
||||
b UInt8,
|
||||
PRIMARY KEY (tag)) ENGINE = mito WITH('merge_mode'='last_non_null');
|
||||
|
||||
insert into prune_field(ts, tag, a, b) values(0, 1, 1, null);
|
||||
|
||||
admin flush_table('prune_field');
|
||||
|
||||
insert into prune_field(ts, tag, a, b) values(0, 1, null, 1);
|
||||
|
||||
admin flush_table('prune_field');
|
||||
|
||||
select * from prune_field where a = 1;
|
||||
|
||||
select * from prune_field where b = 1;
|
||||
|
||||
select * from prune_field;
|
||||
|
||||
select * from prune_field where a = 1 and b = 1;
|
||||
|
||||
drop table prune_field;
|
||||
Reference in New Issue
Block a user