Skip site navigation (1) Skip section navigation (2)

\copy (query) delimiter syntax error

From: Michael Fuhr <mike(at)fuhr(dot)org>
To: pgsql-hackers(at)postgresql(dot)org
Subject: \copy (query) delimiter syntax error
Date: 2007-02-03 09:18:05
Message-ID: 20070203091805.GA59938@winnie.fuhr.org (view raw or flat)
Thread:
Lists: pgsql-hackerspgsql-patches
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?

-- 
Michael Fuhr

Responses

pgsql-hackers by date

Next:From: Simon RiggsDate: 2007-02-03 09:57:46
Subject: Re: Referential Integrity and SHARE locks
Previous:From: Kate FDate: 2007-02-03 04:28:48
Subject: Re: snprintf()

pgsql-patches by date

Next:From: Heikki LinnakangasDate: 2007-02-03 15:57:39
Subject: Re: [pgsql-patches] Recalculating OldestXmin in a long-running vacuum
Previous:From: Jeremy DrakeDate: 2007-02-03 03:01:33
Subject: Re: [HACKERS] writing new regexp functions

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group