Re: Schema variables - new implementation for Postgres 15 (typo)
Pavel Stehule <pavel.stehule@gmail.com>
From: Pavel Stehule <pavel.stehule@gmail.com>
To: Julien Rouhaud <rjuju123@gmail.com>
Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Erik Rijkers <er@xs4all.nl>, Sergey Shinderuk <s.shinderuk@postgrespro.ru>,
Tomas Vondra <tomas.vondra@enterprisedb.com>, dean.a.rasheed@gmail.com, joel@compiler.org, pgsql-hackers@lists.postgresql.org
Date: 2023-01-10T19:35:16Z
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
Attachments
- v20230110-1-0010-documentation.patch (text/x-patch) patch v20230110-0010
- v20230110-1-0007-possibility-to-dump-session-variables-by-pg_dump.patch (text/x-patch) patch v20230110-0007
- v20230110-1-0006-enhancing-psql-for-session-variables.patch (text/x-patch) patch v20230110-0006
- v20230110-1-0008-regress-tests-for-session-variables.patch (text/x-patch) patch v20230110-0008
- v20230110-1-0009-this-patch-changes-error-message-column-doesn-t-exis.patch (text/x-patch) patch v20230110-0009
- v20230110-1-0005-DISCARD-VARIABLES-command.patch (text/x-patch) patch v20230110-0005
- v20230110-1-0004-support-of-LET-command-in-PLpgSQL.patch (text/x-patch) patch v20230110-0004
- v20230110-1-0003-LET-command.patch (text/x-patch) patch v20230110-0003
- v20230110-1-0002-session-variables.patch (text/x-patch) patch v20230110-0002
- v20230110-1-0001-catalog-support-for-session-variables.patch (text/x-patch) patch v20230110-0001
út 10. 1. 2023 v 3:20 odesílatel Julien Rouhaud <rjuju123@gmail.com> napsal: > Hi, > > On Sat, Jan 07, 2023 at 08:09:27AM +0100, Pavel Stehule wrote: > > > > > > Hmm, how safe is it for third-party code to access the stored data > directly > > > rather than a copy? If it makes extension fragile if they're not > careful > > > enough with cache invalidation, or even give them a way to mess up > with the > > > data directly, it's probably not a good idea to provide such an API. > > > > > > > ok, I removed it > > Another new behavior I see is the new rowtype_only parameter for > LookupVariable. Has this been discussed? > I think so it was discussed about table shadowing without this filter, I lost the message "missing FROM-clause entry for ..." -- should fail SELECT varx.xxx; -ERROR: missing FROM-clause entry for table "varx" -LINE 1: SELECT varx.xxx; - ^ +ERROR: type text is not composite -- don't allow multi column query CREATE TYPE vartesttp AS (a1 int, b1 int, c1 int); CREATE VARIABLE v1 AS vartesttp; @@ -1421,9 +1419,7 @@ DROP TYPE ab; CREATE VARIABLE myvar AS int; SELECT myvar.blabla; -ERROR: missing FROM-clause entry for table "myvar" -LINE 1: SELECT myvar.blabla; - ^ +ERROR: type integer is not composite DROP VARIABLE myvar; -- the result of view should be same in parallel mode too CREATE VARIABLE v1 AS int; My original idea was to try to reduce possible conflicts (in old versions of this path, a conflict was disallowed). But it is true, so these "new" error messages are sensible too, and with eliminating rowtype_only I can reduce code. > I can see how it can be annoying to get a "variable isn't composite" type > of > error when you already know that only a composite object can be used (and > other > might work), but it looks really scary to entirely ignore some objects that > should be found in your search_path just because of their datatype. > > And if we ignore something like "a.b" if "a" isn't a variable of composite > type, why wouldn't we apply the same "just ignore it" rule if it's indeed a > composite type but doesn't have any "b" field? Your application could also > start to use different object if your drop a say json variable and create a > composite variable instead. > > It seems to be in contradiction with how the rest of the system works and > looks > wrong to me. Note also that LookupVariable can be quite expensive since > you > may have to do a lookup for every schema found in the search_path, so the > sooner it stops the better. > I removed this filter > > > > > updated patches attached > > I forgot to mention it last time but you should bump the copyright year > for all > new files added when you'll send a new version of the patchset. > fixed I modified the IdentifyVariable function a little bit. With new argument noerror I am able to ensure so no error will be raised when this function is called just for shadowing detection. Regards Pavel