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 > >