On 12.12.2012 14:24, David Gould wrote:
> I don't know if this is the same thing. At least in the comments I was
> reading trying to figure this out there was some concern that someone
> else could change the space on the page. Does RelationGetBufferForTuple()
> guarantee against this too?
Yeah, RelationGetBufferForTuple grabs a lock on the page before
returning it. For comparison, plain heap_insert does simply this:
> buffer = RelationGetBufferForTuple(relation, heaptup->t_len,
> InvalidBuffer, options, bistate,
> &vmbuffer, NULL);
>
> /* NO EREPORT(ERROR) from here till changes are logged */
> START_CRIT_SECTION();
>
> RelationPutHeapTuple(relation, buffer, heaptup);
- Heikki