Thread: plpgsql: can I use a variable in a DECLARE later whithin the DECLARE?
Hi, 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? (For Lispers: is that a let, or a let*? ;-) Thanks & cheers - tomás
Attachment
<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
Re: plpgsql: can I use a variable in a DECLARE later whithin the DECLARE?
From
tomas@tuxteam.de
Date:
On Fri, Oct 29, 2021 at 10:04:31AM -0400, Tom Lane wrote: > <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. Thanks :) > 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. Even more thanks. After a long hiatus I have the luck to play again with PostgreSQL. Let me say: you folks rock, seriously. Cheers - t