Hello Pavel, and Happy new year!
>> (1) Having some kind of variable, especially in interactive mode, allows to
>>>> manipulate previous results and reuse them later, without having to
>>>> resort to repeated sub-queries or to retype non trivial values.
>>>>
>>>> Client side psql :-variables are untyped and unescaped, thus not very
>>>> convenient for this purpose.
>>>
>>> You can currently (ab)use user defined GUCs for this.
>>
>> How? It seems that I have missed the syntax to assign the result of a
>> query to a user-defined guc, and to reuse it simply in a query.
> postgres=# select set_config('myvar.text', (select
> current_timestamp::text), false);
Thanks for the pointer! The documentation is rather scarse...
They are indeed session or transaction-alive. They seem to be
user-private, which is good. However they are text only, casts are needed
in practice as shown by your example, and I find the syntax quite
unfriendly for interactive use. I'm not sure about performance.
I have added a subsection about them in the wiki.
--
Fabien.