Re: Re: bulk_multi_insert infinite loops with large rows and small fill factors
Heikki Linnakangas <hlinnakangas@vmware.com>
From: Heikki Linnakangas <hlinnakangas@vmware.com>
To: David Gould <daveg@sonic.net>
Cc: Andres Freund <andres@2ndquadrant.com>, pgsql-hackers@postgresql.org, Anand Ranganathan <arangana@adobe.com>, Alex Eulenberg <aeulenbe@adobe.com>, Ashokraj M <ashokraj@adobe.com>, Hari <hari@adobe.com>, Elein Mustain <mustain@adobe.com>
Date: 2012-12-12T12:27:54Z
Lists: pgsql-hackers
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