diff --git a/src/backend/access/nbtree/nbtree.c b/src/backend/access/nbtree/nbtree.c
index e75814dd8e830a45367fb19532af9996c9694ca7..512f2b087989ad121b589612cdc90570325aee5c 100644
--- a/src/backend/access/nbtree/nbtree.c
+++ b/src/backend/access/nbtree/nbtree.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.17 1997/03/24 08:48:11 vadim Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.18 1997/04/18 03:37:53 vadim Exp $
  *
  * NOTES
  *    This file contains only the public interface routines.
@@ -33,6 +33,12 @@
 # include <string.h>
 #endif
 
+#ifdef BTREE_BUILD_STATS
+#include <tcop/tcopprot.h>
+extern int ShowExecutorStats; 
+#endif
+
+
 bool	BuildingBtree = false;	/* see comment in btbuild() */
 bool	FastBuild = true;	/* use sort/build instead of insertion build */
 
@@ -77,10 +83,6 @@ btbuild(Relation heap,
     bool isunique;
     bool usefast;
 
-#if 0
-    ResetBufferUsage();
-#endif
-
     /* note that this is a new btree */
     BuildingBtree = true;
     
@@ -95,6 +97,11 @@ btbuild(Relation heap,
      */
     usefast = (FastBuild && IsNormalProcessingMode());
 
+#ifdef BTREE_BUILD_STATS
+    if ( ShowExecutorStats )
+    	ResetUsage ();
+#endif
+
     /* see if index is unique */
     isunique = IndexIsUniqueNoCache(RelationGetRelationId(index));
 
@@ -278,18 +285,15 @@ btbuild(Relation heap,
 	_bt_spooldestroy(spool);
     }
 
-#if 0
+#ifdef BTREE_BUILD_STATS
+    if ( ShowExecutorStats )
     {
-	extern int ReadBufferCount, BufferHitCount, BufferFlushCount;
-	extern long NDirectFileRead, NDirectFileWrite;
-
-	printf("buffer(%d): r=%d w=%d\n", heap->rd_rel->relblocksz,
-	       ReadBufferCount - BufferHitCount, BufferFlushCount);
-	printf("direct(%d): r=%d w=%d\n", LocalBlockSize,
-	       NDirectFileRead, NDirectFileWrite);
+    	fprintf(stderr, "! BtreeBuild Stats:\n");
+    	ShowUsage ();
+    	ResetUsage ();
     }
 #endif
-
+    	
     /*
      *  Since we just counted the tuples in the heap, we update its
      *  stats in pg_class to guarantee that the planner takes advantage
diff --git a/src/backend/access/nbtree/nbtsort.c b/src/backend/access/nbtree/nbtsort.c
index 6e382982a9bf129c742ae0f0556af77ba60a2856..978e73d33149249bf25fca46264cdd3beed94df3 100644
--- a/src/backend/access/nbtree/nbtsort.c
+++ b/src/backend/access/nbtree/nbtsort.c
@@ -5,7 +5,7 @@
  *
  *
  * IDENTIFICATION
- *    $Id: nbtsort.c,v 1.14 1997/04/16 01:48:27 vadim Exp $
+ *    $Id: nbtsort.c,v 1.15 1997/04/18 03:37:57 vadim Exp $
  *
  * NOTES
  *
@@ -63,6 +63,11 @@
 # include <string.h>
 #endif
 
+#ifdef BTREE_BUILD_STATS
+#include <tcop/tcopprot.h>
+extern int ShowExecutorStats;
+#endif
+
 /*
  * turn on debugging output.
  *
@@ -427,7 +432,7 @@ _bt_tapewrite(BTTapeBlock *tape, int eor)
 {
     tape->bttb_eor = eor;
     FileWrite(tape->bttb_fd, (char *) tape, TAPEBLCKSZ);
-    NDirectFileWrite += TAPEBLCKSZ;
+    NDirectFileWrite += TAPEBLCKSZ/MAXBLCKSZ;
     _bt_tapereset(tape);
 }
 
@@ -463,7 +468,7 @@ _bt_taperead(BTTapeBlock *tape)
 	return(0);
     }
     Assert(tape->bttb_magic == BTTAPEMAGIC);
-    NDirectFileRead += TAPEBLCKSZ;
+    NDirectFileRead += TAPEBLCKSZ/MAXBLCKSZ;
     return(1);
 }
 
@@ -1366,5 +1371,16 @@ void
 _bt_leafbuild(Relation index, void *spool)
 {
     _bt_isortcmpinit (index, (BTSpool *) spool);
+
+#ifdef BTREE_BUILD_STATS
+    if ( ShowExecutorStats )
+    {
+    	fprintf(stderr, "! BtreeBuild (Spool) Stats:\n");
+    	ShowUsage ();
+    	ResetUsage ();
+    }
+#endif
+
     _bt_merge(index, (BTSpool *) spool);
+
 }