Fix volatile-safety issue in dblink's materializeQueryResult().
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 26 Jan 2015 20:17:33 +0000 (15:17 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 26 Jan 2015 20:17:33 +0000 (15:17 -0500)
commitdabda6415287bb8991c569036c1f5b57be62a58f
tree357a91a738b3eaf87101c14fb80117c27aebc974
parent168a809d4b8adb7cfd6c0f14116493c3f7bc24b7
Fix volatile-safety issue in dblink's materializeQueryResult().

Some fields of the sinfo struct are modified within PG_TRY and then
referenced within PG_CATCH, so as with recent patch to async.c, "volatile"
is necessary for strict POSIX compliance; and that propagates to a couple
of subroutines as well as materializeQueryResult() itself.  I think the
risk of actual issues here is probably higher than in async.c, because
storeQueryResult() is likely to get inlined into materializeQueryResult(),
leaving the compiler free to conclude that its stores into sinfo fields are
dead code.
contrib/dblink/dblink.c