Re: Schema variables - new implementation for Postgres 15
Julien Rouhaud <rjuju123@gmail.com>
From: Julien Rouhaud <rjuju123@gmail.com>
To: Pavel Stehule <pavel.stehule@gmail.com>
Cc: Dean Rasheed <dean.a.rasheed@gmail.com>, Joel Jacobson <joel@compiler.org>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-03-25T04:18:42Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Allow underscores in integer and numeric constants.
- faff8f8e47f1 16.0 cited
-
Remove special outfuncs/readfuncs handling of RangeVar.catalogname.
- 3cece34be842 16.0 cited
-
Remove extra space from dumped ALTER DEFAULT PRIVILEGES.
- 2af33369e794 16.0 cited
-
Create FKs properly when attaching table as partition
- b0284bfb1db5 16.0 cited
-
psql: improve tab-complete's handling of variant SQL names.
- 02b8048ba5dc 15.0 cited
Hi, On Wed, Mar 23, 2022 at 09:58:59PM +0100, Pavel Stehule wrote: > > 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; Fair enough. Since there is other code that already behaves the same I agree that it's better to not add special cases in ruleutils.c and have an explicit alias in the deparsed view, which isn't incorrect.