I've noticed that EXPLAIN ANALYZE shows no information on exact/lossy
blocks for a bitmap heap scan when both the numbers of exact/lossy pages
retrieved by the node are zero. Such an example is shown below. I
think it would be better to suppress the 'Heap Blocks' line in that
case, based on the same idea of the 'Buffers' line. Patch attached.
postgres=# explain (analyze, verbose, buffers) select * from test where
id < 10;
QUERY PLAN
------------------------------------------------------------------------------------------------------------------
Bitmap Heap Scan on public.test (cost=4.29..8.31 rows=1 width=29)
(actual time=0.006..0.006 rows=0 loops=1)
Output: id, inserted, data
Recheck Cond: (test.id < 10)
Heap Blocks:
Buffers: shared hit=2
-> Bitmap Index Scan on test_pkey (cost=0.00..4.29 rows=1 width=0)
(actual time=0.003..0.003 rows=0 loops=1)
Index Cond: (test.id < 10)
Buffers: shared hit=2
Planning time: 0.118 ms
Execution time: 0.027 ms
(10 rows)
Thanks,
Best regards,
Etsuro Fujita