Re: [HACKERS] No exact/lossy block information in EXPLAIN ANALYZE for a bitmap heap scan
On Fri, Jul 11, 2014 at 7:21 PM, Fujii Masao masao.fu...@gmail.com wrote: On Fri, Jul 11, 2014 at 5:45 PM, Etsuro Fujita fujita.ets...@lab.ntt.co.jp wrote: 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. The patch looks good to me. Barring any objection, I will commit this both in HEAD and 9.4. Committed! Regards, -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] No exact/lossy block information in EXPLAIN ANALYZE for a bitmap heap scan
(2014/07/14 21:01), Fujii Masao wrote: On Fri, Jul 11, 2014 at 7:21 PM, Fujii Masao masao.fu...@gmail.com wrote: On Fri, Jul 11, 2014 at 5:45 PM, Etsuro Fujita fujita.ets...@lab.ntt.co.jp wrote: 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. The patch looks good to me. Barring any objection, I will commit this both in HEAD and 9.4. Committed! Thanks! I have another proposal for show_tidbitmap_info(). That is about the following comment for show_tidbitmap_info(): /* * If it's EXPLAIN ANALYZE, show exact/lossy pages for a BitmapHeapScan node */ ISTM that the words If it's EXPLAIN ANALYZE are unnecessary. As the function is called in EXPLAIN ANALYZE, so the words are not wrong, but it doesn't seem to me suitable for the comment for the function itself. Patch attached. Thanks, Best regards, Etsuro Fujita diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index 781a736..07da169 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -1925,7 +1925,7 @@ show_hash_info(HashState *hashstate, ExplainState *es) } /* - * If it's EXPLAIN ANALYZE, show exact/lossy pages for a BitmapHeapScan node + * Show exact/lossy pages for a BitmapHeapScan node */ static void show_tidbitmap_info(BitmapHeapScanState *planstate, ExplainState *es) -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
[HACKERS] No exact/lossy block information in EXPLAIN ANALYZE for a bitmap heap scan
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 *** a/src/backend/commands/explain.c --- b/src/backend/commands/explain.c *** *** 1937,1949 show_tidbitmap_info(BitmapHeapScanState *planstate, ExplainState *es) } else { ! appendStringInfoSpaces(es-str, es-indent * 2); ! appendStringInfoString(es-str, Heap Blocks:); ! if (planstate-exact_pages 0) ! appendStringInfo(es-str, exact=%ld, planstate-exact_pages); ! if (planstate-lossy_pages 0) ! appendStringInfo(es-str, lossy=%ld, planstate-lossy_pages); ! appendStringInfoChar(es-str, '\n'); } } --- 1937,1952 } else { ! if (planstate-exact_pages 0 || planstate-lossy_pages 0) ! { ! appendStringInfoSpaces(es-str, es-indent * 2); ! appendStringInfoString(es-str, Heap Blocks:); ! if (planstate-exact_pages 0) ! appendStringInfo(es-str, exact=%ld, planstate-exact_pages); ! if (planstate-lossy_pages 0) ! appendStringInfo(es-str, lossy=%ld, planstate-lossy_pages); ! appendStringInfoChar(es-str, '\n'); ! } } } -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] No exact/lossy block information in EXPLAIN ANALYZE for a bitmap heap scan
On Fri, Jul 11, 2014 at 5:45 PM, Etsuro Fujita fujita.ets...@lab.ntt.co.jp wrote: 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. The patch looks good to me. Barring any objection, I will commit this both in HEAD and 9.4. Regards, -- Fujii Masao -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers