Re: COPY command details - Mailing list pgsql-general

From Tom Lane
Subject Re: COPY command details
Date
Msg-id 22179.1175181445@sss.pgh.pa.us
Whole thread Raw
In response to Re: COPY command details  ("A. Kretschmer" <andreas.kretschmer@schollglas.com>)
List pgsql-general
"A. Kretschmer" <andreas.kretschmer@schollglas.com> writes:
> am  Thu, dem 29.03.2007, um  0:13:09 -0700 mailte Benjamin Arai folgendes:
>> If I have a PostgreSQL table with records and logical indexes already
>> created, if I use COPY to load additional data, does the COPY update
>> the indexes during, after, or not at all?

> after, i think.

> test=# create table foo (id int primary key, name text);
> NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "foo_pkey" for table "foo"
> CREATE TABLE
> test=*# copy foo from stdin;
> Enter data to be copied followed by a newline.
> End with a backslash and a period on a line by itself.
> 1    a
> 2    b
> 2    c
> \.
> ERROR:  duplicate key violates unique constraint "foo_pkey"
> CONTEXT:  COPY foo, line 3: "2  c"
> test=*#

> I can type the wrong key and the error occurs later with the finaly \.

No, "during" is the right answer.  The above only demonstrates that
libpq buffers COPY data in larger-than-one-line units --- once the
data gets to the backend it's inserted and checked a row at a time.

            regards, tom lane

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Timestamp precision
Next
From: Mike Charnoky
Date:
Subject: Re: disable/enable trigger hangs