Re: BUG #6301: extra space in psql variable expansion - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #6301: extra space in psql variable expansion
Date
Msg-id 17805.1321719639@sss.pgh.pa.us
Whole thread Raw
In response to Re: BUG #6301: extra space in psql variable expansion  (Josh Kupershmidt <schmiddy@gmail.com>)
List pgsql-bugs
Josh Kupershmidt <schmiddy@gmail.com> writes:
> On Fri, Nov 18, 2011 at 1:12 PM, M <sitrash@email.com> wrote:
>> When psql expands a :variable into a string it appends a space to the
>> expansion string.

It doesn't actually do that, but rather splits the argument into two
arguments.  \echo makes it look like there's spaces between arguments...

> I don't see the exact commit which fixed this, but I do see some fixes
> to psql's lexer done recently, such as
> 928311a463d480ca566e2905a369ac6aa0c3e210, so maybe this case got fixed
> as a nice side-effect.

I think the description of that commit addresses the point exactly:

    ... 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.

            regards, tom lane

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #6299: pg_dump, pg_dumpall - Problem with the order of backup functions
Next
From: Tom Lane
Date:
Subject: Re: BUG #6301: extra space in psql variable expansion