Variable substitution in psql backtick expansion - Mailing list pgsql-hackers

From Tom Lane
Subject Variable substitution in psql backtick expansion
Date
Msg-id 9561.1490895211@sss.pgh.pa.us
Whole thread Raw
Responses Re: Variable substitution in psql backtick expansion  (Michael Paquier <michael.paquier@gmail.com>)
Re: Variable substitution in psql backtick expansion  (Corey Huinker <corey.huinker@gmail.com>)
Re: Variable substitution in psql backtick expansion  ("Daniel Verite" <daniel@manitou-mail.org>)
List pgsql-hackers
Awhile back in the discussion about the \if feature for psql,
I'd pointed out that you shouldn't really need very much in
the way of boolean-expression evaluation smarts, because you
ought to be able to use a backtick shell escape:
\if `expr :foo \> :bar`    \echo :foo is greater than :bar\endif

Now that the basic feature is in, I went to play around with this,
and was disappointed to find out that it doesn't work.  The reason
is not far to seek: we do not do variable substitution within the
text between backticks.  psqlscanslash.l already foresaw that some
day we'd want to do that:
/* * backticked text: copy everything until next backquote, then evaluate. * * XXX Possible future behavioral change:
substitutefor :VARIABLE? */
 

I think today is that day, because it's going to make a material
difference to the usability of this feature.

I propose extending backtick processing so that

1. :VARIABLE is replaced by the contents of the variable

2. :'VARIABLE' is replaced by the contents of the variable,
single-quoted according to Unix shell conventions.  (So the
processing would be a bit different from what it is for the
same notation in SQL contexts.)

This doesn't look like it would take very much new code to do.

Thoughts?
        regards, tom lane



pgsql-hackers by date:

Previous
From: Simon Riggs
Date:
Subject: Re: Monitoring roles patch
Next
From: Arthur Zakirov
Date:
Subject: Re: [PATCH] Generic type subscripting