Re: proposal: condition blocks in psql - Mailing list pgsql-hackers

From Fabien COELHO
Subject Re: proposal: condition blocks in psql
Date
Msg-id alpine.DEB.2.10.1506281004190.23688@sto
Whole thread Raw
In response to Re: proposal: condition blocks in psql  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: proposal: condition blocks in psql  (Pavel Stehule <pavel.stehule@gmail.com>)
List pgsql-hackers
Hello again Pavel,

Note that I'm not against cpp-like features on principle, I did macros for 
apache configurations a very long time ago, and that I only give my 0.02€ 
on this, for what's the € is worth these days:-)

> you can use parameters for functions, but you cannot it for DO statement
> (simply).

Indeed. Maybe this is worth improving independently of adding 
conditionals. Not sure about a (clean) syntax, though... Maybe psql could 
export its variables somehow to PL/pgSQL. Hmmm.

> the implementation of \if_version_gt is pretty simple - needs few lines of
> new code.

I'm curious, how many "few" lines?

You would need a stack to manage nesting, you need some kind of more or 
less condition evaluation which is open-ended in itself, you need reading 
up to the end token (possibly this is more or less already available), you 
need adapting the prompt to reflect the nesting, you need to deal with 
badly nested scripts (say can an included file be "badly nested" on \i?), 
you need to decide what to put in the input line history, depending on the 
available infrastructure within psql...

I would say 100-300 few lines (but I may be proven wrong both ways), all 
that for something which is already more or less doable with PL/pgSQL. I 
would rather try to upgrade the PL/pgSQL experience.

-- 
Fabien.

pgsql-hackers by date:

Previous
From: Pavel Stehule
Date:
Subject: Re: proposal: condition blocks in psql
Next
From: Sawada Masahiko
Date:
Subject: Re: Support for N synchronous standby servers - take 2