2018-03-12 7:49 GMT+01:00 Pavel Luzanov <p.luza...@postgrespro.ru>: > Hi, > > I plan to make usability and feature test review in several days. > > Is there any chances that it will work on replicas? > Such possibility is very helpful in generating reports. > Now, LET command produces an error: > > ERROR: cannot execute LET in a read-only transaction > >
> But if we say that variables are non-transactional ? > sure, it should to work. Now, I am try to solve a issues on concept level - the LET code is based on DML code base, so probably there is check for rw transactions. But it is useless for LET command. Regards Pavel > > ----- > Pavel Luzanov > Postgres Professional: http://www.postgrespro.com > The Russian Postgres Company > > On 08.03.2018 21:00, Pavel Stehule wrote: > > Hi > > 2018-02-07 7:34 GMT+01:00 Pavel Stehule <pavel.steh...@gmail.com>: > >> Hi >> >> updated patch with your changes in documentation and pg_dump (initial) >> support >> >> Main issue of this patch is storage. We can reuse local buffers used for >> temp tables. But it does allocation by 8KB and it creates temp files for >> every object. That is too big overhead. Storing just in session memory is >> too simple - then there should be lot of new code used, when variable will >> be dropped. >> >> I have ideas how to allow work with mix of scalar and composite types - >> so it will be next step of this prototype. >> >> Regards >> >> Pavel >> > > new update - rebased, + some initial support for composite values on right > side and custom types, arrays are supported too. > > omega=# CREATE VARIABLE xx AS (a int, b numeric); > CREATE VARIABLE > omega=# LET xx = (10, 20)::xx; > LET > omega=# SELECT xx; > +---------+ > | xx | > +---------+ > | (10,20) | > +---------+ > (1 row) > > omega=# SELECT xx.a + xx.b; > +----------+ > | ?column? | > +----------+ > | 30 | > +----------+ > (1 row) > > omega=# \d xx > schema variable "public.xx" > +--------+---------+ > | Column | Type | > +--------+---------+ > | a | integer | > | b | numeric | > +--------+---------+ > > > Regards > > Pavel > > > >