Patch applied.  Thanks.

---------------------------------------------------------------------------


Qingqing Zhou wrote:
> 
> "Tom Lane" <[EMAIL PROTECTED]> writes
> >
> > WARNING:  relation "t1" page 196 is uninitialized --- fixing
> > TRAP: FailedAssertion("!((((PageHeader) ((PageHeader)
> pageHeader))->pd_upper == 0))", File: "hio.c", Line: 263)
> > LOG:  server process (PID 11296) was terminated by signal 6
> >
> 
> Inspired by this, can we put an asseration here:
> 
> ---
>   /*
>    * lookup the buffer.  IO_IN_PROGRESS is set if the requested
>    * block is not currently in memory.
>    */
>   bufHdr = BufferAlloc(reln, blockNum, &found);
> 
> + /* we are guaranted that nobody else has touched this will-be-new block */
> + Assert(!(found && isExtend));
> 
>   if (found)
>    BufferHitCount++;
> ---
> 
> BufferAlloc() consists of two parts, one is looking for the blockNum, the
> other is allocating a free buffer. If the asseration is good, then for
> "isExtend", we just need the second part. This could bring marginal
> performance benefits.
> 
> 
> Regards,
> Qingqing
> 
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Have you searched our list archives?
> 
>                http://archives.postgresql.org
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: src/backend/storage/buffer/bufmgr.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v
retrieving revision 1.193
diff -c -c -r1.193 bufmgr.c
*** src/backend/storage/buffer/bufmgr.c 12 Aug 2005 05:05:50 -0000      1.193
--- src/backend/storage/buffer/bufmgr.c 12 Aug 2005 21:40:41 -0000
***************
*** 153,158 ****
--- 153,160 ----
                 * block is not currently in memory.
                 */
                bufHdr = BufferAlloc(reln, blockNum, &found);
+               /* we are guaranted that nobody else has touched this 
will-be-new block */
+               Assert(!(found && isExtend));
                if (found)
                        BufferHitCount++;
        }
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to