\copy (query) delimiter syntax error - Mailing list pgsql-hackers

From Michael Fuhr
Subject \copy (query) delimiter syntax error
Date
Msg-id 20070203091805.GA59938@winnie.fuhr.org
Whole thread Raw
Responses Re: \copy (query) delimiter syntax error  ("Andrew Dunstan" <andrew@dunslane.net>)
List pgsql-hackers
psql's \copy (query) with a delimiter yields a syntax error:
 test=> \copy foo to foo.txt delimiter '|' (works)
 test=> \copy (select * from foo) to foo.txt (works)
 test=> \copy (select * from foo) to foo.txt delimiter '|' ERROR:  syntax error at or near "USING" LINE 1: COPY (
select* from foo ) TO STDOUT USING DELIMITERS '|'
 

The problem is that \copy sends USING DELIMITERS for backward
compatibility (comment on line 502 of src/bin/psql/copy.c) but that
COPY (query) doesn't support USING DELIMITERS:
 CopyStmt:   COPY opt_binary qualified_name opt_column_list opt_oids             copy_from copy_file_name
copy_delimiteropt_with copy_opt_list             ...             | COPY select_with_parens TO copy_file_name opt_with
           copy_opt_list
 
 copy_delimiter:             /* USING DELIMITERS kept for backward compatibility. 2002-06-15 */            opt_using
DELIMITERSSconst
 

What should be fixed -- COPY or \copy?  Does psql's \copy still
need backward compatibility to unsupported pre-7.3?

-- 
Michael Fuhr


pgsql-hackers by date:

Previous
From: Kate F
Date:
Subject: Re: snprintf()
Next
From: "Simon Riggs"
Date:
Subject: Re: Referential Integrity and SHARE locks