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