On 2018-Nov-16, Alvaro Herrera wrote:
> On 2017-Nov-04, Fabien COELHO wrote:
>
> > Think of one initialization followed by two appends:
> >
> > SELECT 1 AS x \cset
> > SELECT 2 \; SELECT 3 AS y \cset
> > SELECT 4 \; SELECT 5 \; SELECT 6 AS z \gset
> >
> > In the end, we must have the full 6 queries
> >
> > "SELECT 1 AS x \; SELECT 2 \; SELECT 3 AS y \; SELECT 4 \; SELECT 5 \; SELECT 6 AS z"
> >
> > and know that we want to set variables from queries 1, 3 and 6 and ignore
> > the 3 others.
>
> I'm not sure I understand this. Why is the "SELECT 2" ignored? (I can
> see why the 4 and 5 are ignored: they are not processed by gset).
>
> What exactly does \cset do?
Oh! I understand it now. You say "replace a semicolon" to mean "works
as if it were a semicolon, and also captures the result". So \cset
means "works as if it were an escaped semicolon". It all suddenly makes
sense now! I think I'll propose some rewording of that explanation, as
it was very confusing to me.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services