Craig Ringer wrote:
> On 07/27/2012 09:28 PM, Ryan Kelly wrote:
>> I recently switched from OSX to Linux and \copy in psql no longer
>> accepts multi-line queries. For instance:
>>
>> \copy (
>> select
>> *
>> from
>> pg_settings
>> ) to '/tmp/settings.csv' with csv header
>>
>> This works fine on OSX. On Linux I get:
>> \copy: parse error at end of line
>>
>> Am I missing something here?
> A wild guess: I'd say this is a consequence of the fact that psql on OS
> X uses libedit, on Linux it uses readline.
>
> Personally I had no idea that multiline \copy was possible at all. I've
> always though the way backslash commands are EOL-terminated while
> everything else is semicolon terminated is a bit of a wart, though.
>
> I don't have an answer for you. Using the --no-readline argument makes
> no difference on my 9.1.4 here. This may just be an area where libedit
> is smarter than readline - or it might be that I'm totally wrong and the
> real issue is something else entirely.
>
> Thanks for making the effort to produce a good post with all the
> detailed version info, exact error text, etc.
Also appear to get it here on single-line queries:
markMLl=> \copy (select * from pg_settings) to '/tmp/settings.csv' with
csv header;
\copy: parse error at "select"
markMLl=>
However my psql and server are rather old which could be an issue
(8.1.19 to server 8.4 if I recall correctly).
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]