Re: plpgsql: can I use a variable in a DECLARE later whithin the DECLARE?

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: tomas@tuxteam.de
Cc: pgsql-hackers@postgresql.org
Date: 2021-10-29T14:04:31Z
Lists: pgsql-hackers
<tomas@tuxteam.de> writes:
> In plpgsql, i'm trying to use a variable initialised in a DECLARE in
> a later initialisation expression whithin the same DECLARE:

>   DECLARE
>     x int := 23;
>     y int := x + 4
>   BEGIN
>    ...

> Experiments suggest that it works, but the docs are silent about that.
> Is this a good idea, or should I be more careful and do it in a nested
> block?

I don't see any reason to foresee that it would break.

However, I notice that we don't actually have any regression tests
checking this.  scope_test() in plpgsql.sql checks an adjacent
question, but not exactly this one.  I'm a bit inclined now to go
add such a test.

			regards, tom lane



Commits

  1. Test and document the behavior of initialization cross-refs in plpgsql.