Jan Wieck <[EMAIL PROTECTED]> writes:
> It seems to me that buffers that are thrown away via 
> StrategyInvalidateBuffer() do not get their relnode and blocknum cleaned 
> out.

Mmmm.  They definitely should be; if you look at the prior version of
buf_table.c, BufTableDelete did this:

    /*
     * Clear the buffer's tag.  This doesn't matter for the hash table,
     * since the buffer is already removed from it, but it ensures that
     * sequential searches through the buffer table won't think the buffer
     * is still valid for its old page.
     */
    buf->tag.rnode.relNode = InvalidOid;
    buf->tag.rnode.tblNode = InvalidOid;

I see you removed that from the current version, but the equivalent
thing needs to be done someplace.  Is StrategyInvalidateBuffer the
right place?

BTW, it kinda looks like the BM_DELETED flag bit is useless now?

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to