Re: [HACKERS] WITH DELIMITERS in COPY

From: Gavin Sherry <swm(at)linuxworld(dot)com(dot)au>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: pgsql-patches(at)postgresql(dot)org
Subject: Re: [HACKERS] WITH DELIMITERS in COPY
Date: 2002-04-21 17:39:46
Message-ID: Pine.LNX.4.21.0204220334570.25580-101000@linuxworld.com.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches

Bruce,

Attached is a modified patch, using DefElem instead of the 'roll your own'
method of collecting optional parameters to CopyStmt.

Naturally, DoCopy() as well as a few support functions needed to be
modified to get this going.

In order to check if parameters were being passed more than once (COPY
... WITH OIDS FROM ... WITH DELIMITER '\t' OIDS), I have added a function
defelemmember() to list.c. I could not think, off the top of my head, of a
more elegant way to do this.

Gavin

On Sun, 14 Apr 2002, Bruce Momjian wrote:

>
> Gavin, I will do the legwork on this if you wish. I think we need to
> use DefElem to store the COPY params, rather than using specific fields
> in CopyStmt.
>
> Would you send me your original patch so I am make sure I hit
> everything. I can't seem to find a copy. If you would like to work on
> it, I can give you what I have and walk you through the process.
>
> ---------------------------------------------------------------------------
>
> Gavin Sherry wrote:
> > Hi Bruce,
> >
> > On Tue, 5 Mar 2002, Bruce Momjian wrote:
> >
> > >
> > > Seems the original title about "feature causes performance in COPY" was
> > > confusing.
> >
> > Oops.
> >
> > > This patch merely fixes the identified TODO item in the
> > > grammar about using WITH in COPY.
> >
> > Now that I look at this patch again I don't think I like the
> > syntax.
> >
> > COPY [BINARY] <relation> [WITH OIDS] TO | FROM <file> [[USING DELIMITERS |
> > WITH DELIMITER] <delimiter> [WITH NULL AS <char>]
> >
> > It isn't very elegant.
> >
> > 1) I forced the parser to be able to handle multiple WITHs, but that
> > doesn't mean its right. I can't remember why I didn't propose a better
> > syntax back then, such as:
> >
> > ... [WITH [DELIMITER <delimiter>,] [NULL AS <char>]]
> >
> > 2) Given (1), Why does WITH OIDS belong where it is now? Why not have it
> > as an 'option' at the end?
> >
> > Anyone have any opinion on this?
> >
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
> >
>
>

Attachment Content-Type Size
copy.diff.gz application/x-gzip 4.0 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2002-04-21 17:45:49 Re: failed regression tests
Previous Message Thomas Lockhart 2002-04-21 17:19:26 failed regression tests

Browse pgsql-patches by date

  From Date Subject
Next Message Rod Taylor 2002-04-21 22:45:05 Comment on database
Previous Message Rod Taylor 2002-04-21 02:03:56 pg_depend take 2