On Thu, Dec 15, 2022 at 8:49 AM Tom Lane <t...@sss.pgh.pa.us> wrote:

> Masahiko Sawada <sawada.m...@gmail.com> writes:
> > I don't think we need additional PG_TRY() for that since exec_stmts()
> > is already called in PG_TRY() if there is an exception block. I meant
> > to call stmt_end() in PG_CATCH() in exec_stmt_block() (i.e. only when
> > an error is caught by the exception block). Currently, if an error is
> > caught, we call stmt_begin() and stmt_end() for statements executed
> > inside the exception block but call only stmt_begin() for the
> > statement that raised an error.
>
> I fail to see anything wrong with that.  We never completed execution
> of the statement that raised an error, but calling stmt_end for it
> would imply that we did.  I think changing this will break more things
> than it fixes, completely independently of whatever cost it would add.
>
> Or in other words: the initial complaint describes a bug in pg_hint_plan,
> not one in plpgsql.
>
>
The OP suggests needing something akin to a "finally" callback for
statement.  While a fine feature request for plpgsql its absence doesn't
constitute a bug.

David J.

Reply via email to