mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-14 17:43:34 +08:00
Remove BitmapScan support in DecompressChunk
We don't want to support BitmapScans below DecompressChunk as this adds additional complexity to support and there is little benefit in doing so. This fixes a bug that can happen when we have a parameterized BitmapScan that is parameterized on a compressed column and will lead to an execution failure with an error regarding incorrect attribute types in the expression.
This commit is contained in:
parent
bfef3173bc
commit
9744b4f3bc
@ -30,8 +30,9 @@ argument or resolve the type ambiguity by casting to the intended type.
|
||||
* #4823 Fix a crash that could occur when using nested user-defined functions with hypertables.
|
||||
|
||||
**Thanks**
|
||||
* @jvanns for reporting hypertable FK reference to vanilla PostgreSQL partitioned table doesn't seem to work
|
||||
* @jflambert for reporting a crash with nested user-defined functions.
|
||||
* @jvanns for reporting hypertable FK reference to vanilla PostgreSQL partitioned table doesn't seem to work
|
||||
* @xvaara for helping reproduce a bug with bitmap scans in transparent decompression
|
||||
|
||||
## 2.8.1 (2022-10-06)
|
||||
|
||||
|
@ -425,6 +425,17 @@ ts_decompress_chunk_generate_paths(PlannerInfo *root, RelOptInfo *chunk_rel, Hyp
|
||||
Path *child_path = lfirst(lc);
|
||||
DecompressChunkPath *path;
|
||||
|
||||
/*
|
||||
* We skip any BitmapScan paths here as supporting those
|
||||
* would require fixing up the internal scan. Since we
|
||||
* currently do not do this BitmapScans would be generated
|
||||
* when we have a parameterized path on a compressed column
|
||||
* that would have invalid references due to our
|
||||
* EquivalenceClasses.
|
||||
*/
|
||||
if (IsA(child_path, BitmapHeapPath))
|
||||
continue;
|
||||
|
||||
/*
|
||||
* Filter out all paths that try to JOIN the compressed chunk on the
|
||||
* hypertable or the uncompressed chunk
|
||||
|
@ -394,19 +394,6 @@ decompress_chunk_plan_create(PlannerInfo *root, RelOptInfo *rel, CustomPath *pat
|
||||
}
|
||||
indexplan->qual = indexqual;
|
||||
}
|
||||
else if (IsA(compressed_path, BitmapHeapPath))
|
||||
{
|
||||
/* To increase performance, we should remove quals that are redundant with the Bitmap scan
|
||||
* Code from create_bitmap_scan_plan does something similar, and could be used as a starting
|
||||
* point.
|
||||
*/
|
||||
foreach (lc, clauses)
|
||||
{
|
||||
RestrictInfo *rinfo = lfirst_node(RestrictInfo, lc);
|
||||
decompress_plan->scan.plan.qual =
|
||||
lappend(decompress_plan->scan.plan.qual, rinfo->clause);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (lc, clauses)
|
||||
|
@ -2128,9 +2128,6 @@ WHERE device_id IN (
|
||||
(18 rows)
|
||||
|
||||
RESET seq_page_cost;
|
||||
-- force a BitmapHeapScan
|
||||
SET enable_indexscan TO FALSE;
|
||||
SET enable_seqscan TO FALSE;
|
||||
:PREFIX_VERBOSE
|
||||
SELECT device_id_peer
|
||||
FROM :TEST_TABLE
|
||||
@ -2141,25 +2138,21 @@ WHERE device_id IN (
|
||||
Append (actual rows=1368 loops=1)
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_1_chunk (actual rows=360 loops=1)
|
||||
Output: _hyper_1_1_chunk.device_id_peer
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_5_15_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_5_15_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_5_15_chunk."time", compress_hyper_5_15_chunk.device_id, compress_hyper_5_15_chunk.device_id_peer, compress_hyper_5_15_chunk.v0, compress_hyper_5_15_chunk.v1, compress_hyper_5_15_chunk.v2, compress_hyper_5_15_chunk.v3, compress_hyper_5_15_chunk._ts_meta_count, compress_hyper_5_15_chunk._ts_meta_sequence_num, compress_hyper_5_15_chunk._ts_meta_min_3, compress_hyper_5_15_chunk._ts_meta_max_3, compress_hyper_5_15_chunk._ts_meta_min_1, compress_hyper_5_15_chunk._ts_meta_max_1, compress_hyper_5_15_chunk._ts_meta_min_2, compress_hyper_5_15_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_5_15_chunk.device_id = 1)
|
||||
Heap Blocks: exact=1
|
||||
-> Bitmap Index Scan on compress_hyper_5_15_chunk_c_index_2 (actual rows=1 loops=1)
|
||||
Index Cond: (compress_hyper_5_15_chunk.device_id = 1)
|
||||
Filter: (compress_hyper_5_15_chunk.device_id = 1)
|
||||
Rows Removed by Filter: 4
|
||||
-> Seq Scan on _timescaledb_internal._hyper_1_2_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_1_2_chunk.device_id_peer
|
||||
Filter: (_hyper_1_2_chunk.device_id = 1)
|
||||
Rows Removed by Filter: 2016
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_3_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_1_3_chunk.device_id_peer
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_5_16_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_5_16_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_5_16_chunk."time", compress_hyper_5_16_chunk.device_id, compress_hyper_5_16_chunk.device_id_peer, compress_hyper_5_16_chunk.v0, compress_hyper_5_16_chunk.v1, compress_hyper_5_16_chunk.v2, compress_hyper_5_16_chunk.v3, compress_hyper_5_16_chunk._ts_meta_count, compress_hyper_5_16_chunk._ts_meta_sequence_num, compress_hyper_5_16_chunk._ts_meta_min_3, compress_hyper_5_16_chunk._ts_meta_max_3, compress_hyper_5_16_chunk._ts_meta_min_1, compress_hyper_5_16_chunk._ts_meta_max_1, compress_hyper_5_16_chunk._ts_meta_min_2, compress_hyper_5_16_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_5_16_chunk.device_id = 1)
|
||||
Heap Blocks: exact=1
|
||||
-> Bitmap Index Scan on compress_hyper_5_16_chunk_c_index_2 (actual rows=1 loops=1)
|
||||
Index Cond: (compress_hyper_5_16_chunk.device_id = 1)
|
||||
(21 rows)
|
||||
Filter: (compress_hyper_5_16_chunk.device_id = 1)
|
||||
Rows Removed by Filter: 4
|
||||
(17 rows)
|
||||
|
||||
:PREFIX_VERBOSE
|
||||
SELECT device_id_peer
|
||||
@ -2183,12 +2176,9 @@ WHERE device_id IN (
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_1_chunk (actual rows=360 loops=2)
|
||||
Output: _hyper_1_1_chunk.device_id_peer, _hyper_1_1_chunk.device_id
|
||||
Filter: ("*VALUES*".column1 = _hyper_1_1_chunk.device_id)
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_5_15_chunk (actual rows=1 loops=2)
|
||||
-> Index Scan using compress_hyper_5_15_chunk_c_index_2 on _timescaledb_internal.compress_hyper_5_15_chunk (actual rows=1 loops=2)
|
||||
Output: compress_hyper_5_15_chunk."time", compress_hyper_5_15_chunk.device_id, compress_hyper_5_15_chunk.device_id_peer, compress_hyper_5_15_chunk.v0, compress_hyper_5_15_chunk.v1, compress_hyper_5_15_chunk.v2, compress_hyper_5_15_chunk.v3, compress_hyper_5_15_chunk._ts_meta_count, compress_hyper_5_15_chunk._ts_meta_sequence_num, compress_hyper_5_15_chunk._ts_meta_min_3, compress_hyper_5_15_chunk._ts_meta_max_3, compress_hyper_5_15_chunk._ts_meta_min_1, compress_hyper_5_15_chunk._ts_meta_max_1, compress_hyper_5_15_chunk._ts_meta_min_2, compress_hyper_5_15_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_5_15_chunk.device_id = "*VALUES*".column1)
|
||||
Heap Blocks: exact=2
|
||||
-> Bitmap Index Scan on compress_hyper_5_15_chunk_c_index_2 (actual rows=1 loops=2)
|
||||
Index Cond: (compress_hyper_5_15_chunk.device_id = "*VALUES*".column1)
|
||||
Index Cond: (compress_hyper_5_15_chunk.device_id = "*VALUES*".column1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_1_2_chunk (actual rows=504 loops=2)
|
||||
Output: _hyper_1_2_chunk.device_id_peer, _hyper_1_2_chunk.device_id
|
||||
Filter: ("*VALUES*".column1 = _hyper_1_2_chunk.device_id)
|
||||
@ -2196,16 +2186,11 @@ WHERE device_id IN (
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_3_chunk (actual rows=504 loops=2)
|
||||
Output: _hyper_1_3_chunk.device_id_peer, _hyper_1_3_chunk.device_id
|
||||
Filter: ("*VALUES*".column1 = _hyper_1_3_chunk.device_id)
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_5_16_chunk (actual rows=1 loops=2)
|
||||
-> Index Scan using compress_hyper_5_16_chunk_c_index_2 on _timescaledb_internal.compress_hyper_5_16_chunk (actual rows=1 loops=2)
|
||||
Output: compress_hyper_5_16_chunk."time", compress_hyper_5_16_chunk.device_id, compress_hyper_5_16_chunk.device_id_peer, compress_hyper_5_16_chunk.v0, compress_hyper_5_16_chunk.v1, compress_hyper_5_16_chunk.v2, compress_hyper_5_16_chunk.v3, compress_hyper_5_16_chunk._ts_meta_count, compress_hyper_5_16_chunk._ts_meta_sequence_num, compress_hyper_5_16_chunk._ts_meta_min_3, compress_hyper_5_16_chunk._ts_meta_max_3, compress_hyper_5_16_chunk._ts_meta_min_1, compress_hyper_5_16_chunk._ts_meta_max_1, compress_hyper_5_16_chunk._ts_meta_min_2, compress_hyper_5_16_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_5_16_chunk.device_id = "*VALUES*".column1)
|
||||
Heap Blocks: exact=2
|
||||
-> Bitmap Index Scan on compress_hyper_5_16_chunk_c_index_2 (actual rows=1 loops=2)
|
||||
Index Cond: (compress_hyper_5_16_chunk.device_id = "*VALUES*".column1)
|
||||
(33 rows)
|
||||
Index Cond: (compress_hyper_5_16_chunk.device_id = "*VALUES*".column1)
|
||||
(27 rows)
|
||||
|
||||
SET enable_indexscan TO TRUE;
|
||||
SET enable_seqscan TO TRUE;
|
||||
-- test view
|
||||
CREATE OR REPLACE VIEW compressed_view AS
|
||||
SELECT time,
|
||||
@ -5813,9 +5798,6 @@ WHERE device_id IN (
|
||||
(52 rows)
|
||||
|
||||
RESET seq_page_cost;
|
||||
-- force a BitmapHeapScan
|
||||
SET enable_indexscan TO FALSE;
|
||||
SET enable_seqscan TO FALSE;
|
||||
:PREFIX_VERBOSE
|
||||
SELECT device_id_peer
|
||||
FROM :TEST_TABLE
|
||||
@ -5826,27 +5808,18 @@ WHERE device_id IN (
|
||||
Append (actual rows=1368 loops=1)
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_4_chunk (actual rows=360 loops=1)
|
||||
Output: _hyper_2_4_chunk.device_id_peer
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_6_17_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_17_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_6_17_chunk."time", compress_hyper_6_17_chunk.device_id, compress_hyper_6_17_chunk.device_id_peer, compress_hyper_6_17_chunk.v0, compress_hyper_6_17_chunk.v1, compress_hyper_6_17_chunk.v2, compress_hyper_6_17_chunk.v3, compress_hyper_6_17_chunk._ts_meta_count, compress_hyper_6_17_chunk._ts_meta_sequence_num, compress_hyper_6_17_chunk._ts_meta_min_3, compress_hyper_6_17_chunk._ts_meta_max_3, compress_hyper_6_17_chunk._ts_meta_min_1, compress_hyper_6_17_chunk._ts_meta_max_1, compress_hyper_6_17_chunk._ts_meta_min_2, compress_hyper_6_17_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_6_17_chunk.device_id = 1)
|
||||
Heap Blocks: exact=1
|
||||
-> Bitmap Index Scan on compress_hyper_6_17_chunk_c_space_index_2 (actual rows=1 loops=1)
|
||||
Index Cond: (compress_hyper_6_17_chunk.device_id = 1)
|
||||
-> Bitmap Heap Scan on _timescaledb_internal._hyper_2_7_chunk (actual rows=504 loops=1)
|
||||
Filter: (compress_hyper_6_17_chunk.device_id = 1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_2_7_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_7_chunk.device_id_peer
|
||||
Recheck Cond: (_hyper_2_7_chunk.device_id = 1)
|
||||
Heap Blocks: exact=5
|
||||
-> Bitmap Index Scan on _hyper_2_7_chunk_metrics_space_device_id_device_id_peer_v0_v1_2 (actual rows=504 loops=1)
|
||||
Index Cond: (_hyper_2_7_chunk.device_id = 1)
|
||||
Filter: (_hyper_2_7_chunk.device_id = 1)
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_10_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_10_chunk.device_id_peer
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_6_20_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_20_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_6_20_chunk."time", compress_hyper_6_20_chunk.device_id, compress_hyper_6_20_chunk.device_id_peer, compress_hyper_6_20_chunk.v0, compress_hyper_6_20_chunk.v1, compress_hyper_6_20_chunk.v2, compress_hyper_6_20_chunk.v3, compress_hyper_6_20_chunk._ts_meta_count, compress_hyper_6_20_chunk._ts_meta_sequence_num, compress_hyper_6_20_chunk._ts_meta_min_3, compress_hyper_6_20_chunk._ts_meta_max_3, compress_hyper_6_20_chunk._ts_meta_min_1, compress_hyper_6_20_chunk._ts_meta_max_1, compress_hyper_6_20_chunk._ts_meta_min_2, compress_hyper_6_20_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_6_20_chunk.device_id = 1)
|
||||
Heap Blocks: exact=1
|
||||
-> Bitmap Index Scan on compress_hyper_6_20_chunk_c_space_index_2 (actual rows=1 loops=1)
|
||||
Index Cond: (compress_hyper_6_20_chunk.device_id = 1)
|
||||
(23 rows)
|
||||
Filter: (compress_hyper_6_20_chunk.device_id = 1)
|
||||
(14 rows)
|
||||
|
||||
:PREFIX_VERBOSE
|
||||
SELECT device_id_peer
|
||||
@ -5862,49 +5835,39 @@ WHERE device_id IN (
|
||||
-> Append (actual rows=6840 loops=1)
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_4_chunk (actual rows=360 loops=1)
|
||||
Output: _hyper_2_4_chunk.device_id_peer, _hyper_2_4_chunk.device_id
|
||||
-> Index Scan using compress_hyper_6_17_chunk_c_space_index_2 on _timescaledb_internal.compress_hyper_6_17_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_17_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_6_17_chunk."time", compress_hyper_6_17_chunk.device_id, compress_hyper_6_17_chunk.device_id_peer, compress_hyper_6_17_chunk.v0, compress_hyper_6_17_chunk.v1, compress_hyper_6_17_chunk.v2, compress_hyper_6_17_chunk.v3, compress_hyper_6_17_chunk._ts_meta_count, compress_hyper_6_17_chunk._ts_meta_sequence_num, compress_hyper_6_17_chunk._ts_meta_min_3, compress_hyper_6_17_chunk._ts_meta_max_3, compress_hyper_6_17_chunk._ts_meta_min_1, compress_hyper_6_17_chunk._ts_meta_max_1, compress_hyper_6_17_chunk._ts_meta_min_2, compress_hyper_6_17_chunk._ts_meta_max_2
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_5_chunk (actual rows=1080 loops=1)
|
||||
Output: _hyper_2_5_chunk.device_id_peer, _hyper_2_5_chunk.device_id
|
||||
-> Index Scan using compress_hyper_6_18_chunk_c_space_index_2 on _timescaledb_internal.compress_hyper_6_18_chunk (actual rows=3 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_18_chunk (actual rows=3 loops=1)
|
||||
Output: compress_hyper_6_18_chunk."time", compress_hyper_6_18_chunk.device_id, compress_hyper_6_18_chunk.device_id_peer, compress_hyper_6_18_chunk.v0, compress_hyper_6_18_chunk.v1, compress_hyper_6_18_chunk.v2, compress_hyper_6_18_chunk.v3, compress_hyper_6_18_chunk._ts_meta_count, compress_hyper_6_18_chunk._ts_meta_sequence_num, compress_hyper_6_18_chunk._ts_meta_min_3, compress_hyper_6_18_chunk._ts_meta_max_3, compress_hyper_6_18_chunk._ts_meta_min_1, compress_hyper_6_18_chunk._ts_meta_max_1, compress_hyper_6_18_chunk._ts_meta_min_2, compress_hyper_6_18_chunk._ts_meta_max_2
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_6_chunk (actual rows=360 loops=1)
|
||||
Output: _hyper_2_6_chunk.device_id_peer, _hyper_2_6_chunk.device_id
|
||||
-> Index Scan using compress_hyper_6_19_chunk_c_space_index_2 on _timescaledb_internal.compress_hyper_6_19_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_19_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_6_19_chunk."time", compress_hyper_6_19_chunk.device_id, compress_hyper_6_19_chunk.device_id_peer, compress_hyper_6_19_chunk.v0, compress_hyper_6_19_chunk.v1, compress_hyper_6_19_chunk.v2, compress_hyper_6_19_chunk.v3, compress_hyper_6_19_chunk._ts_meta_count, compress_hyper_6_19_chunk._ts_meta_sequence_num, compress_hyper_6_19_chunk._ts_meta_min_3, compress_hyper_6_19_chunk._ts_meta_max_3, compress_hyper_6_19_chunk._ts_meta_min_1, compress_hyper_6_19_chunk._ts_meta_max_1, compress_hyper_6_19_chunk._ts_meta_min_2, compress_hyper_6_19_chunk._ts_meta_max_2
|
||||
-> Bitmap Heap Scan on _timescaledb_internal._hyper_2_7_chunk (actual rows=504 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_2_7_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_7_chunk.device_id_peer, _hyper_2_7_chunk.device_id
|
||||
Heap Blocks: exact=5
|
||||
-> Bitmap Index Scan on _hyper_2_7_chunk_metrics_space_device_id_device_id_peer_v0_v1_2 (actual rows=504 loops=1)
|
||||
-> Bitmap Heap Scan on _timescaledb_internal._hyper_2_8_chunk (actual rows=1512 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_2_8_chunk (actual rows=1512 loops=1)
|
||||
Output: _hyper_2_8_chunk.device_id_peer, _hyper_2_8_chunk.device_id
|
||||
Heap Blocks: exact=13
|
||||
-> Bitmap Index Scan on _hyper_2_8_chunk_metrics_space_device_id_device_id_peer_v0_v1_2 (actual rows=1512 loops=1)
|
||||
-> Bitmap Heap Scan on _timescaledb_internal._hyper_2_9_chunk (actual rows=504 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_2_9_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_9_chunk.device_id_peer, _hyper_2_9_chunk.device_id
|
||||
Heap Blocks: exact=5
|
||||
-> Bitmap Index Scan on _hyper_2_9_chunk_metrics_space_device_id_device_id_peer_v0_v1_2 (actual rows=504 loops=1)
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_10_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_10_chunk.device_id_peer, _hyper_2_10_chunk.device_id
|
||||
-> Index Scan using compress_hyper_6_20_chunk_c_space_index_2 on _timescaledb_internal.compress_hyper_6_20_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_20_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_6_20_chunk."time", compress_hyper_6_20_chunk.device_id, compress_hyper_6_20_chunk.device_id_peer, compress_hyper_6_20_chunk.v0, compress_hyper_6_20_chunk.v1, compress_hyper_6_20_chunk.v2, compress_hyper_6_20_chunk.v3, compress_hyper_6_20_chunk._ts_meta_count, compress_hyper_6_20_chunk._ts_meta_sequence_num, compress_hyper_6_20_chunk._ts_meta_min_3, compress_hyper_6_20_chunk._ts_meta_max_3, compress_hyper_6_20_chunk._ts_meta_min_1, compress_hyper_6_20_chunk._ts_meta_max_1, compress_hyper_6_20_chunk._ts_meta_min_2, compress_hyper_6_20_chunk._ts_meta_max_2
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_11_chunk (actual rows=1512 loops=1)
|
||||
Output: _hyper_2_11_chunk.device_id_peer, _hyper_2_11_chunk.device_id
|
||||
-> Index Scan using compress_hyper_6_21_chunk_c_space_index_2 on _timescaledb_internal.compress_hyper_6_21_chunk (actual rows=3 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_21_chunk (actual rows=3 loops=1)
|
||||
Output: compress_hyper_6_21_chunk."time", compress_hyper_6_21_chunk.device_id, compress_hyper_6_21_chunk.device_id_peer, compress_hyper_6_21_chunk.v0, compress_hyper_6_21_chunk.v1, compress_hyper_6_21_chunk.v2, compress_hyper_6_21_chunk.v3, compress_hyper_6_21_chunk._ts_meta_count, compress_hyper_6_21_chunk._ts_meta_sequence_num, compress_hyper_6_21_chunk._ts_meta_min_3, compress_hyper_6_21_chunk._ts_meta_max_3, compress_hyper_6_21_chunk._ts_meta_min_1, compress_hyper_6_21_chunk._ts_meta_max_1, compress_hyper_6_21_chunk._ts_meta_min_2, compress_hyper_6_21_chunk._ts_meta_max_2
|
||||
-> Bitmap Heap Scan on _timescaledb_internal._hyper_2_12_chunk (actual rows=504 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_2_12_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_12_chunk.device_id_peer, _hyper_2_12_chunk.device_id
|
||||
Heap Blocks: exact=5
|
||||
-> Bitmap Index Scan on _hyper_2_12_chunk_metrics_space_device_id_device_id_peer_v0_v_2 (actual rows=504 loops=1)
|
||||
-> Hash (actual rows=2 loops=1)
|
||||
Output: "*VALUES*".column1
|
||||
Buckets: 1024 Batches: 1
|
||||
-> Values Scan on "*VALUES*" (actual rows=2 loops=1)
|
||||
Output: "*VALUES*".column1
|
||||
(45 rows)
|
||||
(37 rows)
|
||||
|
||||
SET enable_indexscan TO TRUE;
|
||||
SET enable_seqscan TO TRUE;
|
||||
-- test view
|
||||
CREATE OR REPLACE VIEW compressed_view AS
|
||||
SELECT time,
|
||||
|
@ -2268,9 +2268,6 @@ WHERE device_id IN (
|
||||
(18 rows)
|
||||
|
||||
RESET seq_page_cost;
|
||||
-- force a BitmapHeapScan
|
||||
SET enable_indexscan TO FALSE;
|
||||
SET enable_seqscan TO FALSE;
|
||||
:PREFIX_VERBOSE
|
||||
SELECT device_id_peer
|
||||
FROM :TEST_TABLE
|
||||
@ -2281,25 +2278,21 @@ WHERE device_id IN (
|
||||
Append (actual rows=1368 loops=1)
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_1_chunk (actual rows=360 loops=1)
|
||||
Output: _hyper_1_1_chunk.device_id_peer
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_5_15_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_5_15_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_5_15_chunk."time", compress_hyper_5_15_chunk.device_id, compress_hyper_5_15_chunk.device_id_peer, compress_hyper_5_15_chunk.v0, compress_hyper_5_15_chunk.v1, compress_hyper_5_15_chunk.v2, compress_hyper_5_15_chunk.v3, compress_hyper_5_15_chunk._ts_meta_count, compress_hyper_5_15_chunk._ts_meta_sequence_num, compress_hyper_5_15_chunk._ts_meta_min_3, compress_hyper_5_15_chunk._ts_meta_max_3, compress_hyper_5_15_chunk._ts_meta_min_1, compress_hyper_5_15_chunk._ts_meta_max_1, compress_hyper_5_15_chunk._ts_meta_min_2, compress_hyper_5_15_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_5_15_chunk.device_id = 1)
|
||||
Heap Blocks: exact=1
|
||||
-> Bitmap Index Scan on compress_hyper_5_15_chunk_c_index_2 (actual rows=1 loops=1)
|
||||
Index Cond: (compress_hyper_5_15_chunk.device_id = 1)
|
||||
Filter: (compress_hyper_5_15_chunk.device_id = 1)
|
||||
Rows Removed by Filter: 4
|
||||
-> Seq Scan on _timescaledb_internal._hyper_1_2_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_1_2_chunk.device_id_peer
|
||||
Filter: (_hyper_1_2_chunk.device_id = 1)
|
||||
Rows Removed by Filter: 2016
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_3_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_1_3_chunk.device_id_peer
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_5_16_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_5_16_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_5_16_chunk."time", compress_hyper_5_16_chunk.device_id, compress_hyper_5_16_chunk.device_id_peer, compress_hyper_5_16_chunk.v0, compress_hyper_5_16_chunk.v1, compress_hyper_5_16_chunk.v2, compress_hyper_5_16_chunk.v3, compress_hyper_5_16_chunk._ts_meta_count, compress_hyper_5_16_chunk._ts_meta_sequence_num, compress_hyper_5_16_chunk._ts_meta_min_3, compress_hyper_5_16_chunk._ts_meta_max_3, compress_hyper_5_16_chunk._ts_meta_min_1, compress_hyper_5_16_chunk._ts_meta_max_1, compress_hyper_5_16_chunk._ts_meta_min_2, compress_hyper_5_16_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_5_16_chunk.device_id = 1)
|
||||
Heap Blocks: exact=1
|
||||
-> Bitmap Index Scan on compress_hyper_5_16_chunk_c_index_2 (actual rows=1 loops=1)
|
||||
Index Cond: (compress_hyper_5_16_chunk.device_id = 1)
|
||||
(21 rows)
|
||||
Filter: (compress_hyper_5_16_chunk.device_id = 1)
|
||||
Rows Removed by Filter: 4
|
||||
(17 rows)
|
||||
|
||||
:PREFIX_VERBOSE
|
||||
SELECT device_id_peer
|
||||
@ -2323,12 +2316,9 @@ WHERE device_id IN (
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_1_chunk (actual rows=360 loops=2)
|
||||
Output: _hyper_1_1_chunk.device_id_peer, _hyper_1_1_chunk.device_id
|
||||
Filter: ("*VALUES*".column1 = _hyper_1_1_chunk.device_id)
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_5_15_chunk (actual rows=1 loops=2)
|
||||
-> Index Scan using compress_hyper_5_15_chunk_c_index_2 on _timescaledb_internal.compress_hyper_5_15_chunk (actual rows=1 loops=2)
|
||||
Output: compress_hyper_5_15_chunk."time", compress_hyper_5_15_chunk.device_id, compress_hyper_5_15_chunk.device_id_peer, compress_hyper_5_15_chunk.v0, compress_hyper_5_15_chunk.v1, compress_hyper_5_15_chunk.v2, compress_hyper_5_15_chunk.v3, compress_hyper_5_15_chunk._ts_meta_count, compress_hyper_5_15_chunk._ts_meta_sequence_num, compress_hyper_5_15_chunk._ts_meta_min_3, compress_hyper_5_15_chunk._ts_meta_max_3, compress_hyper_5_15_chunk._ts_meta_min_1, compress_hyper_5_15_chunk._ts_meta_max_1, compress_hyper_5_15_chunk._ts_meta_min_2, compress_hyper_5_15_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_5_15_chunk.device_id = "*VALUES*".column1)
|
||||
Heap Blocks: exact=2
|
||||
-> Bitmap Index Scan on compress_hyper_5_15_chunk_c_index_2 (actual rows=1 loops=2)
|
||||
Index Cond: (compress_hyper_5_15_chunk.device_id = "*VALUES*".column1)
|
||||
Index Cond: (compress_hyper_5_15_chunk.device_id = "*VALUES*".column1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_1_2_chunk (actual rows=504 loops=2)
|
||||
Output: _hyper_1_2_chunk.device_id_peer, _hyper_1_2_chunk.device_id
|
||||
Filter: ("*VALUES*".column1 = _hyper_1_2_chunk.device_id)
|
||||
@ -2336,16 +2326,11 @@ WHERE device_id IN (
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_3_chunk (actual rows=504 loops=2)
|
||||
Output: _hyper_1_3_chunk.device_id_peer, _hyper_1_3_chunk.device_id
|
||||
Filter: ("*VALUES*".column1 = _hyper_1_3_chunk.device_id)
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_5_16_chunk (actual rows=1 loops=2)
|
||||
-> Index Scan using compress_hyper_5_16_chunk_c_index_2 on _timescaledb_internal.compress_hyper_5_16_chunk (actual rows=1 loops=2)
|
||||
Output: compress_hyper_5_16_chunk."time", compress_hyper_5_16_chunk.device_id, compress_hyper_5_16_chunk.device_id_peer, compress_hyper_5_16_chunk.v0, compress_hyper_5_16_chunk.v1, compress_hyper_5_16_chunk.v2, compress_hyper_5_16_chunk.v3, compress_hyper_5_16_chunk._ts_meta_count, compress_hyper_5_16_chunk._ts_meta_sequence_num, compress_hyper_5_16_chunk._ts_meta_min_3, compress_hyper_5_16_chunk._ts_meta_max_3, compress_hyper_5_16_chunk._ts_meta_min_1, compress_hyper_5_16_chunk._ts_meta_max_1, compress_hyper_5_16_chunk._ts_meta_min_2, compress_hyper_5_16_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_5_16_chunk.device_id = "*VALUES*".column1)
|
||||
Heap Blocks: exact=2
|
||||
-> Bitmap Index Scan on compress_hyper_5_16_chunk_c_index_2 (actual rows=1 loops=2)
|
||||
Index Cond: (compress_hyper_5_16_chunk.device_id = "*VALUES*".column1)
|
||||
(33 rows)
|
||||
Index Cond: (compress_hyper_5_16_chunk.device_id = "*VALUES*".column1)
|
||||
(27 rows)
|
||||
|
||||
SET enable_indexscan TO TRUE;
|
||||
SET enable_seqscan TO TRUE;
|
||||
-- test view
|
||||
CREATE OR REPLACE VIEW compressed_view AS
|
||||
SELECT time,
|
||||
@ -6654,9 +6639,6 @@ WHERE device_id IN (
|
||||
(52 rows)
|
||||
|
||||
RESET seq_page_cost;
|
||||
-- force a BitmapHeapScan
|
||||
SET enable_indexscan TO FALSE;
|
||||
SET enable_seqscan TO FALSE;
|
||||
:PREFIX_VERBOSE
|
||||
SELECT device_id_peer
|
||||
FROM :TEST_TABLE
|
||||
@ -6667,27 +6649,18 @@ WHERE device_id IN (
|
||||
Append (actual rows=1368 loops=1)
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_4_chunk (actual rows=360 loops=1)
|
||||
Output: _hyper_2_4_chunk.device_id_peer
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_6_17_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_17_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_6_17_chunk."time", compress_hyper_6_17_chunk.device_id, compress_hyper_6_17_chunk.device_id_peer, compress_hyper_6_17_chunk.v0, compress_hyper_6_17_chunk.v1, compress_hyper_6_17_chunk.v2, compress_hyper_6_17_chunk.v3, compress_hyper_6_17_chunk._ts_meta_count, compress_hyper_6_17_chunk._ts_meta_sequence_num, compress_hyper_6_17_chunk._ts_meta_min_3, compress_hyper_6_17_chunk._ts_meta_max_3, compress_hyper_6_17_chunk._ts_meta_min_1, compress_hyper_6_17_chunk._ts_meta_max_1, compress_hyper_6_17_chunk._ts_meta_min_2, compress_hyper_6_17_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_6_17_chunk.device_id = 1)
|
||||
Heap Blocks: exact=1
|
||||
-> Bitmap Index Scan on compress_hyper_6_17_chunk_c_space_index_2 (actual rows=1 loops=1)
|
||||
Index Cond: (compress_hyper_6_17_chunk.device_id = 1)
|
||||
-> Bitmap Heap Scan on _timescaledb_internal._hyper_2_7_chunk (actual rows=504 loops=1)
|
||||
Filter: (compress_hyper_6_17_chunk.device_id = 1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_2_7_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_7_chunk.device_id_peer
|
||||
Recheck Cond: (_hyper_2_7_chunk.device_id = 1)
|
||||
Heap Blocks: exact=5
|
||||
-> Bitmap Index Scan on _hyper_2_7_chunk_metrics_space_device_id_device_id_peer_v0_v1_2 (actual rows=504 loops=1)
|
||||
Index Cond: (_hyper_2_7_chunk.device_id = 1)
|
||||
Filter: (_hyper_2_7_chunk.device_id = 1)
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_10_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_10_chunk.device_id_peer
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_6_20_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_20_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_6_20_chunk."time", compress_hyper_6_20_chunk.device_id, compress_hyper_6_20_chunk.device_id_peer, compress_hyper_6_20_chunk.v0, compress_hyper_6_20_chunk.v1, compress_hyper_6_20_chunk.v2, compress_hyper_6_20_chunk.v3, compress_hyper_6_20_chunk._ts_meta_count, compress_hyper_6_20_chunk._ts_meta_sequence_num, compress_hyper_6_20_chunk._ts_meta_min_3, compress_hyper_6_20_chunk._ts_meta_max_3, compress_hyper_6_20_chunk._ts_meta_min_1, compress_hyper_6_20_chunk._ts_meta_max_1, compress_hyper_6_20_chunk._ts_meta_min_2, compress_hyper_6_20_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_6_20_chunk.device_id = 1)
|
||||
Heap Blocks: exact=1
|
||||
-> Bitmap Index Scan on compress_hyper_6_20_chunk_c_space_index_2 (actual rows=1 loops=1)
|
||||
Index Cond: (compress_hyper_6_20_chunk.device_id = 1)
|
||||
(23 rows)
|
||||
Filter: (compress_hyper_6_20_chunk.device_id = 1)
|
||||
(14 rows)
|
||||
|
||||
:PREFIX_VERBOSE
|
||||
SELECT device_id_peer
|
||||
@ -6703,49 +6676,39 @@ WHERE device_id IN (
|
||||
-> Append (actual rows=6840 loops=1)
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_4_chunk (actual rows=360 loops=1)
|
||||
Output: _hyper_2_4_chunk.device_id_peer, _hyper_2_4_chunk.device_id
|
||||
-> Index Scan using compress_hyper_6_17_chunk_c_space_index_2 on _timescaledb_internal.compress_hyper_6_17_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_17_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_6_17_chunk."time", compress_hyper_6_17_chunk.device_id, compress_hyper_6_17_chunk.device_id_peer, compress_hyper_6_17_chunk.v0, compress_hyper_6_17_chunk.v1, compress_hyper_6_17_chunk.v2, compress_hyper_6_17_chunk.v3, compress_hyper_6_17_chunk._ts_meta_count, compress_hyper_6_17_chunk._ts_meta_sequence_num, compress_hyper_6_17_chunk._ts_meta_min_3, compress_hyper_6_17_chunk._ts_meta_max_3, compress_hyper_6_17_chunk._ts_meta_min_1, compress_hyper_6_17_chunk._ts_meta_max_1, compress_hyper_6_17_chunk._ts_meta_min_2, compress_hyper_6_17_chunk._ts_meta_max_2
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_5_chunk (actual rows=1080 loops=1)
|
||||
Output: _hyper_2_5_chunk.device_id_peer, _hyper_2_5_chunk.device_id
|
||||
-> Index Scan using compress_hyper_6_18_chunk_c_space_index_2 on _timescaledb_internal.compress_hyper_6_18_chunk (actual rows=3 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_18_chunk (actual rows=3 loops=1)
|
||||
Output: compress_hyper_6_18_chunk."time", compress_hyper_6_18_chunk.device_id, compress_hyper_6_18_chunk.device_id_peer, compress_hyper_6_18_chunk.v0, compress_hyper_6_18_chunk.v1, compress_hyper_6_18_chunk.v2, compress_hyper_6_18_chunk.v3, compress_hyper_6_18_chunk._ts_meta_count, compress_hyper_6_18_chunk._ts_meta_sequence_num, compress_hyper_6_18_chunk._ts_meta_min_3, compress_hyper_6_18_chunk._ts_meta_max_3, compress_hyper_6_18_chunk._ts_meta_min_1, compress_hyper_6_18_chunk._ts_meta_max_1, compress_hyper_6_18_chunk._ts_meta_min_2, compress_hyper_6_18_chunk._ts_meta_max_2
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_6_chunk (actual rows=360 loops=1)
|
||||
Output: _hyper_2_6_chunk.device_id_peer, _hyper_2_6_chunk.device_id
|
||||
-> Index Scan using compress_hyper_6_19_chunk_c_space_index_2 on _timescaledb_internal.compress_hyper_6_19_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_19_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_6_19_chunk."time", compress_hyper_6_19_chunk.device_id, compress_hyper_6_19_chunk.device_id_peer, compress_hyper_6_19_chunk.v0, compress_hyper_6_19_chunk.v1, compress_hyper_6_19_chunk.v2, compress_hyper_6_19_chunk.v3, compress_hyper_6_19_chunk._ts_meta_count, compress_hyper_6_19_chunk._ts_meta_sequence_num, compress_hyper_6_19_chunk._ts_meta_min_3, compress_hyper_6_19_chunk._ts_meta_max_3, compress_hyper_6_19_chunk._ts_meta_min_1, compress_hyper_6_19_chunk._ts_meta_max_1, compress_hyper_6_19_chunk._ts_meta_min_2, compress_hyper_6_19_chunk._ts_meta_max_2
|
||||
-> Bitmap Heap Scan on _timescaledb_internal._hyper_2_7_chunk (actual rows=504 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_2_7_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_7_chunk.device_id_peer, _hyper_2_7_chunk.device_id
|
||||
Heap Blocks: exact=5
|
||||
-> Bitmap Index Scan on _hyper_2_7_chunk_metrics_space_device_id_device_id_peer_v0_v1_2 (actual rows=504 loops=1)
|
||||
-> Bitmap Heap Scan on _timescaledb_internal._hyper_2_8_chunk (actual rows=1512 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_2_8_chunk (actual rows=1512 loops=1)
|
||||
Output: _hyper_2_8_chunk.device_id_peer, _hyper_2_8_chunk.device_id
|
||||
Heap Blocks: exact=13
|
||||
-> Bitmap Index Scan on _hyper_2_8_chunk_metrics_space_device_id_device_id_peer_v0_v1_2 (actual rows=1512 loops=1)
|
||||
-> Bitmap Heap Scan on _timescaledb_internal._hyper_2_9_chunk (actual rows=504 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_2_9_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_9_chunk.device_id_peer, _hyper_2_9_chunk.device_id
|
||||
Heap Blocks: exact=5
|
||||
-> Bitmap Index Scan on _hyper_2_9_chunk_metrics_space_device_id_device_id_peer_v0_v1_2 (actual rows=504 loops=1)
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_10_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_10_chunk.device_id_peer, _hyper_2_10_chunk.device_id
|
||||
-> Index Scan using compress_hyper_6_20_chunk_c_space_index_2 on _timescaledb_internal.compress_hyper_6_20_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_20_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_6_20_chunk."time", compress_hyper_6_20_chunk.device_id, compress_hyper_6_20_chunk.device_id_peer, compress_hyper_6_20_chunk.v0, compress_hyper_6_20_chunk.v1, compress_hyper_6_20_chunk.v2, compress_hyper_6_20_chunk.v3, compress_hyper_6_20_chunk._ts_meta_count, compress_hyper_6_20_chunk._ts_meta_sequence_num, compress_hyper_6_20_chunk._ts_meta_min_3, compress_hyper_6_20_chunk._ts_meta_max_3, compress_hyper_6_20_chunk._ts_meta_min_1, compress_hyper_6_20_chunk._ts_meta_max_1, compress_hyper_6_20_chunk._ts_meta_min_2, compress_hyper_6_20_chunk._ts_meta_max_2
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_11_chunk (actual rows=1512 loops=1)
|
||||
Output: _hyper_2_11_chunk.device_id_peer, _hyper_2_11_chunk.device_id
|
||||
-> Index Scan using compress_hyper_6_21_chunk_c_space_index_2 on _timescaledb_internal.compress_hyper_6_21_chunk (actual rows=3 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_21_chunk (actual rows=3 loops=1)
|
||||
Output: compress_hyper_6_21_chunk."time", compress_hyper_6_21_chunk.device_id, compress_hyper_6_21_chunk.device_id_peer, compress_hyper_6_21_chunk.v0, compress_hyper_6_21_chunk.v1, compress_hyper_6_21_chunk.v2, compress_hyper_6_21_chunk.v3, compress_hyper_6_21_chunk._ts_meta_count, compress_hyper_6_21_chunk._ts_meta_sequence_num, compress_hyper_6_21_chunk._ts_meta_min_3, compress_hyper_6_21_chunk._ts_meta_max_3, compress_hyper_6_21_chunk._ts_meta_min_1, compress_hyper_6_21_chunk._ts_meta_max_1, compress_hyper_6_21_chunk._ts_meta_min_2, compress_hyper_6_21_chunk._ts_meta_max_2
|
||||
-> Bitmap Heap Scan on _timescaledb_internal._hyper_2_12_chunk (actual rows=504 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_2_12_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_12_chunk.device_id_peer, _hyper_2_12_chunk.device_id
|
||||
Heap Blocks: exact=5
|
||||
-> Bitmap Index Scan on _hyper_2_12_chunk_metrics_space_device_id_device_id_peer_v0_v_2 (actual rows=504 loops=1)
|
||||
-> Hash (actual rows=2 loops=1)
|
||||
Output: "*VALUES*".column1
|
||||
Buckets: 1024 Batches: 1
|
||||
-> Values Scan on "*VALUES*" (actual rows=2 loops=1)
|
||||
Output: "*VALUES*".column1
|
||||
(45 rows)
|
||||
(37 rows)
|
||||
|
||||
SET enable_indexscan TO TRUE;
|
||||
SET enable_seqscan TO TRUE;
|
||||
-- test view
|
||||
CREATE OR REPLACE VIEW compressed_view AS
|
||||
SELECT time,
|
||||
|
@ -2268,9 +2268,6 @@ WHERE device_id IN (
|
||||
(18 rows)
|
||||
|
||||
RESET seq_page_cost;
|
||||
-- force a BitmapHeapScan
|
||||
SET enable_indexscan TO FALSE;
|
||||
SET enable_seqscan TO FALSE;
|
||||
:PREFIX_VERBOSE
|
||||
SELECT device_id_peer
|
||||
FROM :TEST_TABLE
|
||||
@ -2281,25 +2278,21 @@ WHERE device_id IN (
|
||||
Append (actual rows=1368 loops=1)
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_1_chunk (actual rows=360 loops=1)
|
||||
Output: _hyper_1_1_chunk.device_id_peer
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_5_15_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_5_15_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_5_15_chunk."time", compress_hyper_5_15_chunk.device_id, compress_hyper_5_15_chunk.device_id_peer, compress_hyper_5_15_chunk.v0, compress_hyper_5_15_chunk.v1, compress_hyper_5_15_chunk.v2, compress_hyper_5_15_chunk.v3, compress_hyper_5_15_chunk._ts_meta_count, compress_hyper_5_15_chunk._ts_meta_sequence_num, compress_hyper_5_15_chunk._ts_meta_min_3, compress_hyper_5_15_chunk._ts_meta_max_3, compress_hyper_5_15_chunk._ts_meta_min_1, compress_hyper_5_15_chunk._ts_meta_max_1, compress_hyper_5_15_chunk._ts_meta_min_2, compress_hyper_5_15_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_5_15_chunk.device_id = 1)
|
||||
Heap Blocks: exact=1
|
||||
-> Bitmap Index Scan on compress_hyper_5_15_chunk_c_index_2 (actual rows=1 loops=1)
|
||||
Index Cond: (compress_hyper_5_15_chunk.device_id = 1)
|
||||
Filter: (compress_hyper_5_15_chunk.device_id = 1)
|
||||
Rows Removed by Filter: 4
|
||||
-> Seq Scan on _timescaledb_internal._hyper_1_2_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_1_2_chunk.device_id_peer
|
||||
Filter: (_hyper_1_2_chunk.device_id = 1)
|
||||
Rows Removed by Filter: 2016
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_3_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_1_3_chunk.device_id_peer
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_5_16_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_5_16_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_5_16_chunk."time", compress_hyper_5_16_chunk.device_id, compress_hyper_5_16_chunk.device_id_peer, compress_hyper_5_16_chunk.v0, compress_hyper_5_16_chunk.v1, compress_hyper_5_16_chunk.v2, compress_hyper_5_16_chunk.v3, compress_hyper_5_16_chunk._ts_meta_count, compress_hyper_5_16_chunk._ts_meta_sequence_num, compress_hyper_5_16_chunk._ts_meta_min_3, compress_hyper_5_16_chunk._ts_meta_max_3, compress_hyper_5_16_chunk._ts_meta_min_1, compress_hyper_5_16_chunk._ts_meta_max_1, compress_hyper_5_16_chunk._ts_meta_min_2, compress_hyper_5_16_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_5_16_chunk.device_id = 1)
|
||||
Heap Blocks: exact=1
|
||||
-> Bitmap Index Scan on compress_hyper_5_16_chunk_c_index_2 (actual rows=1 loops=1)
|
||||
Index Cond: (compress_hyper_5_16_chunk.device_id = 1)
|
||||
(21 rows)
|
||||
Filter: (compress_hyper_5_16_chunk.device_id = 1)
|
||||
Rows Removed by Filter: 4
|
||||
(17 rows)
|
||||
|
||||
:PREFIX_VERBOSE
|
||||
SELECT device_id_peer
|
||||
@ -2323,12 +2316,9 @@ WHERE device_id IN (
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_1_chunk (actual rows=360 loops=2)
|
||||
Output: _hyper_1_1_chunk.device_id_peer, _hyper_1_1_chunk.device_id
|
||||
Filter: ("*VALUES*".column1 = _hyper_1_1_chunk.device_id)
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_5_15_chunk (actual rows=1 loops=2)
|
||||
-> Index Scan using compress_hyper_5_15_chunk_c_index_2 on _timescaledb_internal.compress_hyper_5_15_chunk (actual rows=1 loops=2)
|
||||
Output: compress_hyper_5_15_chunk."time", compress_hyper_5_15_chunk.device_id, compress_hyper_5_15_chunk.device_id_peer, compress_hyper_5_15_chunk.v0, compress_hyper_5_15_chunk.v1, compress_hyper_5_15_chunk.v2, compress_hyper_5_15_chunk.v3, compress_hyper_5_15_chunk._ts_meta_count, compress_hyper_5_15_chunk._ts_meta_sequence_num, compress_hyper_5_15_chunk._ts_meta_min_3, compress_hyper_5_15_chunk._ts_meta_max_3, compress_hyper_5_15_chunk._ts_meta_min_1, compress_hyper_5_15_chunk._ts_meta_max_1, compress_hyper_5_15_chunk._ts_meta_min_2, compress_hyper_5_15_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_5_15_chunk.device_id = "*VALUES*".column1)
|
||||
Heap Blocks: exact=2
|
||||
-> Bitmap Index Scan on compress_hyper_5_15_chunk_c_index_2 (actual rows=1 loops=2)
|
||||
Index Cond: (compress_hyper_5_15_chunk.device_id = "*VALUES*".column1)
|
||||
Index Cond: (compress_hyper_5_15_chunk.device_id = "*VALUES*".column1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_1_2_chunk (actual rows=504 loops=2)
|
||||
Output: _hyper_1_2_chunk.device_id_peer, _hyper_1_2_chunk.device_id
|
||||
Filter: ("*VALUES*".column1 = _hyper_1_2_chunk.device_id)
|
||||
@ -2336,16 +2326,11 @@ WHERE device_id IN (
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_1_3_chunk (actual rows=504 loops=2)
|
||||
Output: _hyper_1_3_chunk.device_id_peer, _hyper_1_3_chunk.device_id
|
||||
Filter: ("*VALUES*".column1 = _hyper_1_3_chunk.device_id)
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_5_16_chunk (actual rows=1 loops=2)
|
||||
-> Index Scan using compress_hyper_5_16_chunk_c_index_2 on _timescaledb_internal.compress_hyper_5_16_chunk (actual rows=1 loops=2)
|
||||
Output: compress_hyper_5_16_chunk."time", compress_hyper_5_16_chunk.device_id, compress_hyper_5_16_chunk.device_id_peer, compress_hyper_5_16_chunk.v0, compress_hyper_5_16_chunk.v1, compress_hyper_5_16_chunk.v2, compress_hyper_5_16_chunk.v3, compress_hyper_5_16_chunk._ts_meta_count, compress_hyper_5_16_chunk._ts_meta_sequence_num, compress_hyper_5_16_chunk._ts_meta_min_3, compress_hyper_5_16_chunk._ts_meta_max_3, compress_hyper_5_16_chunk._ts_meta_min_1, compress_hyper_5_16_chunk._ts_meta_max_1, compress_hyper_5_16_chunk._ts_meta_min_2, compress_hyper_5_16_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_5_16_chunk.device_id = "*VALUES*".column1)
|
||||
Heap Blocks: exact=2
|
||||
-> Bitmap Index Scan on compress_hyper_5_16_chunk_c_index_2 (actual rows=1 loops=2)
|
||||
Index Cond: (compress_hyper_5_16_chunk.device_id = "*VALUES*".column1)
|
||||
(33 rows)
|
||||
Index Cond: (compress_hyper_5_16_chunk.device_id = "*VALUES*".column1)
|
||||
(27 rows)
|
||||
|
||||
SET enable_indexscan TO TRUE;
|
||||
SET enable_seqscan TO TRUE;
|
||||
-- test view
|
||||
CREATE OR REPLACE VIEW compressed_view AS
|
||||
SELECT time,
|
||||
@ -6654,9 +6639,6 @@ WHERE device_id IN (
|
||||
(52 rows)
|
||||
|
||||
RESET seq_page_cost;
|
||||
-- force a BitmapHeapScan
|
||||
SET enable_indexscan TO FALSE;
|
||||
SET enable_seqscan TO FALSE;
|
||||
:PREFIX_VERBOSE
|
||||
SELECT device_id_peer
|
||||
FROM :TEST_TABLE
|
||||
@ -6667,27 +6649,18 @@ WHERE device_id IN (
|
||||
Append (actual rows=1368 loops=1)
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_4_chunk (actual rows=360 loops=1)
|
||||
Output: _hyper_2_4_chunk.device_id_peer
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_6_17_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_17_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_6_17_chunk."time", compress_hyper_6_17_chunk.device_id, compress_hyper_6_17_chunk.device_id_peer, compress_hyper_6_17_chunk.v0, compress_hyper_6_17_chunk.v1, compress_hyper_6_17_chunk.v2, compress_hyper_6_17_chunk.v3, compress_hyper_6_17_chunk._ts_meta_count, compress_hyper_6_17_chunk._ts_meta_sequence_num, compress_hyper_6_17_chunk._ts_meta_min_3, compress_hyper_6_17_chunk._ts_meta_max_3, compress_hyper_6_17_chunk._ts_meta_min_1, compress_hyper_6_17_chunk._ts_meta_max_1, compress_hyper_6_17_chunk._ts_meta_min_2, compress_hyper_6_17_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_6_17_chunk.device_id = 1)
|
||||
Heap Blocks: exact=1
|
||||
-> Bitmap Index Scan on compress_hyper_6_17_chunk_c_space_index_2 (actual rows=1 loops=1)
|
||||
Index Cond: (compress_hyper_6_17_chunk.device_id = 1)
|
||||
-> Bitmap Heap Scan on _timescaledb_internal._hyper_2_7_chunk (actual rows=504 loops=1)
|
||||
Filter: (compress_hyper_6_17_chunk.device_id = 1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_2_7_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_7_chunk.device_id_peer
|
||||
Recheck Cond: (_hyper_2_7_chunk.device_id = 1)
|
||||
Heap Blocks: exact=5
|
||||
-> Bitmap Index Scan on _hyper_2_7_chunk_metrics_space_device_id_device_id_peer_v0_v1_2 (actual rows=504 loops=1)
|
||||
Index Cond: (_hyper_2_7_chunk.device_id = 1)
|
||||
Filter: (_hyper_2_7_chunk.device_id = 1)
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_10_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_10_chunk.device_id_peer
|
||||
-> Bitmap Heap Scan on _timescaledb_internal.compress_hyper_6_20_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_20_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_6_20_chunk."time", compress_hyper_6_20_chunk.device_id, compress_hyper_6_20_chunk.device_id_peer, compress_hyper_6_20_chunk.v0, compress_hyper_6_20_chunk.v1, compress_hyper_6_20_chunk.v2, compress_hyper_6_20_chunk.v3, compress_hyper_6_20_chunk._ts_meta_count, compress_hyper_6_20_chunk._ts_meta_sequence_num, compress_hyper_6_20_chunk._ts_meta_min_3, compress_hyper_6_20_chunk._ts_meta_max_3, compress_hyper_6_20_chunk._ts_meta_min_1, compress_hyper_6_20_chunk._ts_meta_max_1, compress_hyper_6_20_chunk._ts_meta_min_2, compress_hyper_6_20_chunk._ts_meta_max_2
|
||||
Recheck Cond: (compress_hyper_6_20_chunk.device_id = 1)
|
||||
Heap Blocks: exact=1
|
||||
-> Bitmap Index Scan on compress_hyper_6_20_chunk_c_space_index_2 (actual rows=1 loops=1)
|
||||
Index Cond: (compress_hyper_6_20_chunk.device_id = 1)
|
||||
(23 rows)
|
||||
Filter: (compress_hyper_6_20_chunk.device_id = 1)
|
||||
(14 rows)
|
||||
|
||||
:PREFIX_VERBOSE
|
||||
SELECT device_id_peer
|
||||
@ -6703,49 +6676,39 @@ WHERE device_id IN (
|
||||
-> Append (actual rows=6840 loops=1)
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_4_chunk (actual rows=360 loops=1)
|
||||
Output: _hyper_2_4_chunk.device_id_peer, _hyper_2_4_chunk.device_id
|
||||
-> Index Scan using compress_hyper_6_17_chunk_c_space_index_2 on _timescaledb_internal.compress_hyper_6_17_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_17_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_6_17_chunk."time", compress_hyper_6_17_chunk.device_id, compress_hyper_6_17_chunk.device_id_peer, compress_hyper_6_17_chunk.v0, compress_hyper_6_17_chunk.v1, compress_hyper_6_17_chunk.v2, compress_hyper_6_17_chunk.v3, compress_hyper_6_17_chunk._ts_meta_count, compress_hyper_6_17_chunk._ts_meta_sequence_num, compress_hyper_6_17_chunk._ts_meta_min_3, compress_hyper_6_17_chunk._ts_meta_max_3, compress_hyper_6_17_chunk._ts_meta_min_1, compress_hyper_6_17_chunk._ts_meta_max_1, compress_hyper_6_17_chunk._ts_meta_min_2, compress_hyper_6_17_chunk._ts_meta_max_2
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_5_chunk (actual rows=1080 loops=1)
|
||||
Output: _hyper_2_5_chunk.device_id_peer, _hyper_2_5_chunk.device_id
|
||||
-> Index Scan using compress_hyper_6_18_chunk_c_space_index_2 on _timescaledb_internal.compress_hyper_6_18_chunk (actual rows=3 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_18_chunk (actual rows=3 loops=1)
|
||||
Output: compress_hyper_6_18_chunk."time", compress_hyper_6_18_chunk.device_id, compress_hyper_6_18_chunk.device_id_peer, compress_hyper_6_18_chunk.v0, compress_hyper_6_18_chunk.v1, compress_hyper_6_18_chunk.v2, compress_hyper_6_18_chunk.v3, compress_hyper_6_18_chunk._ts_meta_count, compress_hyper_6_18_chunk._ts_meta_sequence_num, compress_hyper_6_18_chunk._ts_meta_min_3, compress_hyper_6_18_chunk._ts_meta_max_3, compress_hyper_6_18_chunk._ts_meta_min_1, compress_hyper_6_18_chunk._ts_meta_max_1, compress_hyper_6_18_chunk._ts_meta_min_2, compress_hyper_6_18_chunk._ts_meta_max_2
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_6_chunk (actual rows=360 loops=1)
|
||||
Output: _hyper_2_6_chunk.device_id_peer, _hyper_2_6_chunk.device_id
|
||||
-> Index Scan using compress_hyper_6_19_chunk_c_space_index_2 on _timescaledb_internal.compress_hyper_6_19_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_19_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_6_19_chunk."time", compress_hyper_6_19_chunk.device_id, compress_hyper_6_19_chunk.device_id_peer, compress_hyper_6_19_chunk.v0, compress_hyper_6_19_chunk.v1, compress_hyper_6_19_chunk.v2, compress_hyper_6_19_chunk.v3, compress_hyper_6_19_chunk._ts_meta_count, compress_hyper_6_19_chunk._ts_meta_sequence_num, compress_hyper_6_19_chunk._ts_meta_min_3, compress_hyper_6_19_chunk._ts_meta_max_3, compress_hyper_6_19_chunk._ts_meta_min_1, compress_hyper_6_19_chunk._ts_meta_max_1, compress_hyper_6_19_chunk._ts_meta_min_2, compress_hyper_6_19_chunk._ts_meta_max_2
|
||||
-> Bitmap Heap Scan on _timescaledb_internal._hyper_2_7_chunk (actual rows=504 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_2_7_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_7_chunk.device_id_peer, _hyper_2_7_chunk.device_id
|
||||
Heap Blocks: exact=5
|
||||
-> Bitmap Index Scan on _hyper_2_7_chunk_metrics_space_device_id_device_id_peer_v0_v1_2 (actual rows=504 loops=1)
|
||||
-> Bitmap Heap Scan on _timescaledb_internal._hyper_2_8_chunk (actual rows=1512 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_2_8_chunk (actual rows=1512 loops=1)
|
||||
Output: _hyper_2_8_chunk.device_id_peer, _hyper_2_8_chunk.device_id
|
||||
Heap Blocks: exact=13
|
||||
-> Bitmap Index Scan on _hyper_2_8_chunk_metrics_space_device_id_device_id_peer_v0_v1_2 (actual rows=1512 loops=1)
|
||||
-> Bitmap Heap Scan on _timescaledb_internal._hyper_2_9_chunk (actual rows=504 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_2_9_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_9_chunk.device_id_peer, _hyper_2_9_chunk.device_id
|
||||
Heap Blocks: exact=5
|
||||
-> Bitmap Index Scan on _hyper_2_9_chunk_metrics_space_device_id_device_id_peer_v0_v1_2 (actual rows=504 loops=1)
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_10_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_10_chunk.device_id_peer, _hyper_2_10_chunk.device_id
|
||||
-> Index Scan using compress_hyper_6_20_chunk_c_space_index_2 on _timescaledb_internal.compress_hyper_6_20_chunk (actual rows=1 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_20_chunk (actual rows=1 loops=1)
|
||||
Output: compress_hyper_6_20_chunk."time", compress_hyper_6_20_chunk.device_id, compress_hyper_6_20_chunk.device_id_peer, compress_hyper_6_20_chunk.v0, compress_hyper_6_20_chunk.v1, compress_hyper_6_20_chunk.v2, compress_hyper_6_20_chunk.v3, compress_hyper_6_20_chunk._ts_meta_count, compress_hyper_6_20_chunk._ts_meta_sequence_num, compress_hyper_6_20_chunk._ts_meta_min_3, compress_hyper_6_20_chunk._ts_meta_max_3, compress_hyper_6_20_chunk._ts_meta_min_1, compress_hyper_6_20_chunk._ts_meta_max_1, compress_hyper_6_20_chunk._ts_meta_min_2, compress_hyper_6_20_chunk._ts_meta_max_2
|
||||
-> Custom Scan (DecompressChunk) on _timescaledb_internal._hyper_2_11_chunk (actual rows=1512 loops=1)
|
||||
Output: _hyper_2_11_chunk.device_id_peer, _hyper_2_11_chunk.device_id
|
||||
-> Index Scan using compress_hyper_6_21_chunk_c_space_index_2 on _timescaledb_internal.compress_hyper_6_21_chunk (actual rows=3 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal.compress_hyper_6_21_chunk (actual rows=3 loops=1)
|
||||
Output: compress_hyper_6_21_chunk."time", compress_hyper_6_21_chunk.device_id, compress_hyper_6_21_chunk.device_id_peer, compress_hyper_6_21_chunk.v0, compress_hyper_6_21_chunk.v1, compress_hyper_6_21_chunk.v2, compress_hyper_6_21_chunk.v3, compress_hyper_6_21_chunk._ts_meta_count, compress_hyper_6_21_chunk._ts_meta_sequence_num, compress_hyper_6_21_chunk._ts_meta_min_3, compress_hyper_6_21_chunk._ts_meta_max_3, compress_hyper_6_21_chunk._ts_meta_min_1, compress_hyper_6_21_chunk._ts_meta_max_1, compress_hyper_6_21_chunk._ts_meta_min_2, compress_hyper_6_21_chunk._ts_meta_max_2
|
||||
-> Bitmap Heap Scan on _timescaledb_internal._hyper_2_12_chunk (actual rows=504 loops=1)
|
||||
-> Seq Scan on _timescaledb_internal._hyper_2_12_chunk (actual rows=504 loops=1)
|
||||
Output: _hyper_2_12_chunk.device_id_peer, _hyper_2_12_chunk.device_id
|
||||
Heap Blocks: exact=5
|
||||
-> Bitmap Index Scan on _hyper_2_12_chunk_metrics_space_device_id_device_id_peer_v0_v_2 (actual rows=504 loops=1)
|
||||
-> Hash (actual rows=2 loops=1)
|
||||
Output: "*VALUES*".column1
|
||||
Buckets: 1024 Batches: 1
|
||||
-> Values Scan on "*VALUES*" (actual rows=2 loops=1)
|
||||
Output: "*VALUES*".column1
|
||||
(45 rows)
|
||||
(37 rows)
|
||||
|
||||
SET enable_indexscan TO TRUE;
|
||||
SET enable_seqscan TO TRUE;
|
||||
-- test view
|
||||
CREATE OR REPLACE VIEW compressed_view AS
|
||||
SELECT time,
|
||||
|
@ -114,8 +114,6 @@ GROUP BY
|
||||
_timescaledb_internal._hyper_
|
||||
(1 row)
|
||||
|
||||
-- make sure we get bitmapheapscan
|
||||
SET enable_indexscan TO FALSE;
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
|
@ -88,9 +88,6 @@ FROM
|
||||
GROUP BY
|
||||
tableoid;
|
||||
|
||||
-- make sure we get bitmapheapscan
|
||||
SET enable_indexscan TO FALSE;
|
||||
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
|
@ -626,11 +626,6 @@ WHERE device_id IN (
|
||||
|
||||
RESET seq_page_cost;
|
||||
|
||||
-- force a BitmapHeapScan
|
||||
SET enable_indexscan TO FALSE;
|
||||
|
||||
SET enable_seqscan TO FALSE;
|
||||
|
||||
:PREFIX_VERBOSE
|
||||
SELECT device_id_peer
|
||||
FROM :TEST_TABLE
|
||||
@ -644,10 +639,6 @@ WHERE device_id IN (
|
||||
VALUES (1),
|
||||
(2));
|
||||
|
||||
SET enable_indexscan TO TRUE;
|
||||
|
||||
SET enable_seqscan TO TRUE;
|
||||
|
||||
-- test view
|
||||
CREATE OR REPLACE VIEW compressed_view AS
|
||||
SELECT time,
|
||||
|
Loading…
x
Reference in New Issue
Block a user