Hi,

On 2019-01-29 04:00:19 +0300, Alexander Korotkov wrote:
> +     /*
> +      * It is safe to use here PG_TRY/PG_CATCH without subtransaction because
> +      * no function called inside performs data modification.
> +      */
> +     PG_TRY();
> +     {
> +             res = DirectFunctionCall2(func, ldatum, rdatum);
> +     }
> +     PG_CATCH();
> +     {
> +             int                     errcode = geterrcode();
> +
> +             if (jspThrowErrors(cxt) ||
> +                     ERRCODE_TO_CATEGORY(errcode) != ERRCODE_DATA_EXCEPTION)
> +                     PG_RE_THROW();
> +
> +             MemoryContextSwitchTo(mcxt);
> +             FlushErrorState();
> +
> +             return jperError;
> +     }
> +     PG_END_TRY();

FWIW, I still think this is a terrible idea and shouldn't be merged this
way. The likelihood of introducing subtle bugs seems way too high - even
if it's possibly not buggy today, who says that it's not going to be in
the future?

Greetings,

Andres Freund

Reply via email to