mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-08-18 12:08:22 +00:00
764c93bf43
* fix(query): choose bounded CTE as hash join build side Signed-off-by: jeremyhi <fengjiachun@gmail.com> * perf(query): remove join estimate cap * test(compat): accept repartition in analyze plan Signed-off-by: jeremyhi <fengjiachun@gmail.com> --------- Signed-off-by: jeremyhi <fengjiachun@gmail.com>
47 lines
1.4 KiB
SQL
47 lines
1.4 KiB
SQL
-- Regression test for issue 6874: a bounded CTE derived from the same table
|
|
-- must become the hash-join build side in both standalone and distributed mode.
|
|
CREATE TABLE cte_join_logs (
|
|
ts TIMESTAMP TIME INDEX,
|
|
"db" STRING,
|
|
val DOUBLE,
|
|
) WITH (append_mode = 'true');
|
|
|
|
INSERT INTO cte_join_logs VALUES
|
|
('2024-01-01 00:00:00', 'a', 1.0),
|
|
('2024-01-01 00:00:01', 'a', 2.0),
|
|
('2024-01-01 00:00:02', 'b', 3.0),
|
|
('2024-01-01 00:00:03', 'b', 4.0),
|
|
('2024-01-01 00:00:04', 'c', 5.0),
|
|
('2024-01-01 00:00:05', 'c', 6.0);
|
|
|
|
-- Control: the plain Top-N aggregation should remain below MergeScan.
|
|
-- SQLNESS REPLACE (peers.*) REDACTED
|
|
-- SQLNESS REPLACE (partitioning.*) REDACTED
|
|
EXPLAIN SELECT "db", count(*) AS cnt
|
|
FROM cte_join_logs
|
|
GROUP BY "db"
|
|
ORDER BY cnt DESC
|
|
LIMIT 5;
|
|
|
|
-- SQLNESS REPLACE (peers.*) REDACTED
|
|
-- SQLNESS REPLACE (partitioning.*) REDACTED
|
|
EXPLAIN WITH top_dbs AS (
|
|
SELECT "db", count(*) AS cnt FROM cte_join_logs
|
|
GROUP BY "db" ORDER BY cnt DESC LIMIT 5
|
|
)
|
|
SELECT t."db", count(*) AS c
|
|
FROM cte_join_logs AS t
|
|
JOIN top_dbs td ON t."db" = td."db"
|
|
GROUP BY t."db" ORDER BY c DESC, t."db";
|
|
|
|
WITH top_dbs AS (
|
|
SELECT "db", count(*) AS cnt FROM cte_join_logs
|
|
GROUP BY "db" ORDER BY cnt DESC LIMIT 5
|
|
)
|
|
SELECT t."db", count(*) AS c
|
|
FROM cte_join_logs AS t
|
|
JOIN top_dbs td ON t."db" = td."db"
|
|
GROUP BY t."db" ORDER BY c DESC, t."db";
|
|
|
|
DROP TABLE cte_join_logs;
|