Thread: Help with COPY command

Help with COPY command

From
reina_ga@hotmail.com (Tony Reina)
Date:
I'm attempting to use the COPY command through the libpq C functions.
In the psql command line editor, I'd have the following commands:

COPY testtable FROM stdin WITH DELIMITER ',';
1, 2, 'a', 3, 4
5, 6, 'b', 7, 8
9, 10, 'c', 11, 12
\.

My question is: 

Does this all have to be passed as one big command through libpq? For
example,

res = PQexec(conn, "COPY testtable FROM stdin WITH DELIMITER ',';\n",     "1, 2, 'a', 3, 4\n5, 6, 'b', 7, 8\n9, 10,
'c',11, 12\n\.");
 


Or, can it be broken up into separate lines? For example,

res = PQexec(conn, "COPY testtable FROM stdin WITH DELIMITER ',';");
res = PQexec(conn, "1, 2, 'a', 3, 4");
res = PQexec(conn, "5, 6, 'b', 7, 8");
res = PQexec(conn, "9, 10, 'c', 11, 12");
res = PQexec(conn, "\.");

-Tony


Re: Help with COPY command

From
reina_ga@hotmail.com (Tony Reina)
Date:
Ok. I found the libpq syntax for COPY in the Programmer's manual. I've
got a working version, but wanted to verify something.

PQexec(conn, "COPY foo FROM STDIN");
PQputline(conn, "3\thello world\t4.5\n");
PQputline(conn,"4\tgoodbye world\t7.11\n");
...
PQputline(conn,"\\.\n");
PQendcopy(conn);

1. I'm assuming that I can put in as many PQputline statements as I
want to between the PQexec("COPY ... FROM ...") and the terminator
line. Is that correct? No limit?

2. Do any of these lines need to be followed by a PQclear(res)? What
about the first PQexec?

-Tony


Re: Help with COPY command

From
Christoph Haller
Date:
> 
> Ok. I found the libpq syntax for COPY in the Programmer's manual. I've
> got a working version, but wanted to verify something.
> 
> PQexec(conn, "COPY foo FROM STDIN");
> PQputline(conn, "3\thello world\t4.5\n");
> PQputline(conn,"4\tgoodbye world\t7.11\n");
> ...
> PQputline(conn,"\\.\n");
> PQendcopy(conn);
> 
> 1. I'm assuming that I can put in as many PQputline statements as I
> want to between the PQexec("COPY ... FROM ...") and the terminator
> line. Is that correct? No limit?
> 
> 2. Do any of these lines need to be followed by a PQclear(res)? What
> about the first PQexec?
> 
> -Tony
> 
ad 1. Yes, no limit. 
ad 2. I use PQclear following the PQexec. 

Regards, Christoph 



Re: Help with COPY command

From
"Tony and Bryn Reina"
Date:
Thanks for the reply. 

-Tony

----- Original Message ----- 
From: "Christoph Haller" <ch@rodos.fzk.de>
To: "Tony Reina" <reina_ga@hotmail.com>
Cc: <pgsql-sql@postgresql.org>
Sent: Wednesday, April 14, 2004 5:42 PM
Subject: Re: [SQL] Help with COPY command


> > 
> > Ok. I found the libpq syntax for COPY in the Programmer's manual. I've
> > got a working version, but wanted to verify something.
> > 
> > PQexec(conn, "COPY foo FROM STDIN");
> > PQputline(conn, "3\thello world\t4.5\n");
> > PQputline(conn,"4\tgoodbye world\t7.11\n");
> > ...
> > PQputline(conn,"\\.\n");
> > PQendcopy(conn);
> > 
> > 1. I'm assuming that I can put in as many PQputline statements as I
> > want to between the PQexec("COPY ... FROM ...") and the terminator
> > line. Is that correct? No limit?
> > 
> > 2. Do any of these lines need to be followed by a PQclear(res)? What
> > about the first PQexec?
> > 
> > -Tony
> > 
> ad 1. Yes, no limit. 
> ad 2. I use PQclear following the PQexec. 
> 
> Regards, Christoph 
> 
>