From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Julien Rouhaud <rjuju123(at)gmail(dot)com> |
Cc: | Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>, Joel Jacobson <joel(at)compiler(dot)org>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Schema variables - new implementation for Postgres 15 |
Date: | 2022-03-23 20:58:59 |
Message-ID: | CAFj8pRD9nRB+6z39ik3Wkc61kxh1FC=9k4+YHFnGtAFcP0w+3A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi
A bit more work seems to be needed for deparsing session variables:
>
> # create variable myvar text;
> CREATE VARIABLE
>
> # create view myview as select myvar;
> CREATE VIEW
>
> # \d+ myview
> View "public.myview"
> Column | Type | Collation | Nullable | Default | Storage | Description
> --------+------+-----------+----------+---------+----------+-------------
> myvar | text | | | | extended |
> View definition:
> SELECT myvar AS myvar;
>
> There shouldn't be an explicit alias I think.
>
I check this issue, and I afraid so it is not fixable. The target list
entry related to session variable has not some magic value like ?column?
that can be used for check if tle->resname is implicit or explicit
And in this time I cannot to use FigureColname because it doesn't work with
transformed nodes. More - the Param node can be nested in SubscriptingRef
or FieldSelect. It doesn't work perfectly now. See following example:
create type xt as (a int, b int);
create view b as select (10, ((random()*100)::int)::xt).b;
\d+ b
SELECT (ROW(10, (random() * 100::double precision)::integer)::xt).b AS b;
Regards
Pavel
From | Date | Subject | |
---|---|---|---|
Next Message | Justin Pryzby | 2022-03-23 21:01:47 | Re: Adding CI to our tree |
Previous Message | Peter Geoghegan | 2022-03-23 20:58:31 | Re: Removing more vacuumlazy.c special cases, relfrozenxid optimizations |