Обсуждение: 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