Re: foreign key locks

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Erik Rijkers <er@xs4all.nl>, Kevin Grittner <kgrittn@mail.com>, pgsql-hackers@postgresql.org, Andres Freund <andres@2ndquadrant.com>
Date: 2013-01-18T20:37:47Z
Lists: pgsql-hackers
Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> The reason is that there is an (unknown to me) rule that there must be
> some data not associated with a buffer:

> 	/*
> 	 * NOTE: We disallow len == 0 because it provides a useful bit of extra
> 	 * error checking in ReadRecord.  This means that all callers of
> 	 * XLogInsert must supply at least some not-in-a-buffer data. [...]
> 	 */

> This seems pretty strange to me.  And having the rule be spelled out
> only in a comment within XLogInsert and not at its top, and not nearby
> the XLogRecData struct definition either, seems pretty strange to me.
> I wonder how come every PG hacker except me knows this.

I doubt it ever came up before.  What use is logging only the content of
a buffer page?  Surely you'd need to know, for example, which relation
and page number it is from.

			regards, tom lane