Thread: COPY Question

COPY Question

From
John Coers
Date:
Hi,

I am writing a C program that accesses a 7.0.3 database using libpq.  I would like to
be able to do a fprintf through some file pointer or pipe TO the database via a PQexec call of COPY.
I have been unable to figure out if this is possible.  I see where I can do this via stdin,
but I don't want the user to make the entry, I want the executable to do it and still enjoy
the performance of the COPY command.

I see that the COPY docs mention using a pipe instead of stdin:

"stdin       Specifies that input comes from a pipe or terminal"

However, I can find no other info regarding doing a printf through a pipe directly to the db using COPY.


Is there a way to tell the COPY command to accept a file pointer or pipe or whatever other than stdin as it's input
when copying TO the db?

Thanks!
--
John Coers            Intrinsity, Inc.
coers@intrinsity.com  Austin, Texas

Re: COPY Question

From
"Gordon A. Runkle"
Date:
In article <3ACB8E7F.C12A50CA@intrinsity.com>, "John Coers"
<coers@intrinsity.com> wrote:

> Hi,
>
> I am writing a C program that accesses a 7.0.3 database using libpq.  I
> would like to be able to do a fprintf through some file pointer or pipe
> TO the database via a PQexec call of COPY. I have been unable to figure
> out if this is possible.  I see where I can do this via stdin, but I
> don't want the user to make the entry, I want the executable to do it
> and still enjoy the performance of the COPY command.

If you're on UNIX, look at the popen(3) call.

Gordon.
--
It doesn't get any easier, you just go faster.
   -- Greg LeMond