From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Pavel Golub <pavel(at)gf(dot)microolap(dot)com> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [HACKERS] proposal: schema variables |
Date: | 2018-02-02 22:06:44 |
Message-ID: | CAFj8pRBfb-GTZSHSRVTpMzGr26-7e-_RmOmRpmuk+xuDTgC=mA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-performance |
Hi
I wrote proof concept of schema variables. The patch is not nice, but the
functionality is almost complete (for scalars only) and can be good enough
for playing with this concept.
I recap a goals (the order is random):
1. feature like PL/SQL package variables (with similar content life cycle)
2. available from any PL used by PostgreSQL, data can be shared between
different PL
3. possibility to store short life data in fast secured storage
4. possibility to pass parameters and results to/from anonymous blocks
5. session variables with possibility to process static code check
6. multiple API available from different environments - SQL commands, SQL
functions, internal functions
7. data are stored in binary form
Example:
CREATE VARIABLE public.foo AS integer;
LET foo = 10 + 20;
DO $$
declare x int = random() * 1000;
BEGIN
RAISE NOTICE '%', foo;
LET foo = x + 100;
END;
$$;
SELECT public.foo + 10;
SELECT * FROM data WHERE col = foo;
All implemented features are described by regress tests
Interesting note - it is running without any modification of plpgsql code.
Regards
Pavel
Attachment | Content-Type | Size |
---|---|---|
schema-variables-poc.patch | text/x-patch | 118.1 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2018-02-02 22:15:01 | Draft release notes for 10.2 et al |
Previous Message | Tom Lane | 2018-02-02 22:00:24 | Re: Boolean partitions syntax |
From | Date | Subject | |
---|---|---|---|
Next Message | David G. Johnston | 2018-02-03 00:48:05 | Re: [HACKERS] proposal: schema variables |
Previous Message | Nandakumar M | 2018-02-02 17:01:27 | Re: Query optimiser is not using 'not null' constraint when 'order by nulls last' clause is used |