Skip to content

Commit 612452a

Browse files
authored
Try row-by-row decompression if we consider startup cost (#9732)
This only makes sense for paths that don't have sorting above decompression, and don't use the batch sorted merge.
1 parent 18e3468 commit 612452a

35 files changed

Lines changed: 818 additions & 1101 deletions

.unreleased/row-by-row

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Implements: #9732 Speed up some queries with small LIMIT by switching to row-by-row query execution pipeline

tsl/src/nodes/columnar_scan/columnar_scan.c

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1490,6 +1490,10 @@ build_on_single_compressed_path(PlannerInfo *root, const Chunk *chunk, RelOptInf
14901490
*/
14911491
if (sort_info->use_compressed_sort)
14921492
{
1493+
ColumnarScanPath *columnar_scan_with_compressed_sort = NULL;
1494+
Path dummy_sort_path; /* dummy for result of cost_sort */
1495+
Path *compressed_path_for_cost = NULL;
1496+
14931497
if (pathkeys_contained_in(sort_info->required_compressed_pathkeys,
14941498
compressed_path->pathkeys))
14951499
{
@@ -1502,6 +1506,9 @@ build_on_single_compressed_path(PlannerInfo *root, const Chunk *chunk, RelOptInf
15021506
path->needs_sequence_num = sort_info->needs_sequence_num;
15031507
path->required_compressed_pathkeys = sort_info->required_compressed_pathkeys;
15041508
path->custom_path.path.pathkeys = sort_info->decompressed_sort_pathkeys;
1509+
1510+
columnar_scan_with_compressed_sort = path;
1511+
compressed_path_for_cost = linitial(path->custom_path.custom_paths);
15051512
}
15061513
else
15071514
{
@@ -1523,9 +1530,8 @@ build_on_single_compressed_path(PlannerInfo *root, const Chunk *chunk, RelOptInf
15231530
* creation. Examples of this in: create_merge_append_path &
15241531
* create_merge_append_plan
15251532
*/
1526-
Path sort_path; /* dummy for result of cost_sort */
15271533

1528-
cost_sort(&sort_path,
1534+
cost_sort(&dummy_sort_path,
15291535
root,
15301536
sort_info->required_compressed_pathkeys,
15311537
#if PG18_GE
@@ -1538,7 +1544,29 @@ build_on_single_compressed_path(PlannerInfo *root, const Chunk *chunk, RelOptInf
15381544
work_mem,
15391545
-1);
15401546

1541-
cost_columnar_scan(compression_info, path_copy, &sort_path);
1547+
cost_columnar_scan(compression_info, path_copy, &dummy_sort_path);
1548+
1549+
decompressed_paths = lappend(decompressed_paths, path_copy);
1550+
1551+
columnar_scan_with_compressed_sort = path_copy;
1552+
compressed_path_for_cost = &dummy_sort_path;
1553+
}
1554+
1555+
if (chunk_rel->consider_startup &&
1556+
columnar_scan_with_compressed_sort->enable_bulk_decompression)
1557+
{
1558+
/*
1559+
* Try a version with row-by-row decompression too, if the planner
1560+
* requests the paths with cheap startup. Typically it happens with
1561+
* ORDER BY + LIMIT. Row-by-row decompression is only useful if
1562+
* there is no sort above the columnar scan, because a sort would
1563+
* require a full decompression anyway.
1564+
*/
1565+
ColumnarScanPath *path_copy =
1566+
copy_columnar_scan_path(columnar_scan_with_compressed_sort);
1567+
path_copy->enable_bulk_decompression = false;
1568+
1569+
cost_columnar_scan(compression_info, path_copy, compressed_path_for_cost);
15421570

15431571
decompressed_paths = lappend(decompressed_paths, path_copy);
15441572
}

tsl/test/expected/columnar_index_scan-17.out

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2160,10 +2160,9 @@ ORDER BY device;
21602160
Aggregate
21612161
-> Merge Append
21622162
Sort Key: metrics.device
2163-
-> Custom Scan (ColumnarScan) on _hyper_1_1_chunk
2164-
-> Sort
2165-
Sort Key: compress_hyper_2_2_chunk.device
2166-
-> Seq Scan on compress_hyper_2_2_chunk
2163+
-> Custom Scan (SkipScan) on _hyper_1_1_chunk
2164+
-> Custom Scan (ColumnarScan) on _hyper_1_1_chunk
2165+
-> Index Scan using compress_hyper_2_2_chunk_device_sensor__ts_meta_v2_last_tim_idx on compress_hyper_2_2_chunk
21672166
-> Sort
21682167
Sort Key: _hyper_1_1_chunk.device
21692168
-> Seq Scan on _hyper_1_1_chunk
@@ -2316,13 +2315,14 @@ ORDER BY device;
23162315
-- DISTINCT on a segmentby column (Agg with no Aggrefs)
23172316
:PREFIX SELECT DISTINCT device FROM metrics ORDER BY device;
23182317
--- QUERY PLAN ---
2319-
Sort
2320-
Sort Key: metrics.device
2321-
-> HashAggregate
2322-
Group Key: metrics.device
2323-
-> Append
2318+
Unique
2319+
-> Merge Append
2320+
Sort Key: metrics.device
2321+
-> Custom Scan (SkipScan) on _hyper_1_1_chunk
23242322
-> Custom Scan (ColumnarScan) on _hyper_1_1_chunk
2325-
-> Seq Scan on compress_hyper_2_2_chunk
2323+
-> Index Scan using compress_hyper_2_2_chunk_device_sensor__ts_meta_v2_last_tim_idx on compress_hyper_2_2_chunk
2324+
-> Sort
2325+
Sort Key: _hyper_1_1_chunk.device
23262326
-> Seq Scan on _hyper_1_1_chunk
23272327

23282328
-- count(*) without GROUP BY

tsl/test/expected/columnar_index_scan-18.out

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2162,10 +2162,9 @@ ORDER BY device;
21622162
Aggregate
21632163
-> Merge Append
21642164
Sort Key: metrics.device
2165-
-> Custom Scan (ColumnarScan) on _hyper_1_1_chunk
2166-
-> Sort
2167-
Sort Key: compress_hyper_2_2_chunk.device
2168-
-> Seq Scan on compress_hyper_2_2_chunk
2165+
-> Custom Scan (SkipScan) on _hyper_1_1_chunk
2166+
-> Custom Scan (ColumnarScan) on _hyper_1_1_chunk
2167+
-> Index Scan using compress_hyper_2_2_chunk_device_sensor__ts_meta_v2_last_tim_idx on compress_hyper_2_2_chunk
21692168
-> Sort
21702169
Sort Key: _hyper_1_1_chunk.device
21712170
-> Seq Scan on _hyper_1_1_chunk
@@ -2320,13 +2319,14 @@ ORDER BY device;
23202319
-- DISTINCT on a segmentby column (Agg with no Aggrefs)
23212320
:PREFIX SELECT DISTINCT device FROM metrics ORDER BY device;
23222321
--- QUERY PLAN ---
2323-
Sort
2324-
Sort Key: metrics.device
2325-
-> HashAggregate
2326-
Group Key: metrics.device
2327-
-> Append
2322+
Unique
2323+
-> Merge Append
2324+
Sort Key: metrics.device
2325+
-> Custom Scan (SkipScan) on _hyper_1_1_chunk
23282326
-> Custom Scan (ColumnarScan) on _hyper_1_1_chunk
2329-
-> Seq Scan on compress_hyper_2_2_chunk
2327+
-> Index Scan using compress_hyper_2_2_chunk_device_sensor__ts_meta_v2_last_tim_idx on compress_hyper_2_2_chunk
2328+
-> Sort
2329+
Sort Key: _hyper_1_1_chunk.device
23302330
-> Seq Scan on _hyper_1_1_chunk
23312331

23322332
-- count(*) without GROUP BY

tsl/test/expected/compress_sort_transform.out

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,10 @@ group by 1, 2 order by 1, 2 limit 1;
4444
Group Key: ht_metrics_partially_compressed.device, (time_bucket('@ 1 min'::interval, ht_metrics_partially_compressed."time"))
4545
-> Merge Append (actual rows=3.00 loops=1)
4646
Sort Key: ht_metrics_partially_compressed.device, (time_bucket('@ 1 min'::interval, ht_metrics_partially_compressed."time"))
47-
-> Custom Scan (VectorAgg) (actual rows=2.00 loops=1)
48-
-> Custom Scan (ColumnarScan) on _hyper_1_1_chunk (actual rows=1440.00 loops=1)
49-
-> Sort (actual rows=3.00 loops=1)
47+
-> Partial GroupAggregate (actual rows=2.00 loops=1)
48+
Group Key: _hyper_1_1_chunk.device, time_bucket('@ 1 min'::interval, _hyper_1_1_chunk."time")
49+
-> Custom Scan (ColumnarScan) on _hyper_1_1_chunk (actual rows=3.00 loops=1)
50+
-> Sort (actual rows=1.00 loops=1)
5051
Sort Key: compress_hyper_2_4_chunk.device, compress_hyper_2_4_chunk._ts_meta_v2_first_time, compress_hyper_2_4_chunk._ts_meta_v2_last_time
5152
Sort Method: quicksort
5253
-> Seq Scan on compress_hyper_2_4_chunk (actual rows=3.00 loops=1)
@@ -56,9 +57,10 @@ group by 1, 2 order by 1, 2 limit 1;
5657
Sort Key: _hyper_1_1_chunk.device, (time_bucket('@ 1 min'::interval, _hyper_1_1_chunk."time"))
5758
Sort Method: quicksort
5859
-> Seq Scan on _hyper_1_1_chunk (actual rows=960.00 loops=1)
59-
-> Custom Scan (VectorAgg) (actual rows=1.00 loops=1)
60-
-> Custom Scan (ColumnarScan) on _hyper_1_2_chunk (actual rows=1512.00 loops=1)
61-
-> Sort (actual rows=3.00 loops=1)
60+
-> Partial GroupAggregate (actual rows=1.00 loops=1)
61+
Group Key: _hyper_1_2_chunk.device, time_bucket('@ 1 min'::interval, _hyper_1_2_chunk."time")
62+
-> Custom Scan (ColumnarScan) on _hyper_1_2_chunk (actual rows=2.00 loops=1)
63+
-> Sort (actual rows=1.00 loops=1)
6264
Sort Key: compress_hyper_2_5_chunk.device, compress_hyper_2_5_chunk._ts_meta_v2_first_time, compress_hyper_2_5_chunk._ts_meta_v2_last_time
6365
Sort Method: quicksort
6466
-> Seq Scan on compress_hyper_2_5_chunk (actual rows=3.00 loops=1)
@@ -68,9 +70,10 @@ group by 1, 2 order by 1, 2 limit 1;
6870
Sort Key: _hyper_1_2_chunk.device, (time_bucket('@ 1 min'::interval, _hyper_1_2_chunk."time"))
6971
Sort Method: quicksort
7072
-> Seq Scan on _hyper_1_2_chunk (actual rows=1008.00 loops=1)
71-
-> Custom Scan (VectorAgg) (actual rows=1.00 loops=1)
72-
-> Custom Scan (ColumnarScan) on _hyper_1_3_chunk (actual rows=507.00 loops=1)
73-
-> Sort (actual rows=3.00 loops=1)
73+
-> Partial GroupAggregate (actual rows=1.00 loops=1)
74+
Group Key: _hyper_1_3_chunk.device, time_bucket('@ 1 min'::interval, _hyper_1_3_chunk."time")
75+
-> Custom Scan (ColumnarScan) on _hyper_1_3_chunk (actual rows=2.00 loops=1)
76+
-> Sort (actual rows=1.00 loops=1)
7477
Sort Key: compress_hyper_2_6_chunk.device, compress_hyper_2_6_chunk._ts_meta_v2_first_time, compress_hyper_2_6_chunk._ts_meta_v2_last_time
7578
Sort Method: quicksort
7679
-> Seq Scan on compress_hyper_2_6_chunk (actual rows=3.00 loops=1)

tsl/test/expected/merge_append_partially_compressed.out

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -905,10 +905,7 @@ SELECT * FROM test1 WHERE x4 % 11 != 0 ORDER BY x1, x2, x5, time DESC, x3 ASC, x
905905
-> Custom Scan (ColumnarScan) on _hyper_3_7_chunk (actual rows=4.00 loops=1)
906906
Filter: ((x4 % 11) <> 0)
907907
Rows Removed by Filter: 10000
908-
-> Sort (actual rows=13.00 loops=1)
909-
Sort Key: compress_hyper_4_8_chunk.x1, compress_hyper_4_8_chunk.x2, compress_hyper_4_8_chunk.x5, compress_hyper_4_8_chunk._ts_meta_v2_last_time DESC, compress_hyper_4_8_chunk._ts_meta_v2_first_time DESC, compress_hyper_4_8_chunk._ts_meta_v2_first_x3, compress_hyper_4_8_chunk._ts_meta_v2_last_x3, compress_hyper_4_8_chunk._ts_meta_v2_first_x4, compress_hyper_4_8_chunk._ts_meta_v2_last_x4
910-
Sort Method: quicksort
911-
-> Seq Scan on compress_hyper_4_8_chunk (actual rows=13.00 loops=1)
908+
-> Index Scan using compress_hyper_4_8_chunk_x1_x2_x5__ts_meta_v2_last_time__ts_idx on compress_hyper_4_8_chunk (actual rows=13.00 loops=1)
912909
-> Sort (actual rows=1.00 loops=1)
913910
Sort Key: _hyper_3_7_chunk.x1, _hyper_3_7_chunk.x2, _hyper_3_7_chunk.x5, _hyper_3_7_chunk."time" DESC, _hyper_3_7_chunk.x3, _hyper_3_7_chunk.x4
914911
Sort Method: quicksort

tsl/test/expected/plan_skip_scan-15.out

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4440,22 +4440,22 @@ stable expression in targetlist on skip_scan_htc
44404440
Sort Key: skip_scan_htc.dev
44414441
-> Custom Scan (SkipScan) on _hyper_3_5_chunk (actual rows=10.00 loops=1)
44424442
-> Custom Scan (ColumnarScan) on _hyper_3_5_chunk (actual rows=10.00 loops=1)
4443-
Vectorized Filter: (dev_name IS NOT NULL)
4443+
Filter: (dev_name IS NOT NULL)
44444444
Rows Removed by Filter: 5
44454445
-> Index Scan using compress_hyper_4_26_chunk_dev__ts_meta_v2_last_time__ts_met_idx on compress_hyper_4_26_chunk (actual rows=11.00 loops=1)
44464446
-> Custom Scan (SkipScan) on _hyper_3_6_chunk (actual rows=10.00 loops=1)
44474447
-> Custom Scan (ColumnarScan) on _hyper_3_6_chunk (actual rows=10.00 loops=1)
4448-
Vectorized Filter: (dev_name IS NOT NULL)
4448+
Filter: (dev_name IS NOT NULL)
44494449
Rows Removed by Filter: 5
44504450
-> Index Scan using compress_hyper_4_27_chunk_dev__ts_meta_v2_last_time__ts_met_idx on compress_hyper_4_27_chunk (actual rows=11.00 loops=1)
44514451
-> Custom Scan (SkipScan) on _hyper_3_7_chunk (actual rows=10.00 loops=1)
44524452
-> Custom Scan (ColumnarScan) on _hyper_3_7_chunk (actual rows=10.00 loops=1)
4453-
Vectorized Filter: (dev_name IS NOT NULL)
4453+
Filter: (dev_name IS NOT NULL)
44544454
Rows Removed by Filter: 5
44554455
-> Index Scan using compress_hyper_4_28_chunk_dev__ts_meta_v2_last_time__ts_met_idx on compress_hyper_4_28_chunk (actual rows=11.00 loops=1)
44564456
-> Custom Scan (SkipScan) on _hyper_3_8_chunk (actual rows=10.00 loops=1)
44574457
-> Custom Scan (ColumnarScan) on _hyper_3_8_chunk (actual rows=10.00 loops=1)
4458-
Vectorized Filter: (dev_name IS NOT NULL)
4458+
Filter: (dev_name IS NOT NULL)
44594459
Rows Removed by Filter: 5
44604460
-> Index Scan using compress_hyper_4_29_chunk_dev__ts_meta_v2_last_time__ts_met_idx on compress_hyper_4_29_chunk (actual rows=11.00 loops=1)
44614461

@@ -4808,12 +4808,12 @@ range queries on skip_scan_htc
48084808
Sort Key: skip_scan_htc.dev
48094809
-> Custom Scan (SkipScan) on _hyper_3_5_chunk (actual rows=11.00 loops=1)
48104810
-> Custom Scan (ColumnarScan) on _hyper_3_5_chunk (actual rows=11.00 loops=1)
4811-
Vectorized Filter: (("time" >= 100) AND ("time" <= 300))
4811+
Filter: (("time" >= 100) AND ("time" <= 300))
48124812
-> Index Scan using compress_hyper_4_26_chunk_dev__ts_meta_v2_last_time__ts_met_idx on compress_hyper_4_26_chunk (actual rows=11.00 loops=1)
48134813
Index Cond: ((_ts_meta_v2_last_time <= 300) AND (_ts_meta_v2_first_time >= 100))
48144814
-> Custom Scan (SkipScan) on _hyper_3_6_chunk (actual rows=11.00 loops=1)
48154815
-> Custom Scan (ColumnarScan) on _hyper_3_6_chunk (actual rows=11.00 loops=1)
4816-
Vectorized Filter: (("time" >= 100) AND ("time" <= 300))
4816+
Filter: (("time" >= 100) AND ("time" <= 300))
48174817
Rows Removed by Filter: 1993
48184818
-> Index Scan using compress_hyper_4_27_chunk_dev__ts_meta_v2_last_time__ts_met_idx on compress_hyper_4_27_chunk (actual rows=11.00 loops=1)
48194819
Index Cond: ((_ts_meta_v2_last_time <= 300) AND (_ts_meta_v2_first_time >= 100))
@@ -4823,7 +4823,7 @@ range queries on skip_scan_htc
48234823
Unique (actual rows=11.00 loops=1)
48244824
-> Custom Scan (SkipScan) on _hyper_3_5_chunk (actual rows=11.00 loops=1)
48254825
-> Custom Scan (ColumnarScan) on _hyper_3_5_chunk (actual rows=11.00 loops=1)
4826-
Vectorized Filter: ("time" < 200)
4826+
Filter: ("time" < 200)
48274827
Rows Removed by Filter: 501
48284828
-> Index Scan using compress_hyper_4_26_chunk_dev__ts_meta_v2_last_time__ts_met_idx on compress_hyper_4_26_chunk (actual rows=11.00 loops=1)
48294829
Index Cond: (_ts_meta_v2_last_time < 200)
@@ -4833,7 +4833,7 @@ range queries on skip_scan_htc
48334833
Unique (actual rows=11.00 loops=1)
48344834
-> Custom Scan (SkipScan) on _hyper_3_8_chunk (actual rows=11.00 loops=1)
48354835
-> Custom Scan (ColumnarScan) on _hyper_3_8_chunk (actual rows=11.00 loops=1)
4836-
Vectorized Filter: ("time" > 800)
4836+
Filter: ("time" > 800)
48374837
-> Index Scan using compress_hyper_4_29_chunk_dev__ts_meta_v2_last_time__ts_met_idx on compress_hyper_4_29_chunk (actual rows=11.00 loops=1)
48384838
Index Cond: (_ts_meta_v2_first_time > 800)
48394839

@@ -5417,7 +5417,7 @@ WHERE CLAUSES
54175417
Sort Key: skip_scan_htc.dev
54185418
-> Custom Scan (SkipScan) on _hyper_3_5_chunk (actual rows=11.00 loops=1)
54195419
-> Custom Scan (ColumnarScan) on _hyper_3_5_chunk (actual rows=11.00 loops=1)
5420-
Vectorized Filter: ("time" > 5)
5420+
Filter: ("time" > 5)
54215421
Rows Removed by Filter: 61
54225422
-> Index Scan using compress_hyper_4_34_chunk_dev__ts_meta_v2_first_time__ts_me_idx on compress_hyper_4_34_chunk (actual rows=11.00 loops=1)
54235423
Index Cond: (_ts_meta_v2_last_time > 5)
@@ -5712,7 +5712,7 @@ WHERE CLAUSES
57125712
Sort Key: skip_scan_htc.dev
57135713
-> Custom Scan (SkipScan) on _hyper_3_5_chunk (actual rows=5.00 loops=1)
57145714
-> Custom Scan (ColumnarScan) on _hyper_3_5_chunk (actual rows=5.00 loops=1)
5715-
Vectorized Filter: ("time" > 200)
5715+
Filter: ("time" > 200)
57165716
Rows Removed by Filter: 1005
57175717
-> Index Scan using compress_hyper_4_34_chunk_dev__ts_meta_v2_first_time__ts_me_idx on compress_hyper_4_34_chunk (actual rows=5.00 loops=1)
57185718
Index Cond: ((dev > 5) AND (_ts_meta_v2_last_time > 200))
@@ -5756,7 +5756,7 @@ WHERE CLAUSES
57565756
Unique (actual rows=0.00 loops=1)
57575757
-> Custom Scan (SkipScan) on _hyper_3_5_chunk (actual rows=0.00 loops=1)
57585758
-> Custom Scan (ColumnarScan) on _hyper_3_5_chunk (actual rows=0.00 loops=1)
5759-
Vectorized Filter: (("time" > 100) AND ("time" < 200) AND (val > 10) AND (val < 10000))
5759+
Filter: (("time" > 100) AND ("time" < 200) AND (val > 10) AND (val < 10000))
57605760
Rows Removed by Filter: 1000
57615761
-> Index Scan using compress_hyper_4_34_chunk_dev__ts_meta_v2_first_time__ts_me_idx on compress_hyper_4_34_chunk (actual rows=4.00 loops=1)
57625762
Index Cond: ((dev > 2) AND (dev < 7) AND (_ts_meta_v2_first_time < 200) AND (_ts_meta_v2_last_time > 100))
@@ -6836,7 +6836,7 @@ set enable_seqscan to off;
68366836
Unique (actual rows=11.00 loops=1)
68376837
-> Custom Scan (SkipScan) on _hyper_5_9_chunk (actual rows=11.00 loops=1)
68386838
-> Custom Scan (ColumnarScan) on _hyper_5_9_chunk (actual rows=11.00 loops=1)
6839-
Vectorized Filter: ("time" < 200)
6839+
Filter: ("time" < 200)
68406840
Rows Removed by Filter: 501
68416841
-> Index Scan using compress_hyper_6_10_chunk_dev__ts_meta_v2_last_time__ts_met_idx on compress_hyper_6_10_chunk (actual rows=11.00 loops=1)
68426842
Index Cond: (_ts_meta_v2_last_time < 200)
@@ -6846,7 +6846,7 @@ set enable_seqscan to off;
68466846
Unique (actual rows=11.00 loops=1)
68476847
-> Custom Scan (SkipScan) on _hyper_5_13_chunk (actual rows=11.00 loops=1)
68486848
-> Custom Scan (ColumnarScan) on _hyper_5_13_chunk (actual rows=11.00 loops=1)
6849-
Vectorized Filter: ("time" > 800)
6849+
Filter: ("time" > 800)
68506850
-> Index Scan using compress_hyper_6_16_chunk_dev__ts_meta_v2_last_time__ts_met_idx on compress_hyper_6_16_chunk (actual rows=11.00 loops=1)
68516851
Index Cond: (_ts_meta_v2_first_time > 800)
68526852

@@ -6966,7 +6966,7 @@ WHERE CLAUSES
69666966
Sort Key: skip_scan_htcl.dev
69676967
-> Custom Scan (SkipScan) on _hyper_5_9_chunk (actual rows=11.00 loops=1)
69686968
-> Custom Scan (ColumnarScan) on _hyper_5_9_chunk (actual rows=11.00 loops=1)
6969-
Vectorized Filter: ("time" > 5)
6969+
Filter: ("time" > 5)
69706970
-> Index Scan using compress_hyper_6_10_chunk_dev__ts_meta_v2_last_time__ts_met_idx on compress_hyper_6_10_chunk (actual rows=11.00 loops=1)
69716971
Index Cond: (_ts_meta_v2_first_time > 5)
69726972
-> Custom Scan (SkipScan) on _hyper_5_11_chunk (actual rows=11.00 loops=1)
@@ -7288,7 +7288,7 @@ SET enable_seqscan = false;
72887288
Sort Key: skip_scan_htcl.dev
72897289
-> Custom Scan (SkipScan) on _hyper_5_9_chunk (actual rows=5.00 loops=1)
72907290
-> Custom Scan (ColumnarScan) on _hyper_5_9_chunk (actual rows=5.00 loops=1)
7291-
Vectorized Filter: ("time" > 200)
7291+
Filter: ("time" > 200)
72927292
-> Index Scan using compress_hyper_6_10_chunk_dev__ts_meta_v2_last_time__ts_met_idx on compress_hyper_6_10_chunk (actual rows=5.00 loops=1)
72937293
Index Cond: ((dev > 5) AND (_ts_meta_v2_first_time > 200))
72947294
-> Custom Scan (SkipScan) on _hyper_5_11_chunk (actual rows=5.00 loops=1)

0 commit comments

Comments
 (0)