Re: Schema variables - new implementation for Postgres 15

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: walther(at)technowledgy(dot)de
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Peter Eisentraut <peter(at)eisentraut(dot)org>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Dmitry Dolgov <9erthalion6(at)gmail(dot)com>, Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>, Sergey Shinderuk <s(dot)shinderuk(at)postgrespro(dot)ru>, Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, Julien Rouhaud <rjuju123(at)gmail(dot)com>, dean(dot)a(dot)rasheed(at)gmail(dot)com, er(at)xs4all(dot)nl, joel(at)compiler(dot)org, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Schema variables - new implementation for Postgres 15
Date: 2024-05-25 10:50:45
Message-ID: CAFj8pRA3xndWvovLWvp_MuwtZ6P3UpHkSNs1Q3A6rYrjWCDPvw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

so 25. 5. 2024 v 10:24 odesílatel <walther(at)technowledgy(dot)de> napsal:

> Pavel Stehule:
> > Sure there is more possibilities, but I don't want to lost the
> > possibility to write code like
> >
> > CREATE TEMP VARIABLE _x;
> >
> > LET _x = 'hello';
> >
> > DO $$
> > BEGIN
> > RAISE NOTICE '%', _x;
> > END;
> > $$;
> >
> > So I am searching for a way to do it safely, but still intuitive and
> > user friendly.
>
> Maybe a middle-way between this and Alvaro's proposal could be:
>
> Whenever you have a FROM clause, a variable must be added to it to be
> accessible. When you don't have a FROM clause, you can access it directly.
>
> This would make the following work:
>
> RAISE NOTICE '%', _x;
>
> SELECT _x;
>
> SELECT tbl.*, _x FROM tbl, _x;
>
> SELECT tbl.*, (SELECT _x) FROM tbl, _x;
>
> SELECT tbl.*, (SELECT _x FROM _x) FROM tbl;
>
>
> But the following would be an error:
>
> SELECT tbl.*, _x FROM tbl;
>
> SELECT tbl.*, (SELECT _x) FROM tbl;
>
>
It looks odd - It is not intuitive, it introduces new inconsistency inside
Postgres, or with solutions in other databases. No other database has a
similar rule, so users coming from Oracle, Db2, or MSSQL, Firebird will be
confused. Users that use PL/pgSQL will be confused.

Regards

Pavel

>
> Best,
>
> Wolfgang
>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dave Cramer 2024-05-25 10:53:32 Re: Add new protocol message to change GUCs for usage with future protocol-only GUCs
Previous Message Jelte Fennema-Nio 2024-05-25 10:43:46 Re: Add new protocol message to change GUCs for usage with future protocol-only GUCs