Rearrange dblink's dblink_build_sql_insert() and related routines to open and
Tom Lane <tgl@sss.pgh.pa.us>
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
| Path | Change | +/− |
|---|---|---|
| contrib/dblink/dblink.c | modified | +85 −121 |