On Fri, Mar 31, 2017 at 2:33 AM, Tom Lane <t...@sss.pgh.pa.us> wrote: > 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: substitute for :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?
In short, +1. -- Michael -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers