ECPG and COPY TO STDOUT - Mailing list pgsql-interfaces

From Edmund Bacon
Subject ECPG and COPY TO STDOUT
Date
Msg-id 1080847364.13873.14.camel@elb_lx.onesystem.ca
Whole thread Raw
Responses Re: ECPG and COPY TO STDOUT  (Michael Meskes <meskes@postgresql.org>)
List pgsql-interfaces
If I use COPY TO STDOUT in an ECPG program, where does the output go?

If I use COPY TO '/tmp/foo', I get the file created, with the data in
it, but trying COPY TO STDOUT produces no output.

What I'm trying to do is to dump a table's data, and have the resulting
file owned by the application user rather than the dba user.

I would rather to not have to create the file in /tmp, copy contents, rm
/tmp file, if I don't have to.



This is the program I'm using:


#include <stdio.h>

EXEC SQL INCLUDE sqlca;
EXEC SQL WHENEVER SQLERROR sqlprint;

int main()
{
   EXEC SQL BEGIN DECLARE SECTION;   char *fname = "/tmp/foo";   EXEC SQL END DECLARE SECTION;
   EXEC SQL CONNECT TO test;
   /* produces expected file "/tmp/foo" */   EXEC SQL COPY foo TO :fname WITH DELIMITER ',';   printf("copy to /tmp/foo
:sqlca.sqlcode = %ld", sqlca.sqlcode);
 
   /* goes nowhere (?) */   EXEC SQL COPY foo TO STDOUT WITH DELIMITER ',';   printf("copy to STDOUT : sqlca.sqlcode =
%ld\n",sqlca.sqlcode);
 
   EXEC SQL DISCONNECT;
   return 0;
}



-- 
Edmund Bacon <ebacon@onesystem.com>



pgsql-interfaces by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: ECPG segfault
Next
From: Christoph Haller
Date:
Subject: BEGIN-cascade blocks application