Daniel Farina <daniel(at)heroku(dot)com> writes:
> Okay, one more of those fridge-logic bugs.  Sorry for the noise. v5.
> A missing PG_RETHROW to get the properly finally-esque semantics:
> --- a/contrib/dblink/dblink.c
> +++ b/contrib/dblink/dblink.c
> @@ -642,7 +642,10 @@ dblink_fetch(PG_FUNCTION_ARGS)
>   }
>   PG_CATCH();
>   {
> + /* Pop any set GUCs, if necessary */
>   restoreLocalGucs(&rgs);
> +
> + PG_RE_THROW();
>   }
>   PG_END_TRY();
Um ... you shouldn't need a PG_TRY for that at all.  guc.c will take
care of popping the values on transaction abort --- that's really rather
the whole point of having that mechanism.
			regards, tom lane