Skip to content

Commit 6fab2ae

Browse files
authored
Show reverse direction in DecompressChunk EXPLAIN (#8001)
Only in verbose or non-text modes. This is useful for debugging.
1 parent 7a5da91 commit 6fab2ae

6 files changed

+70
-30
lines changed

tsl/src/nodes/decompress_chunk/exec.c

+6-1
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,12 @@ decompress_chunk_explain(CustomScanState *node, List *ancestors, ExplainState *e
524524
ExplainPropertyBool("Batch Sorted Merge", dcontext->batch_sorted_merge, es);
525525
}
526526

527-
if (es->analyze && (es->verbose || es->format != EXPLAIN_FORMAT_TEXT))
527+
if (dcontext->reverse)
528+
{
529+
ExplainPropertyBool("Reverse", dcontext->reverse, es);
530+
}
531+
532+
if (es->analyze)
528533
{
529534
ExplainPropertyBool("Bulk Decompression",
530535
chunk_state->decompress_context.enable_bulk_decompression,

tsl/test/expected/compression_sequence_num_removal.out

+10-2
Original file line numberDiff line numberDiff line change
@@ -84,21 +84,25 @@ ORDER BY device_id DESC, time DESC;
8484
Sort Key: _hyper_1_1_chunk.device_id DESC, _hyper_1_1_chunk."time" DESC
8585
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_1_chunk
8686
Output: _hyper_1_1_chunk."time", _hyper_1_1_chunk.device_id, _hyper_1_1_chunk.val
87+
Reverse: true
8788
-> Index Scan Backward using compress_hyper_2_5_chunk_device_id__ts_meta_min_1__ts_meta__idx on _timescaledb_internal.compress_hyper_2_5_chunk
8889
Output: compress_hyper_2_5_chunk._ts_meta_count, compress_hyper_2_5_chunk.device_id, compress_hyper_2_5_chunk._ts_meta_min_1, compress_hyper_2_5_chunk._ts_meta_max_1, compress_hyper_2_5_chunk."time", compress_hyper_2_5_chunk.val
8990
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_2_chunk
9091
Output: _hyper_1_2_chunk."time", _hyper_1_2_chunk.device_id, _hyper_1_2_chunk.val
92+
Reverse: true
9193
-> Index Scan Backward using compress_hyper_2_6_chunk_device_id__ts_meta_min_1__ts_meta__idx on _timescaledb_internal.compress_hyper_2_6_chunk
9294
Output: compress_hyper_2_6_chunk._ts_meta_count, compress_hyper_2_6_chunk.device_id, compress_hyper_2_6_chunk._ts_meta_min_1, compress_hyper_2_6_chunk._ts_meta_max_1, compress_hyper_2_6_chunk."time", compress_hyper_2_6_chunk.val
9395
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_3_chunk
9496
Output: _hyper_1_3_chunk."time", _hyper_1_3_chunk.device_id, _hyper_1_3_chunk.val
97+
Reverse: true
9598
-> Index Scan Backward using compress_hyper_2_7_chunk_device_id__ts_meta_min_1__ts_meta__idx on _timescaledb_internal.compress_hyper_2_7_chunk
9699
Output: compress_hyper_2_7_chunk._ts_meta_count, compress_hyper_2_7_chunk.device_id, compress_hyper_2_7_chunk._ts_meta_min_1, compress_hyper_2_7_chunk._ts_meta_max_1, compress_hyper_2_7_chunk."time", compress_hyper_2_7_chunk.val
97100
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_4_chunk
98101
Output: _hyper_1_4_chunk."time", _hyper_1_4_chunk.device_id, _hyper_1_4_chunk.val
102+
Reverse: true
99103
-> Index Scan Backward using compress_hyper_2_8_chunk_device_id__ts_meta_min_1__ts_meta__idx on _timescaledb_internal.compress_hyper_2_8_chunk
100104
Output: compress_hyper_2_8_chunk._ts_meta_count, compress_hyper_2_8_chunk.device_id, compress_hyper_2_8_chunk._ts_meta_min_1, compress_hyper_2_8_chunk._ts_meta_max_1, compress_hyper_2_8_chunk."time", compress_hyper_2_8_chunk.val
101-
(18 rows)
105+
(22 rows)
102106

103107
SELECT * FROM hyper
104108
ORDER BY device_id DESC, time DESC;
@@ -217,21 +221,25 @@ ORDER BY device_id DESC, time DESC;
217221
Sort Key: _hyper_1_1_chunk.device_id DESC, _hyper_1_1_chunk."time" DESC
218222
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_1_chunk
219223
Output: _hyper_1_1_chunk."time", _hyper_1_1_chunk.device_id, _hyper_1_1_chunk.val
224+
Reverse: true
220225
-> Index Scan Backward using compress_hyper_2_5_chunk_device_id__ts_meta_sequence_num_idx on _timescaledb_internal.compress_hyper_2_5_chunk
221226
Output: compress_hyper_2_5_chunk._ts_meta_count, compress_hyper_2_5_chunk.device_id, compress_hyper_2_5_chunk._ts_meta_min_1, compress_hyper_2_5_chunk._ts_meta_max_1, compress_hyper_2_5_chunk."time", compress_hyper_2_5_chunk.val, compress_hyper_2_5_chunk._ts_meta_sequence_num
222227
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_2_chunk
223228
Output: _hyper_1_2_chunk."time", _hyper_1_2_chunk.device_id, _hyper_1_2_chunk.val
229+
Reverse: true
224230
-> Index Scan Backward using compress_hyper_2_6_chunk_device_id__ts_meta_min_1__ts_meta__idx on _timescaledb_internal.compress_hyper_2_6_chunk
225231
Output: compress_hyper_2_6_chunk._ts_meta_count, compress_hyper_2_6_chunk.device_id, compress_hyper_2_6_chunk._ts_meta_min_1, compress_hyper_2_6_chunk._ts_meta_max_1, compress_hyper_2_6_chunk."time", compress_hyper_2_6_chunk.val
226232
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_3_chunk
227233
Output: _hyper_1_3_chunk."time", _hyper_1_3_chunk.device_id, _hyper_1_3_chunk.val
234+
Reverse: true
228235
-> Index Scan Backward using compress_hyper_2_7_chunk_device_id__ts_meta_sequence_num_idx on _timescaledb_internal.compress_hyper_2_7_chunk
229236
Output: compress_hyper_2_7_chunk._ts_meta_count, compress_hyper_2_7_chunk.device_id, compress_hyper_2_7_chunk._ts_meta_min_1, compress_hyper_2_7_chunk._ts_meta_max_1, compress_hyper_2_7_chunk."time", compress_hyper_2_7_chunk.val, compress_hyper_2_7_chunk._ts_meta_sequence_num
230237
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_4_chunk
231238
Output: _hyper_1_4_chunk."time", _hyper_1_4_chunk.device_id, _hyper_1_4_chunk.val
239+
Reverse: true
232240
-> Index Scan Backward using compress_hyper_2_8_chunk_device_id__ts_meta_min_1__ts_meta__idx on _timescaledb_internal.compress_hyper_2_8_chunk
233241
Output: compress_hyper_2_8_chunk._ts_meta_count, compress_hyper_2_8_chunk.device_id, compress_hyper_2_8_chunk._ts_meta_min_1, compress_hyper_2_8_chunk._ts_meta_max_1, compress_hyper_2_8_chunk."time", compress_hyper_2_8_chunk.val
234-
(18 rows)
242+
(22 rows)
235243

236244
SELECT * FROM hyper
237245
ORDER BY device_id DESC, time DESC;

0 commit comments

Comments
 (0)