Re: [HACKERS] No exact/lossy block information in EXPLAIN ANALYZE for a bitmap heap scan

2014-07-14 Thread Fujii Masao
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 Thread Etsuro Fujita

(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

2014-07-11 Thread Etsuro Fujita
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

2014-07-11 Thread Fujii Masao
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