Rearrange dblink's dblink_build_sql_insert() and related routines to open and

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

Commit: c83c22d05327805d4014088e70ae20d0284e7adf
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2010-06-14T20:50:04Z
Releases: 8.0.26
Rearrange dblink's dblink_build_sql_insert() and related routines to open and
lock the target relation just once per SQL function call.  The original coding
obtained and released lock several times per call.  Aside from saving a
not-insignificant number of cycles, this eliminates possible race conditions
if someone tries to modify the relation's schema concurrently.  Also
centralize locking and permission-checking logic.

Problem noted while investigating a trouble report from Robert Voinea --- his
problem is still to be fixed, though.

Files

PathChange+/−
contrib/dblink/dblink.c modified +86 −122