]> granicus.if.org Git - postgresql/commit
Clean up weird corner cases in lexing of psql meta-command arguments.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 26 Aug 2011 17:52:23 +0000 (13:52 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 26 Aug 2011 17:53:11 +0000 (13:53 -0400)
commit928311a463d480ca566e2905a369ac6aa0c3e210
tree2716f01d51c2763d5a47d280b833981aa6e01c73
parente86fdb0ab224eaa73d907ab16a2dd0e0058699e0
Clean up weird corner cases in lexing of psql meta-command arguments.

These changes allow backtick command evaluation and psql variable
interpolation to happen on substrings of a single meta-command argument.
Formerly, no such evaluations happened at all if the backtick or colon
wasn't the first character of the argument, and we considered an argument
completed as soon as we'd processed one backtick, variable reference, or
quoted substring.  A string like 'FOO'BAR was thus taken as two arguments
not one, not exactly what one would expect.  In the new coding, an argument
is considered terminated only by unquoted whitespace or backslash.

Also, clean up a bunch of omissions, infelicities and outright errors in
the psql documentation of variables and metacommand argument syntax.
doc/src/sgml/ref/psql-ref.sgml
src/bin/psql/command.c
src/bin/psql/psqlscan.h
src/bin/psql/psqlscan.l