mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-05-16 21:10:38 +00:00
82 lines
2.3 KiB
SQL
82 lines
2.3 KiB
SQL
-- Regression test for `__tsid` optimization on non-aggregating PromQL queries.
|
|
-- The `__tsid` column must not affect operators that infer label columns from the input schema,
|
|
-- such as `histogram_quantile` (HistogramFold).
|
|
|
|
CREATE TABLE tsid_no_aggr_physical (
|
|
ts TIMESTAMP(3) TIME INDEX,
|
|
val DOUBLE,
|
|
) ENGINE = metric WITH ("physical_metric_table" = "");
|
|
|
|
CREATE TABLE tsid_no_aggr_metric (
|
|
job STRING NULL,
|
|
instance STRING NULL,
|
|
ts TIMESTAMP(3) NOT NULL,
|
|
val DOUBLE NULL,
|
|
TIME INDEX (ts),
|
|
PRIMARY KEY(job, instance),
|
|
)
|
|
ENGINE = metric
|
|
WITH(
|
|
on_physical_table = 'tsid_no_aggr_physical'
|
|
);
|
|
|
|
CREATE TABLE tsid_no_aggr_histogram_bucket (
|
|
job STRING NULL,
|
|
le STRING NULL,
|
|
ts TIMESTAMP(3) NOT NULL,
|
|
val DOUBLE NULL,
|
|
TIME INDEX (ts),
|
|
PRIMARY KEY(job, le),
|
|
)
|
|
ENGINE = metric
|
|
WITH(
|
|
on_physical_table = 'tsid_no_aggr_physical'
|
|
);
|
|
|
|
INSERT INTO tsid_no_aggr_metric VALUES
|
|
('job1', 'instance1', 0, 1),
|
|
('job1', 'instance1', 5000, 3),
|
|
('job1', 'instance1', 10000, 5);
|
|
|
|
INSERT INTO tsid_no_aggr_histogram_bucket VALUES
|
|
('job1', '1', 0, 1),
|
|
('job1', '2', 0, 2),
|
|
('job1', '+Inf', 0, 3),
|
|
('job1', '1', 5000, 2),
|
|
('job1', '2', 5000, 4),
|
|
('job1', '+Inf', 5000, 6),
|
|
('job1', '1', 10000, 3),
|
|
('job1', '2', 10000, 6),
|
|
('job1', '+Inf', 10000, 9);
|
|
|
|
-- Selector (no series merge)
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
TQL EVAL (0, 10, '5s') tsid_no_aggr_metric;
|
|
|
|
-- Scalar function (no series merge)
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
TQL EVAL (0, 10, '5s') abs(tsid_no_aggr_metric);
|
|
|
|
-- Range function (no series merge)
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
TQL EVAL (0, 10, '5s') avg_over_time(tsid_no_aggr_metric[5s]);
|
|
|
|
-- Histogram quantile must fold buckets across `le` even when `__tsid` exists.
|
|
-- The physical plan must not treat `__tsid` as a label column for HistogramFold.
|
|
-- SQLNESS REPLACE (metrics.*) REDACTED
|
|
-- SQLNESS REPLACE (RoundRobinBatch.*) REDACTED
|
|
-- SQLNESS REPLACE (-+) -
|
|
-- SQLNESS REPLACE (\s\s+) _
|
|
-- SQLNESS REPLACE (peers.*) REDACTED
|
|
-- SQLNESS REPLACE region=\d+\(\d+,\s+\d+\) region=REDACTED
|
|
-- SQLNESS REPLACE (Hash.*) REDACTED
|
|
TQL ANALYZE (0, 10, '5s') histogram_quantile(0.5, tsid_no_aggr_histogram_bucket);
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
TQL EVAL (0, 10, '5s') histogram_quantile(0.5, tsid_no_aggr_histogram_bucket);
|
|
|
|
DROP TABLE tsid_no_aggr_histogram_bucket;
|
|
DROP TABLE tsid_no_aggr_metric;
|
|
DROP TABLE tsid_no_aggr_physical;
|
|
|