Обсуждение: C-Interface Amound of Tupels in Result after COPYout

Поиск
Список
Период
Сортировка

C-Interface Amound of Tupels in Result after COPYout

От
Bert Horvath
Дата:
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



Re: C-Interface Amound of Tupels in Result after COPYout

От
Tom Lane
Дата:
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


Re: C-Interface Amound of Tupels in Result after COPYout

От
Bert Horvath
Дата:
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



Re: C-Interface Amound of Tupels in Result after COPYout

От
Tom Lane
Дата:
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


Re: C-Interface Amound of Tupels in Result after COPYout

От
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