mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-07-04 04:50:37 +00:00
* fix(query): push down join filters before MergeScan Signed-off-by: discord9 <discord9@163.com> * fix(query): run optimizer before MergeScan pushdown Signed-off-by: discord9 <discord9@163.com> * fix(query): narrow pre-MergeScan filter pushdown Signed-off-by: discord9 <discord9@163.com> * fix(query): refine pre-MergeScan optimizer prepass Signed-off-by: discord9 <discord9@163.com> * fix(query): satisfy predicate extractor clippy Signed-off-by: discord9 <discord9@163.com> * test(query): cover pre-MergeScan optimizer edges Signed-off-by: discord9 <discord9@163.com> * test(query): cover set comparison prepass Signed-off-by: discord9 <discord9@163.com> * fix(query): guard remote scan filter pushdown Signed-off-by: discord9 <discord9@163.com> * fix(query): preserve subquery planning errors Signed-off-by: discord9 <discord9@163.com> * fix(query): preserve usable scan predicates Signed-off-by: discord9 <discord9@163.com> * fix(query): simplify scan predicate extraction Signed-off-by: discord9 <discord9@163.com> * fix(query): keep scan filter extraction scoped Signed-off-by: discord9 <discord9@163.com> * docs(query): explain pre-MergeScan optimizer Signed-off-by: discord9 <discord9@163.com> --------- Signed-off-by: discord9 <discord9@163.com>
62 lines
2.3 KiB
Plaintext
62 lines
2.3 KiB
Plaintext
SELECT * FROM (SELECT SUM(number) FROM numbers LIMIT 100000000000) LIMIT 0;
|
|
|
|
++
|
|
++
|
|
|
|
EXPLAIN SELECT * FROM (SELECT SUM(number) FROM numbers LIMIT 100000000000) LIMIT 0;
|
|
|
|
+---------------+-------------------------------------------------------------------------------+
|
|
| plan_type | plan |
|
|
+---------------+-------------------------------------------------------------------------------+
|
|
| logical_plan | MergeScan [is_placeholder=false, remote_input=[ |
|
|
| | Limit: skip=0, fetch=0 |
|
|
| | Projection: sum(numbers.number) |
|
|
| | Limit: skip=0, fetch=100000000000 |
|
|
| | Projection: sum(numbers.number) |
|
|
| | Aggregate: groupBy=[[]], aggr=[[sum(CAST(numbers.number AS UInt64))]] |
|
|
| | TableScan: numbers |
|
|
| | ]] |
|
|
| physical_plan | EmptyExec |
|
|
| | |
|
|
+---------------+-------------------------------------------------------------------------------+
|
|
|
|
EXPLAIN SELECT * FROM (SELECT SUM(number) FROM numbers LIMIT 100000000000) WHERE 1=0;
|
|
|
|
+---------------+-----------------------+
|
|
| plan_type | plan |
|
|
+---------------+-----------------------+
|
|
| logical_plan | EmptyRelation: rows=0 |
|
|
| physical_plan | EmptyExec |
|
|
| | |
|
|
+---------------+-----------------------+
|
|
|
|
CREATE TABLE test (a TIMESTAMP TIME INDEX, b INTEGER);
|
|
|
|
Affected Rows: 0
|
|
|
|
INSERT INTO test VALUES (11, 23), (12, 21), (13, 22);
|
|
|
|
Affected Rows: 3
|
|
|
|
SELECT a FROM test LIMIT 1;
|
|
|
|
+-------------------------+
|
|
| a |
|
|
+-------------------------+
|
|
| 1970-01-01T00:00:00.011 |
|
|
+-------------------------+
|
|
|
|
SELECT b FROM test ORDER BY b LIMIT 2 OFFSET 0;
|
|
|
|
+----+
|
|
| b |
|
|
+----+
|
|
| 21 |
|
|
| 22 |
|
|
+----+
|
|
|
|
DROP TABLE test;
|
|
|
|
Affected Rows: 0
|
|
|