From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | DUVAL REMI <REMI(dot)DUVAL(at)cheops(dot)fr> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, "phb07(at)apra(dot)asso(dot)fr" <phb07(at)apra(dot)asso(dot)fr> |
Subject: | Re: proposal: schema variables |
Date: | 2020-02-27 15:09:44 |
Message-ID: | CAFj8pRARL4SpJQxsp4JS2t=WoZvbj7QOCgjM_mLbsv=+Qh2vxw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-performance |
čt 27. 2. 2020 v 15:59 odesílatel DUVAL REMI <REMI(dot)DUVAL(at)cheops(dot)fr> napsal:
> Hello Pavel.
>
>
>
> That looks pretty good to me !
>
>
>
> I’m adding Philippe Beaudoin who was also interested in this topic.
>
>
>
> Recap : We were looking for a way to separate variable from constants in
> the “Schema Variables” proposition from Pavel.
>
> Pavel was saying that there are some limitations regarding the keywords we
> can use, as the community don’t want to introduce too much new keywords in
> Postgres SQL (PL/pgSQL is a different list of keywords).
>
> “CONSTANT” is not a keyword in SQL for Now (though it is one in PL/pgSQL).
>
> Pavel’s syntax allow to use it as a keyword in the “WITH OPTIONS” clause
> that is already supported.
>
> … I think it’s a good idea.
>
>
>
> The list of keywords is defined in : postgresql\src\include\parser\kwlist.h
>
>
>
> Pavel, I saw that in DB2, those variables are called “Global Variables”,
> is it something we can consider changing, or do you prefer to keep using
> the “Schema Variable” name ?
>
It is most hard question. Global variables has sense, but when we will use
it in plpgsql, then this name can be little bit confusing. Personally I
prefer "schema variable" although my opinion is not too strong. This name
more signalize so this is more generic, more database related than some
special kind of plpgsql variables. Now, I think so maybe is better to use
schema variables, because there is different syntax then global temp
tables. Variables are global by design. So in this moment I prefer the name
"schema variables". It can be used as global variables in plpgsql, but it
is one case.
Pavel
>
>
>
> *De :* Pavel Stehule [mailto:pavel(dot)stehule(at)gmail(dot)com]
> *Envoyé :* jeudi 27 février 2020 15:38
> *À :* DUVAL REMI <REMI(dot)DUVAL(at)CHEOPS(dot)FR>
> *Cc :* PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
> *Objet :* Re: proposal: schema variables
>
>
>
>
>
> Hi
>
>
>
>
> 3) Any way to define CONSTANTs ?
> We already talked a bit about this subject and also Gilles Darold
> introduces it in this mailing-list topic but I'd like to insist on it.
> I think it would be nice to have a way to say that a variable should not
> be changed once defined.
> Maybe it's hard to implement and can be implemented later, but I just want
> to know if this concern is open.
>
>
>
> I played little bit with it and I didn't find any nice solution, but maybe
> I found the solution. I had ideas about some variants, but almost all time
> I had a problem with parser's shifts because all potential keywords are not
> reserved.
>
>
>
> last variant, but maybe best is using keyword WITH
>
>
>
> So the syntax can looks like
>
>
>
> CREATE [ TEMP ] VARIABLE varname [ AS ] type [ NOT NULL ] [ DEFAULT
> expression ] [ WITH [ OPTIONS ] '(' ... ')' ] ]
>
>
>
> What do you think about this syntax? It doesn't need any new keyword, and
> it easy to enhance it.
>
>
>
> CREATE VARIABLE foo AS int DEFAULT 10 WITH OPTIONS ( CONSTANT);
>
>
>
> ?
>
>
>
> Regards
>
>
>
> Pavel
>
>
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Alexey Kondratov | 2020-02-27 15:29:34 | Re: [Patch] pg_rewind: options to use restore_command from recovery.conf or command line |
Previous Message | DUVAL REMI | 2020-02-27 14:59:12 | RE: proposal: schema variables |
From | Date | Subject | |
---|---|---|---|
Next Message | Ben Snaidero | 2020-02-27 16:33:25 | Many DataFileRead - IO waits |
Previous Message | DUVAL REMI | 2020-02-27 14:59:12 | RE: proposal: schema variables |