mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-10-14 16:03:27 +00:00
* feat!: upgrade DataFusion dependencies to 55 Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * refactor: migrate DataFusion 55 APIs Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: preserve table function planning behavior Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: preserve PostgreSQL query compatibility Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: preserve distributed execution plan behavior Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: cover DataFusion 55 behavior regressions Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: update DataFusion 55 SQLness expectations Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: complete DataFusion 55 test API migration Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: address DataFusion 55 CI regressions Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: address remaining DataFusion 55 regressions Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: adapt latest base code to DataFusion 55 Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: normalize environment-specific DataFusion 55 plans Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: align final DataFusion 55 expectations Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: isolate DataFusion 55 regression cases Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: preserve empty result schema in timestamp widening Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: preserve JSON source column order Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * chore: use released DataFusion 55 integrations Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: adapt latest execution plan mock to DataFusion 55 Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: pin DataFusion recursive schema and date repairs Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix(promql): align dictionary temporality match keys Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: retain Greptime DataFusion fork behaviors on version 55 Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: restore ordinary function error expectations Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: refresh distributed count compatibility plan Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix(query): adapt last-row cast hint to DataFusion 55 Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: refresh instant last-row empty results for Arrow 59 Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * style: simplify DataFusion expression visitor imports Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: restore sorting and PostgreSQL column-order assertions Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix(function): restore primitive numeric coercion signatures Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * refactor(function): share geo integer signature types Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: cover timestamp widening overflow boundaries Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: fix decimal coercion regression imports Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix(function): preserve scalar count_hash NULL state semantics Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: simplify decimal clamp case type inference Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: retain historical count_hash wrapper result Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: restore timestamp widening equality and IN pruning Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: carry upstream aggregate dynamic filter correctness fix Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: carry upstream null and predicate simplification fixes Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: restore baseline JSON ordering expectations Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: restore histogram JSON ordering expectations Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: refresh empty PromQL range result schemas Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: align native timestamp plan with DF55 decimal display Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: refresh native timestamp SQLness results for DF55 Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: regenerate NULL sample empty result headers for DF55 Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: use DF55 child replacement API in timestamp regressions Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: expose pushed scan dynamic filters to DF55 producers Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: encode string-backed PostgreSQL OID aliases in binary results Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: verify REGPROC binary and text over PostgreSQL protocol Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: register real PostgreSQL catalogs in server fixtures Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: complete DF55 expression inventories for custom query plans Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: correct RangeSelect expression fixture and column identities Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * ci: wait for Kafka WAL helper deployment rollout Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * test: update custom storage empty result headers Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: require exact row counts in scan statistics Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> * fix: suppress deprecated partition_statistics warning in test Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> --------- Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com> Co-authored-by: Ning Sun <sunng@protonmail.com>
466 lines
15 KiB
Plaintext
466 lines
15 KiB
Plaintext
CREATE TABLE my_table (
|
|
a INT PRIMARY KEY,
|
|
b STRING,
|
|
ts TIMESTAMP TIME INDEX,
|
|
)
|
|
PARTITION ON COLUMNS (a) (
|
|
a < 1000,
|
|
a >= 1000 AND a < 2000,
|
|
a >= 2000
|
|
);
|
|
|
|
Affected Rows: 0
|
|
|
|
-- SQLNESS REPLACE (\d{13}) ID
|
|
SELECT table_catalog, table_schema, table_name, partition_name, partition_expression, partition_description, greptime_partition_id from information_schema.partitions WHERE table_name = 'my_table' ORDER BY table_catalog, table_schema, table_name, partition_name;
|
|
|
|
+---------------+--------------+------------+----------------+----------------------+------------------------+-----------------------+
|
|
| table_catalog | table_schema | table_name | partition_name | partition_expression | partition_description | greptime_partition_id |
|
|
+---------------+--------------+------------+----------------+----------------------+------------------------+-----------------------+
|
|
| greptime | public | my_table | p0 | a | a < 1000 | ID |
|
|
| greptime | public | my_table | p1 | a | a >= 1000 AND a < 2000 | ID |
|
|
| greptime | public | my_table | p2 | a | a >= 2000 | ID |
|
|
+---------------+--------------+------------+----------------+----------------------+------------------------+-----------------------+
|
|
|
|
-- SQLNESS REPLACE (\d{13}) REGION_ID
|
|
-- SQLNESS REPLACE (\d{1}) PEER_ID
|
|
SELECT region_id, peer_id, is_leader, status FROM information_schema.region_peers ORDER BY peer_id;
|
|
|
|
+---------------+---------+-----------+--------+
|
|
| region_id | peer_id | is_leader | status |
|
|
+---------------+---------+-----------+--------+
|
|
| REGION_ID | PEER_ID | Yes | ALIVE |
|
|
| REGION_ID | PEER_ID | Yes | ALIVE |
|
|
| REGION_ID | PEER_ID | Yes | ALIVE |
|
|
+---------------+---------+-----------+--------+
|
|
|
|
INSERT INTO my_table VALUES
|
|
(100, 'a', 1),
|
|
(200, 'b', 2),
|
|
(1100, 'c', 3),
|
|
(1200, 'd', 4),
|
|
(2000, 'e', 5),
|
|
(2100, 'f', 6),
|
|
(2200, 'g', 7),
|
|
(2400, 'h', 8);
|
|
|
|
Affected Rows: 8
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
SELECT * FROM my_table;
|
|
|
|
+------+---+-------------------------+
|
|
| a | b | ts |
|
|
+------+---+-------------------------+
|
|
| 100 | a | 1970-01-01T00:00:00.001 |
|
|
| 1100 | c | 1970-01-01T00:00:00.003 |
|
|
| 1200 | d | 1970-01-01T00:00:00.004 |
|
|
| 200 | b | 1970-01-01T00:00:00.002 |
|
|
| 2000 | e | 1970-01-01T00:00:00.005 |
|
|
| 2100 | f | 1970-01-01T00:00:00.006 |
|
|
| 2200 | g | 1970-01-01T00:00:00.007 |
|
|
| 2400 | h | 1970-01-01T00:00:00.008 |
|
|
+------+---+-------------------------+
|
|
|
|
DELETE FROM my_table WHERE a < 150;
|
|
|
|
Affected Rows: 1
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
SELECT * FROM my_table;
|
|
|
|
+------+---+-------------------------+
|
|
| a | b | ts |
|
|
+------+---+-------------------------+
|
|
| 1100 | c | 1970-01-01T00:00:00.003 |
|
|
| 1200 | d | 1970-01-01T00:00:00.004 |
|
|
| 200 | b | 1970-01-01T00:00:00.002 |
|
|
| 2000 | e | 1970-01-01T00:00:00.005 |
|
|
| 2100 | f | 1970-01-01T00:00:00.006 |
|
|
| 2200 | g | 1970-01-01T00:00:00.007 |
|
|
| 2400 | h | 1970-01-01T00:00:00.008 |
|
|
+------+---+-------------------------+
|
|
|
|
DELETE FROM my_table WHERE a < 2200 AND a > 1500;
|
|
|
|
Affected Rows: 2
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
SELECT * FROM my_table;
|
|
|
|
+------+---+-------------------------+
|
|
| a | b | ts |
|
|
+------+---+-------------------------+
|
|
| 1100 | c | 1970-01-01T00:00:00.003 |
|
|
| 1200 | d | 1970-01-01T00:00:00.004 |
|
|
| 200 | b | 1970-01-01T00:00:00.002 |
|
|
| 2200 | g | 1970-01-01T00:00:00.007 |
|
|
| 2400 | h | 1970-01-01T00:00:00.008 |
|
|
+------+---+-------------------------+
|
|
|
|
DELETE FROM my_table WHERE a < 2500;
|
|
|
|
Affected Rows: 5
|
|
|
|
SELECT * FROM my_table;
|
|
|
|
+---+---+----+
|
|
| a | b | ts |
|
|
+---+---+----+
|
|
+---+---+----+
|
|
|
|
DROP TABLE my_table;
|
|
|
|
Affected Rows: 0
|
|
|
|
CREATE TABLE my_table (
|
|
a INT PRIMARY KEY,
|
|
b STRING,
|
|
ts TIMESTAMP TIME INDEX,
|
|
)
|
|
PARTITION ON COLUMNS (a) ();
|
|
|
|
Affected Rows: 0
|
|
|
|
-- SQLNESS REPLACE (\d{13}) ID
|
|
SELECT table_catalog, table_schema, table_name, partition_name, partition_expression, greptime_partition_id from information_schema.partitions WHERE table_name = 'my_table' ORDER BY table_catalog, table_schema, table_name, partition_name;
|
|
|
|
+---------------+--------------+------------+----------------+----------------------+-----------------------+
|
|
| table_catalog | table_schema | table_name | partition_name | partition_expression | greptime_partition_id |
|
|
+---------------+--------------+------------+----------------+----------------------+-----------------------+
|
|
| greptime | public | my_table | p0 | a | ID |
|
|
+---------------+--------------+------------+----------------+----------------------+-----------------------+
|
|
|
|
-- SQLNESS REPLACE (\d{13}) REGION_ID
|
|
-- SQLNESS REPLACE (\d{1}) PEER_ID
|
|
SELECT region_id, peer_id, is_leader, status FROM information_schema.region_peers ORDER BY peer_id;
|
|
|
|
+---------------+---------+-----------+--------+
|
|
| region_id | peer_id | is_leader | status |
|
|
+---------------+---------+-----------+--------+
|
|
| REGION_ID | PEER_ID | Yes | ALIVE |
|
|
+---------------+---------+-----------+--------+
|
|
|
|
INSERT INTO my_table VALUES
|
|
(100, 'a', 1),
|
|
(200, 'b', 2),
|
|
(1100, 'c', 3),
|
|
(1200, 'd', 4),
|
|
(2000, 'e', 5),
|
|
(2100, 'f', 6),
|
|
(2200, 'g', 7),
|
|
(2400, 'h', 8);
|
|
|
|
Affected Rows: 8
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
SELECT * FROM my_table;
|
|
|
|
+------+---+-------------------------+
|
|
| a | b | ts |
|
|
+------+---+-------------------------+
|
|
| 100 | a | 1970-01-01T00:00:00.001 |
|
|
| 1100 | c | 1970-01-01T00:00:00.003 |
|
|
| 1200 | d | 1970-01-01T00:00:00.004 |
|
|
| 200 | b | 1970-01-01T00:00:00.002 |
|
|
| 2000 | e | 1970-01-01T00:00:00.005 |
|
|
| 2100 | f | 1970-01-01T00:00:00.006 |
|
|
| 2200 | g | 1970-01-01T00:00:00.007 |
|
|
| 2400 | h | 1970-01-01T00:00:00.008 |
|
|
+------+---+-------------------------+
|
|
|
|
DROP TABLE my_table;
|
|
|
|
Affected Rows: 0
|
|
|
|
-- incorrect partition rules
|
|
CREATE TABLE invalid_rule (
|
|
a INT PRIMARY KEY,
|
|
b STRING,
|
|
ts TIMESTAMP TIME INDEX,
|
|
)
|
|
PARTITION ON COLUMNS (a) (
|
|
a < 10,
|
|
a > 10 AND a < 20,
|
|
a >= 20
|
|
);
|
|
|
|
Error: 1004(InvalidArguments), Checkpoint `a=10` is not covered
|
|
|
|
CREATE TABLE invalid_rule2 (
|
|
a INT,
|
|
b STRING PRIMARY KEY,
|
|
ts TIMESTAMP TIME INDEX,
|
|
)
|
|
PARTITION ON COLUMNS (b) (
|
|
b < 'abc',
|
|
b >= 'abca' AND b < 'o',
|
|
b >= 'o',
|
|
);
|
|
|
|
Error: 1004(InvalidArguments), Checkpoint `b=abc` is not covered
|
|
|
|
CREATE TABLE invalid_rule3 (
|
|
a INT,
|
|
b STRING PRIMARY KEY,
|
|
ts TIMESTAMP TIME INDEX,
|
|
)
|
|
PARTITION ON COLUMNS (b) (
|
|
b >= 'a',
|
|
b <= 'o',
|
|
);
|
|
|
|
Error: 1004(InvalidArguments), Checkpoint `b=a` is overlapped
|
|
|
|
CREATE TABLE valid_rule (
|
|
a INT,
|
|
b STRING,
|
|
ts TIMESTAMP TIME INDEX,
|
|
PRIMARY KEY (a, b)
|
|
)
|
|
PARTITION ON COLUMNS (a, b) (
|
|
a < 10,
|
|
a = 10 AND b < 'a',
|
|
a = 10 AND b >= 'a' AND b < 'o',
|
|
a = 10 AND b >= 'o',
|
|
a > 10,
|
|
);
|
|
|
|
Affected Rows: 0
|
|
|
|
-- SQLNESS REPLACE (metrics.*) REDACTED
|
|
-- SQLNESS REPLACE (RoundRobinBatch.*) REDACTED
|
|
-- SQLNESS REPLACE (Hash.*) REDACTED
|
|
-- SQLNESS REPLACE (-+) -
|
|
-- SQLNESS REPLACE (\s\s+) _
|
|
-- SQLNESS REPLACE (peers.*) REDACTED
|
|
-- SQLNESS REPLACE region=\d+\(\d+,\s+\d+\) region=REDACTED
|
|
EXPLAIN ANALYZE SELECT * FROM valid_rule;
|
|
|
|
+-+-+-+
|
|
| stage | node | plan_|
|
|
+-+-+-+
|
|
| 0_| 0_|_CooperativeExec REDACTED
|
|
|_|_|_MergeScanExec: REDACTED
|
|
|_|_|_|
|
|
| 1_| 0_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
| 1_| 1_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
| 1_| 2_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
| 1_| 3_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
| 1_| 4_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
|_|_| Total rows: 0_|
|
|
+-+-+-+
|
|
|
|
-- SQLNESS REPLACE (metrics.*) REDACTED
|
|
-- SQLNESS REPLACE (RoundRobinBatch.*) REDACTED
|
|
-- SQLNESS REPLACE (Hash.*) REDACTED
|
|
-- SQLNESS REPLACE (-+) -
|
|
-- SQLNESS REPLACE (\s\s+) _
|
|
-- SQLNESS REPLACE (peers.*) REDACTED
|
|
-- SQLNESS REPLACE region=\d+\(\d+,\s+\d+\) region=REDACTED
|
|
EXPLAIN ANALYZE SELECT * FROM valid_rule
|
|
WHERE a < 10;
|
|
|
|
+-+-+-+
|
|
| stage | node | plan_|
|
|
+-+-+-+
|
|
| 0_| 0_|_CooperativeExec REDACTED
|
|
|_|_|_MergeScanExec: REDACTED
|
|
|_|_|_|
|
|
| 1_| 0_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
|_|_| Total rows: 0_|
|
|
+-+-+-+
|
|
|
|
-- SQLNESS REPLACE (metrics.*) REDACTED
|
|
-- SQLNESS REPLACE (RoundRobinBatch.*) REDACTED
|
|
-- SQLNESS REPLACE (Hash.*) REDACTED
|
|
-- SQLNESS REPLACE (-+) -
|
|
-- SQLNESS REPLACE (\s\s+) _
|
|
-- SQLNESS REPLACE (peers.*) REDACTED
|
|
-- SQLNESS REPLACE region=\d+\(\d+,\s+\d+\) region=REDACTED
|
|
EXPLAIN ANALYZE SELECT * FROM valid_rule
|
|
WHERE a = 10 AND b= 'z';
|
|
|
|
+-+-+-+
|
|
| stage | node | plan_|
|
|
+-+-+-+
|
|
| 0_| 0_|_CooperativeExec REDACTED
|
|
|_|_|_MergeScanExec: REDACTED
|
|
|_|_|_|
|
|
| 1_| 0_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
|_|_| Total rows: 0_|
|
|
+-+-+-+
|
|
|
|
-- SQLNESS REPLACE (metrics.*) REDACTED
|
|
-- SQLNESS REPLACE (RoundRobinBatch.*) REDACTED
|
|
-- SQLNESS REPLACE (Hash.*) REDACTED
|
|
-- SQLNESS REPLACE (-+) -
|
|
-- SQLNESS REPLACE (\s\s+) _
|
|
-- SQLNESS REPLACE (peers.*) REDACTED
|
|
-- SQLNESS REPLACE region=\d+\(\d+,\s+\d+\) region=REDACTED
|
|
EXPLAIN ANALYZE SELECT * FROM valid_rule
|
|
WHERE a = 10 OR b= 'z';
|
|
|
|
+-+-+-+
|
|
| stage | node | plan_|
|
|
+-+-+-+
|
|
| 0_| 0_|_CooperativeExec REDACTED
|
|
|_|_|_MergeScanExec: REDACTED
|
|
|_|_|_|
|
|
| 1_| 0_|_FilterExec: a@0 = 10 OR b@1 = z REDACTED
|
|
|_|_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
| 1_| 1_|_FilterExec: a@0 = 10 OR b@1 = z REDACTED
|
|
|_|_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
| 1_| 2_|_FilterExec: a@0 = 10 OR b@1 = z REDACTED
|
|
|_|_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
| 1_| 3_|_FilterExec: a@0 = 10 OR b@1 = z REDACTED
|
|
|_|_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
| 1_| 4_|_FilterExec: a@0 = 10 OR b@1 = z REDACTED
|
|
|_|_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
|_|_| Total rows: 0_|
|
|
+-+-+-+
|
|
|
|
-- SQLNESS REPLACE (metrics.*) REDACTED
|
|
-- SQLNESS REPLACE (RoundRobinBatch.*) REDACTED
|
|
-- SQLNESS REPLACE (Hash.*) REDACTED
|
|
-- SQLNESS REPLACE (-+) -
|
|
-- SQLNESS REPLACE (\s\s+) _
|
|
-- SQLNESS REPLACE (peers.*) REDACTED
|
|
-- SQLNESS REPLACE region=\d+\(\d+,\s+\d+\) region=REDACTED
|
|
EXPLAIN ANALYZE SELECT * FROM valid_rule
|
|
WHERE a = 10 OR ts > 1;
|
|
|
|
+-+-+-+
|
|
| stage | node | plan_|
|
|
+-+-+-+
|
|
| 0_| 0_|_CooperativeExec REDACTED
|
|
|_|_|_MergeScanExec: REDACTED
|
|
|_|_|_|
|
|
| 1_| 0_|_FilterExec: a@0 = 10 OR ts@2 > 1 REDACTED
|
|
|_|_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
| 1_| 1_|_FilterExec: a@0 = 10 OR ts@2 > 1 REDACTED
|
|
|_|_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
| 1_| 2_|_FilterExec: a@0 = 10 OR ts@2 > 1 REDACTED
|
|
|_|_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
| 1_| 3_|_FilterExec: a@0 = 10 OR ts@2 > 1 REDACTED
|
|
|_|_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
| 1_| 4_|_FilterExec: a@0 = 10 OR ts@2 > 1 REDACTED
|
|
|_|_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
|_|_| Total rows: 0_|
|
|
+-+-+-+
|
|
|
|
-- SQLNESS REPLACE (metrics.*) REDACTED
|
|
-- SQLNESS REPLACE (RoundRobinBatch.*) REDACTED
|
|
-- SQLNESS REPLACE (Hash.*) REDACTED
|
|
-- SQLNESS REPLACE (-+) -
|
|
-- SQLNESS REPLACE (\s\s+) _
|
|
-- SQLNESS REPLACE (peers.*) REDACTED
|
|
-- SQLNESS REPLACE region=\d+\(\d+,\s+\d+\) region=REDACTED
|
|
EXPLAIN ANALYZE SELECT * FROM valid_rule
|
|
WHERE a = 10 OR (ts > 1 AND b ='h');
|
|
|
|
+-+-+-+
|
|
| stage | node | plan_|
|
|
+-+-+-+
|
|
| 0_| 0_|_CooperativeExec REDACTED
|
|
|_|_|_MergeScanExec: REDACTED
|
|
|_|_|_|
|
|
| 1_| 0_|_FilterExec: a@0 = 10 OR ts@2 > 1 AND b@1 = h REDACTED
|
|
|_|_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
| 1_| 1_|_FilterExec: a@0 = 10 OR ts@2 > 1 AND b@1 = h REDACTED
|
|
|_|_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
| 1_| 2_|_FilterExec: a@0 = 10 OR ts@2 > 1 AND b@1 = h REDACTED
|
|
|_|_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
| 1_| 3_|_FilterExec: a@0 = 10 OR ts@2 > 1 AND b@1 = h REDACTED
|
|
|_|_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
| 1_| 4_|_FilterExec: a@0 = 10 OR ts@2 > 1 AND b@1 = h REDACTED
|
|
|_|_|_CooperativeExec REDACTED
|
|
|_|_|_SeqScan: region=REDACTED, "partition_count":{"count":0, "mem_ranges":0, "files":0, "file_ranges":0} REDACTED
|
|
|_|_|_|
|
|
|_|_| Total rows: 0_|
|
|
+-+-+-+
|
|
|
|
DROP TABLE valid_rule;
|
|
|
|
Affected Rows: 0
|
|
|
|
-- Issue https://github.com/GreptimeTeam/greptimedb/issues/4247
|
|
-- Partition rule with unary operator
|
|
CREATE TABLE `molestiAe` (
|
|
`sImiLiQUE` FLOAT NOT NULL,
|
|
`amEt` TIMESTAMP(6) TIME INDEX,
|
|
`EXpLICaBo` DOUBLE,
|
|
PRIMARY KEY (`sImiLiQUE`)
|
|
) PARTITION ON COLUMNS (`sImiLiQUE`) (
|
|
`sImiLiQUE` < -1,
|
|
`sImiLiQUE` >= -1 AND `sImiLiQUE` < -0,
|
|
`sImiLiQUE` >= 0
|
|
);
|
|
|
|
Affected Rows: 0
|
|
|
|
INSERT INTO `molestiAe` VALUES
|
|
(-2, 0, 0),
|
|
(-0.9, 0, 0),
|
|
(1, 0, 0);
|
|
|
|
Affected Rows: 3
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
SELECT * FROM `molestiAe`;
|
|
|
|
+-----------+---------------------+-----------+
|
|
| sImiLiQUE | amEt | EXpLICaBo |
|
|
+-----------+---------------------+-----------+
|
|
| -0.9 | 1970-01-01T00:00:00 | 0.0 |
|
|
| -2.0 | 1970-01-01T00:00:00 | 0.0 |
|
|
| 1.0 | 1970-01-01T00:00:00 | 0.0 |
|
|
+-----------+---------------------+-----------+
|
|
|
|
DROP TABLE `molestiAe`;
|
|
|
|
Affected Rows: 0
|
|
|