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? regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers