pá 29. 10. 2021 v 20:00 odesílatel Tom Lane <t...@sss.pgh.pa.us> napsal:

> While preparing commit a2a731d6c, I chanced to notice what seemed
> like an off-by-one error in the line number reported for an error
> occurring while we initialize a plpgsql variable.  For instance
>
> regression=# do $$ declare x int := 1/0;
> regression$# begin end $$;
> ERROR:  division by zero
> CONTEXT:  SQL expression "1/0"
> PL/pgSQL function inline_code_block line 2 during statement block local
> variable initialization
>
> After tracking it down, it's not that.  It's that we're pointing
> at the BEGIN keyword, because that's what determines the lineno
> associated with the PLpgSQL_stmt_block struct.
>
> This seems like it could be quite confusing in a block with many
> variables, so here's a proposed patch that improves the reported
> line number to match the specific variable.
>
> The only downside that I can see here is the one additional store
> per variable to set err_var; but it's pretty hard to believe that
> that'd be measurable in context.
>
>
+1

Regards

Pavel

Any objections?
>
>                         regards, tom lane
>
>

Reply via email to