Michael Fuhr wrote: > 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_delimiter opt_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 DELIMITERS Sconst > > What should be fixed -- COPY or \copy? Does psql's \copy still > need backward compatibility to unsupported pre-7.3? >
I'd say fix psql. Not sure how far back we should backpatch it. It's interesting that this has been there since 8.0 and is only now discovered. cheers andrew ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org