ne 10. 11. 2024 v 17:19 odesÃlatel Pavel Stehule <pavel.steh...@gmail.com> napsal:
> > > ne 10. 11. 2024 v 16:24 odesÃlatel Dmitry Dolgov <9erthali...@gmail.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 > >