pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Bruce Momjian <pgman@candle.pha.pa.us>
To: Payman <payman@Club-Internet.fr>
Cc: Michael Klatt <mdklatt@ou.edu>
Cc: pgsql-interfaces@postgresql.org
Subject: Re: PQcmdTuples() declaration
Date: Fri, 8 Nov 2002 00:11:01 -0500 (EST)
Message-ID: <200211080511.gA85B2K11157@candle.pha.pa.us> (raw)
In-Reply-To: <3DCA7764.8070404@Club-Internet.fr>


I am not sure how to deal with this.  I have updated the 7.3/CVS docs to
match the include file and code, which has no consts.

The issue with PQcmdTuples() and PQcmdStatus() are that they return
*result structure member pointers.  The patch makes the *result a const,
then we have to return the values as const's.  The code compiled OK, so
I assume that is fine.  How does that sound to others, or should we keep
the result non-const?

---------------------------------------------------------------------------

Payman wrote:
> Hi Michael
> I am running version 7.2.3 on MacOS X and seam thing
> I think this is a doc probleme .
> Strange my doc is a 7.2.1 documentation and 7.2.3 Package.
> If you change the include file you must rebuild all postgresql .
> you dont have link error ?
> 
> Payman
> 
> >I am running version 7.1.3, installed as an RPM from Red Hat.  According to
> >the documentation for libpq, function PQcmdTuples is declared as
> >'PQcmdTuples(const PGresult*)'.  In my 'libpq-fe.h' include file it is
> >declared as 'PQcmdTuples(PGresult*)' (no const).  Is this an error in the
> >documentation or my include file?  I have changed the include file to match
> >the documentation, and I haven't noticed any negative effects so far.
> >
> >  
> >
> 
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Attachments:

/pgpatches/libpq_const (text/plain, 4.5K) download Index: doc/src/sgml/libpq.sgml =================================================================== RCS file: /cvsroot/pgsql-server/doc/src/sgml/libpq.sgml,v retrieving revision 1.98 diff -c -c -r1.98 libpq.sgml *** doc/src/sgml/libpq.sgml 3 Nov 2002 01:30:46 -0000 1.98 --- doc/src/sgml/libpq.sgml 7 Nov 2002 23:14:22 -0000 *************** *** 1210,1216 **** Returns the command status string from the SQL command that generated the <structname>PGresult</structname>. <synopsis> ! char * PQcmdStatus(PGresult *res); </synopsis> </para> </listitem> --- 1210,1216 ---- Returns the command status string from the SQL command that generated the <structname>PGresult</structname>. <synopsis> ! const char * PQcmdStatus(const PGresult *res); </synopsis> </para> </listitem> *************** *** 1220,1226 **** <function>PQcmdTuples</function> Returns the number of rows affected by the SQL command. <synopsis> ! char * PQcmdTuples(PGresult *res); </synopsis> If the <acronym>SQL</acronym> command that generated the <structname>PGresult</structname> was INSERT, UPDATE or DELETE, this returns a --- 1220,1226 ---- <function>PQcmdTuples</function> Returns the number of rows affected by the SQL command. <synopsis> ! const char * PQcmdTuples(const PGresult *res); </synopsis> If the <acronym>SQL</acronym> command that generated the <structname>PGresult</structname> was INSERT, UPDATE or DELETE, this returns a Index: src/interfaces/libpq/fe-exec.c =================================================================== RCS file: /cvsroot/pgsql-server/src/interfaces/libpq/fe-exec.c,v retrieving revision 1.122 diff -c -c -r1.122 fe-exec.c *** src/interfaces/libpq/fe-exec.c 4 Sep 2002 20:31:47 -0000 1.122 --- src/interfaces/libpq/fe-exec.c 7 Nov 2002 23:14:43 -0000 *************** *** 2234,2241 **** return 0; } ! char * ! PQcmdStatus(PGresult *res) { if (!res) return NULL; --- 2234,2241 ---- return 0; } ! const char * ! PQcmdStatus(const PGresult *res) { if (!res) return NULL; *************** *** 2303,2310 **** if the last command was an INSERT/UPDATE/DELETE, return number of inserted/affected tuples, if not, return "" */ ! char * ! PQcmdTuples(PGresult *res) { char noticeBuf[128]; --- 2303,2310 ---- if the last command was an INSERT/UPDATE/DELETE, return number of inserted/affected tuples, if not, return "" */ ! const char * ! PQcmdTuples(const PGresult *res) { char noticeBuf[128]; *************** *** 2315,2321 **** strncmp(res->cmdStatus, "DELETE", 6) == 0 || strncmp(res->cmdStatus, "UPDATE", 6) == 0) { ! char *p = res->cmdStatus + 6; if (*p == 0) { --- 2315,2321 ---- strncmp(res->cmdStatus, "DELETE", 6) == 0 || strncmp(res->cmdStatus, "UPDATE", 6) == 0) { ! const char *p = res->cmdStatus + 6; if (*p == 0) { Index: src/interfaces/libpq/libpq-fe.h =================================================================== RCS file: /cvsroot/pgsql-server/src/interfaces/libpq/libpq-fe.h,v retrieving revision 1.86 diff -c -c -r1.86 libpq-fe.h *** src/interfaces/libpq/libpq-fe.h 4 Sep 2002 20:31:47 -0000 1.86 --- src/interfaces/libpq/libpq-fe.h 7 Nov 2002 23:14:45 -0000 *************** *** 307,316 **** extern Oid PQftype(const PGresult *res, int field_num); extern int PQfsize(const PGresult *res, int field_num); extern int PQfmod(const PGresult *res, int field_num); ! extern char *PQcmdStatus(PGresult *res); extern char *PQoidStatus(const PGresult *res); /* old and ugly */ extern Oid PQoidValue(const PGresult *res); /* new and improved */ ! extern char *PQcmdTuples(PGresult *res); extern char *PQgetvalue(const PGresult *res, int tup_num, int field_num); extern int PQgetlength(const PGresult *res, int tup_num, int field_num); extern int PQgetisnull(const PGresult *res, int tup_num, int field_num); --- 307,316 ---- extern Oid PQftype(const PGresult *res, int field_num); extern int PQfsize(const PGresult *res, int field_num); extern int PQfmod(const PGresult *res, int field_num); ! extern const char *PQcmdStatus(const PGresult *res); extern char *PQoidStatus(const PGresult *res); /* old and ugly */ extern Oid PQoidValue(const PGresult *res); /* new and improved */ ! extern const char *PQcmdTuples(const PGresult *res); extern char *PQgetvalue(const PGresult *res, int tup_num, int field_num); extern int PQgetlength(const PGresult *res, int tup_num, int field_num); extern int PQgetisnull(const PGresult *res, int tup_num, int field_num);

view thread (7+ messages)  latest in thread

Message-ID: <200211080511.gA85B2K11157@candle.pha.pa.us>
Permalink:  ../200211080511.gA85B2K11157@candle.pha.pa.us/
Also on:    postgresql.org/message-id/200211080511.gA85B2K11157@candle.pha.pa.us

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: pgman@candle.pha.pa.us, payman@Club-Internet.fr, mdklatt@ou.edu
  Subject: Re: PQcmdTuples() declaration
  In-Reply-To: <200211080511.gA85B2K11157@candle.pha.pa.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox