From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Jan Wieck <JanWieck(at)Yahoo(dot)com> |
Cc: | pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Re: Bug in new buffer freelist code |
Date: | 2003-12-23 22:03:34 |
Message-ID: | 28372.1072217014@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Jan Wieck <JanWieck(at)Yahoo(dot)com> 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
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2003-12-23 22:07:24 | Re: Quoting of psql \d output |
Previous Message | Jean-Michel POURE | 2003-12-23 22:03:22 | Re: PostgreSQL port to pure Java? |