fix: filter doesn't consider default values after schema change (#5912)

* test: sqlness test case

* feat: use correct default while pruning row groups

* fix: consider default in SimpleFilterContext

* test: update sqlness test

* test: add order by
This commit is contained in:
Yingwen
2025-04-21 14:32:26 +08:00
committed by GitHub
parent 9df493988b
commit 56f319a707
5 changed files with 171 additions and 29 deletions

View File

@@ -6,19 +6,56 @@ INSERT INTO test VALUES (1, 1), (2, 2);
Affected Rows: 2
ADMIN FLUSH_TABLE('test');
+---------------------------+
| ADMIN FLUSH_TABLE('test') |
+---------------------------+
| 0 |
+---------------------------+
ALTER TABLE test MODIFY COLUMN i SET INVERTED INDEX;
Affected Rows: 0
INSERT INTO test VALUES (3, 3), (4, 4);
Affected Rows: 2
ALTER TABLE test ADD COLUMN k INTEGER DEFAULT 3;
Affected Rows: 0
SELECT * FROM test;
SELECT * FROM test order by j;
+---+-------------------------+---+
| i | j | k |
+---+-------------------------+---+
| 1 | 1970-01-01T00:00:00.001 | 3 |
| 2 | 1970-01-01T00:00:00.002 | 3 |
| 3 | 1970-01-01T00:00:00.003 | 3 |
| 4 | 1970-01-01T00:00:00.004 | 3 |
+---+-------------------------+---+
SELECT * FROM test where k != 3;
++
++
ALTER TABLE test ADD COLUMN host STRING DEFAULT '' PRIMARY KEY;
Affected Rows: 0
SELECT * FROM test where host != '';
++
++
SELECT * FROM test where host != '' AND i = 3;
++
++
DROP TABLE test;
Affected Rows: 0

View File

@@ -2,8 +2,22 @@ CREATE TABLE test(i INTEGER, j TIMESTAMP TIME INDEX);
INSERT INTO test VALUES (1, 1), (2, 2);
ADMIN FLUSH_TABLE('test');
ALTER TABLE test MODIFY COLUMN i SET INVERTED INDEX;
INSERT INTO test VALUES (3, 3), (4, 4);
ALTER TABLE test ADD COLUMN k INTEGER DEFAULT 3;
SELECT * FROM test;
SELECT * FROM test order by j;
SELECT * FROM test where k != 3;
ALTER TABLE test ADD COLUMN host STRING DEFAULT '' PRIMARY KEY;
SELECT * FROM test where host != '';
SELECT * FROM test where host != '' AND i = 3;
DROP TABLE test;