-- Minimal repro for histogram quantile over multi-partition input. create table histogram_gap_bucket ( ts timestamp time index, le string, shard string, val double, primary key (shard, le) ) partition on columns (shard) ( shard < 'n', shard >= 'n' ); insert into histogram_gap_bucket values (0, '0.5', 'a', 1), (0, '1', 'a', 2), (0, '+Inf', 'a', 2), (0, '0.5', 'z', 2), (0, '1', 'z', 4), (0, '+Inf', 'z', 4), (10000, '0.5', 'a', 1), (10000, '1', 'a', 2), (10000, '+Inf', 'a', 2), (10000, '0.5', 'z', 1), (10000, '1', 'z', 3), (10000, '+Inf', 'z', 3); -- Ensure the physical plan keeps the required repartition/order before folding buckets. -- SQLNESS REPLACE (metrics.*) REDACTED -- SQLNESS REPLACE (peers.*) REDACTED -- SQLNESS REPLACE region=\d+\(\d+,\s+\d+\) region=REDACTED -- SQLNESS REPLACE (-+) - -- SQLNESS REPLACE (\s\s+) _ -- SQLNESS REPLACE Hash\(\[ts@1\],.* Hash([ts@1],REDACTED -- SQLNESS REPLACE Hash\(\[le@0,\sts@1\],.* Hash([le@0, ts@1],REDACTED tql analyze (0, 10, '10s') histogram_quantile(0.5, sum by (le) (histogram_gap_bucket)); -- SQLNESS SORT_RESULT 2 1 tql eval (0, 10, '10s') histogram_quantile(0.5, sum by (le) (histogram_gap_bucket)); drop table histogram_gap_bucket;