Обсуждение: C-Interface Amound of Tupels in Result after COPYout
Hi, do i have any chance to get the amount of tupels in the result set after executing a query with a copy command? Its nota problem to count the columns with PQnFields(*conn,*result) but there is no documentation für PQnTupels(*conn,*result) and it does not work. greetings beho
Bert Horvath <bert.horvath@fh-erfurt.de> writes:
> do i have any chance to get the amount of tupels in the result set after
> executing a query with a copy command? Its not a problem to count the
> columns with PQnFields(*conn,*result) but there is no documentation f�r
> PQnTupels(*conn,*result) and it does not work.
PQcmdTuples. PQnTuples is for the number of rows actually returned to
the client by a SELECT.
regards, tom lane
i have allready tryed out this it allways returns 0... Tom Lane schrieb: > Bert Horvath <bert.horvath@fh-erfurt.de> writes: >> do i have any chance to get the amount of tupels in the result set after >> executing a query with a copy command? Its not a problem to count the >> columns with PQnFields(*conn,*result) but there is no documentation für >> PQnTupels(*conn,*result) and it does not work. > > PQcmdTuples. PQnTuples is for the number of rows actually returned to > the client by a SELECT. > > regards, tom lane > > ---------------------------(end of broadcast)--------------------------- > TIP 2: Don't 'kill -9' the postmaster > -- Bert Horvath MSc Angewandte Informatik FB Gebäudetechnik und Informatik wissenschaftlicher Mitarbeiter, Projekt MoSDeP Fachhochschule Erfurt - University of Applied Sciences Altonaer Str. 25, D-99085 Erfurt (Haus 10, Raum 10.01.09) Tel: +49 361 / 6700 - 393 Fax: +49 361 / 6700 - 8960 E-Mail: bert.horvath@fh-erfurt.de
Bert Horvath <bert.horvath@fh-erfurt.de> writes:
> Tom Lane schrieb:
>> PQcmdTuples. PQnTuples is for the number of rows actually returned to
>> the client by a SELECT.
> i have allready tryed out this it allways returns 0...
Try a more recent release.
[ checks code... ] Looks like the count was added to COPY's command
status in 8.2.
regards, tom lane
Bert Horvath <bert.horvath@fh-erfurt.de> writes:
> Small example:
> create table foo(bar integer);
> insert into foo values(1),(2),(3);
> res = PQexec(conn, "COPY foo TO stdout;");
> if ( PQresultStatus( res ) == PGRES_COPY_OUT )
> {
> printf("RowCount: ");
> printf("%s\n",PQcmdTuples(res)); // this is NULL
> ...
Wrong result --- at that point you've only started the COPY, not
completed it, so how would it know how many rows there are?
You need to look at the PGRES_COMMAND_OK result after the COPY.
regards, tom lane