From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Dmitry Dolgov <9erthalion6(at)gmail(dot)com> |
Cc: | Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>, Erik Rijkers <er(at)xs4all(dot)nl>, Michael Paquier <michael(at)paquier(dot)xyz>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, DUVAL REMI <REMI(dot)DUVAL(at)cheops(dot)fr>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: proposal: schema variables |
Date: | 2024-11-10 17:51:40 |
Message-ID: | CAFj8pRAsEoeZv0HEnA8CKgFKDSQ-wYw18Os1vdksWCV7ez2bVw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-performance |
ne 10. 11. 2024 v 17:19 odesílatel Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
napsal:
>
>
> ne 10. 11. 2024 v 16:24 odesílatel Dmitry Dolgov <9erthalion6(at)gmail(dot)com>
> napsal:
>
>> Hi folks,
>>
>> Thanks for continuing this work. As a side note, I would like to mention
>> how strange the situation in this CF item is. If I understand correctly,
>> there are two hackers threads discussing the same patch, with recent
>> patches posted in both of them. This is obviously confusing, e.g. the
>> main concern from another thread, about names clashing, wasn't even
>> mentioned in this one. Is it possible to reconcile development in one
>> thread?
>>
>
> This is probably my error. I don't try to organize threads, just I'll try
> to reply in the thread where I got a question.
>
I thought a lot of time about better solutions for identifier collisions
and I really don't think so there is some consistent user friendly syntax.
Personally I think there is an easy already implemented solution -
convention - just use a dedicated schema for variables and this schema
should not be in the search path. Or use secondary convention - like using
prefix "__" for session variables. Common convention is using "_" for
PLpgSQL variables. I searched how this issue is solved in other databases,
or in standard, and I found nothing special. The Oracle and SQL/PSM has a
concept of visibility - the variables are not visible outside packages or
modules, but Postgres has nothing similar. It can be emulated by a
dedicated schema without inserting a search path, but it is less strong.
I think we can introduce an alternative syntax, that will not be user
friendly or readable friendly, but it can be without collisions - or can
decrease possible risks.
It is nothing new - SQL does it with old, "new" syntax of inner joins, or
in Postgres we can
where salary < 40000
or
where pg_catalog.int4lt(salary, 40000);
or some like we use for operators OPERATOR(*schema*.*operatorname*)
So introducing VARIABLE(schema.variablename) syntax as an alternative
syntax for accessing variables I really like. I strongly prefer to use this
as only alternative (secondary) syntax, because I don't think it is
friendly syntax or writing friendly, but it is safe, and I can imagine
tools that can replace generic syntax to this special, or that detects
generic syntax and shows some warning. Then users can choose what they
prefer. Two syntaxes - generic and special can be good enough for all - and
this can be perfectly consistent with current Postgres.
Regards
Pavel
> Regards
>
> Pavel
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Alena Rybakina | 2024-11-10 17:55:17 | Re: Avoiding hash join batch explosions with extreme skew and weird stats |
Previous Message | Dmitry Dolgov | 2024-11-10 17:41:07 | Re: proposal: schema variables |
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Stehule | 2024-11-10 18:04:34 | Re: proposal: schema variables |
Previous Message | Dmitry Dolgov | 2024-11-10 17:41:07 | Re: proposal: schema variables |