Index: doc/src/sgml/libpq++.sgml =================================================================== RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/src/sgml/libpq++.sgml,v retrieving revision 1.25 diff -c -r1.25 libpq++.sgml *** doc/src/sgml/libpq++.sgml 2001/04/30 04:26:01 1.25 --- doc/src/sgml/libpq++.sgml 2001/04/30 17:18:22 *************** *** 283,288 **** --- 283,291 ---- Query Execution Functions + + + Main Routines *************** *** 352,357 **** --- 355,367 ---- + + + + + Retrieving SELECT Result Information + + Tuples *************** *** 363,378 **** - CmdTuples - Returns the number of rows affected after an INSERT, UPDATE or DELETE. - If the command was anything else, it returns -1. - - int PgDatabase::CmdTuples() - - - - - Fields Returns the number of fields (attributes) in each tuple of the query result. --- 373,378 ---- *************** *** 451,456 **** --- 451,464 ---- variable size. + + + + + + Retrieving SELECT Result Values + + GetValue *************** *** 541,567 **** ! GetLine ! int PgDatabase::GetLine(char* string, int length) ! PutLine ! void PgDatabase::PutLine(const char* string) ! OidStatus ! const char *PgDatabase::OidStatus() --- 549,600 ---- + + + + + Retrieving Non-SELECT Result Information + + ! CmdTuples ! Returns the number of rows affected after an INSERT, UPDATE or DELETE. ! If the command was anything else, it returns -1. ! int PgDatabase::CmdTuples() + ! OidStatus ! const char *PgDatabase::OidStatus() + + + + + Handling COPY Queries + + ! GetLine ! int PgDatabase::GetLine(char* string, int length) ! ! ! ! ! ! PutLine ! ! void PgDatabase::PutLine(const char* string) *************** *** 575,581 **** ! Asynchronous Notification --- 608,616 ---- ! ! ! Asynchronous Notification Index: doc/src/sgml/libpq.sgml =================================================================== RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/src/sgml/libpq.sgml,v retrieving revision 1.59 diff -c -r1.59 libpq.sgml *** doc/src/sgml/libpq.sgml 2001/03/21 19:09:03 1.59 --- doc/src/sgml/libpq.sgml 2001/04/30 17:18:33 *************** *** 696,701 **** --- 696,703 ---- Once a connection to a database server has been successfully established, the functions described here are used to perform SQL queries and commands. + + Main Routines *************** *** 809,814 **** --- 811,856 ---- + PQclear + Frees the storage associated with the PGresult. + Every query result should be freed via PQclear when + it is no longer needed. + + void PQclear(PQresult *res); + + You can keep a PGresult object around for as long as you + need it; it does not go away when you issue a new query, + nor even if you close the connection. To get rid of it, + you must call PQclear. Failure to do this will + result in memory leaks in the frontend application. + + + + + + PQmakeEmptyPGresult + Constructs an empty PGresult object with the given status. + + PGresult* PQmakeEmptyPGresult(PGconn *conn, ExecStatusType status); + + This is libpq's internal routine to allocate and initialize an empty + PGresult object. It is exported because some applications find it + useful to generate result objects (particularly objects with error + status) themselves. If conn is not NULL and status indicates an error, + the connection's current errorMessage is copied into the PGresult. + Note that PQclear should eventually be called on the object, just + as with a PGresult returned by libpq itself. + + + + + + + Retrieving SELECT Result Information + + + + PQntuples Returns the number of tuples (rows) in the query result. *************** *** 829,851 **** - - - PQbinaryTuples - Returns 1 if the PGresult contains binary tuple data, - 0 if it contains ASCII data. - - int PQbinaryTuples(const PGresult *res); - - Currently, binary tuple data can only be returned by a query that - extracts data from a BINARY cursor. - - PQfname ! Returns the field (attribute) name associated with the given field index. Field indices start at 0. char *PQfname(const PGresult *res, --- 871,881 ---- PQfname ! Returns the field (attribute) name associated with the given field index. Field indices start at 0. char *PQfname(const PGresult *res, *************** *** 890,895 **** --- 920,938 ---- + PQfmod + Returns the type-specific modification data of the field + associated with the given field index. + Field indices start at 0. + + int PQfmod(const PGresult *res, + int field_index); + + + + + + PQfsize Returns the size in bytes of the field associated with the given field index. *************** *** 902,922 **** tuple, in other words the size of the server's binary representation of the data type. -1 is returned if the field is variable size. ! PQfmod ! Returns the type-specific modification data of the field ! associated with the given field index. ! Field indices start at 0. ! int PQfmod(const PGresult *res, ! int field_index); PQgetvalue --- 945,972 ---- tuple, in other words the size of the server's binary representation of the data type. -1 is returned if the field is variable size. + ! PQbinaryTuples ! Returns 1 if the PGresult contains binary tuple data, ! 0 if it contains ASCII data. ! int PQbinaryTuples(const PGresult *res); + Currently, binary tuple data can only be returned by a query that + extracts data from a BINARY cursor. + + + + + Retrieving SELECT Result Values + PQgetvalue *************** *** 947,954 **** PQgetlength ! Returns the length of a field (attribute) in bytes. Tuple and field indices start at 0. int PQgetlength(const PGresult *res, --- 997,1021 ---- + PQgetisnull + Tests a field for a NULL entry. + Tuple and field indices start at 0. + + int PQgetisnull(const PGresult *res, + int tup_num, + int field_num); + + This function returns 1 if the field contains a NULL, 0 if + it contains a non-null value. (Note that PQgetvalue + will return an empty string, not a null pointer, for a NULL + field.) + + + + + PQgetlength ! Returns the length of a field (attribute) value in bytes. Tuple and field indices start at 0. int PQgetlength(const PGresult *res, *************** *** 963,983 **** ! PQgetisnull ! Tests a field for a NULL entry. ! Tuple and field indices start at 0. ! ! int PQgetisnull(const PGresult *res, ! int tup_num, ! int field_num); ! ! This function returns 1 if the field contains a NULL, 0 if ! it contains a non-null value. (Note that PQgetvalue ! will return an empty string, not a null pointer, for a NULL ! field.) PQcmdStatus --- 1030,1068 ---- ! PQprint ! Prints out all the tuples and, optionally, the ! attribute names to the specified output stream. ! ! void PQprint(FILE* fout, /* output stream */ ! const PGresult *res, ! const PQprintOpt *po); ! ! struct { ! pqbool header; /* print output field headings and row count */ ! pqbool align; /* fill align the fields */ ! pqbool standard; /* old brain dead format */ ! pqbool html3; /* output html tables */ ! pqbool expanded; /* expand tables */ ! pqbool pager; /* use pager for output if needed */ ! char *fieldSep; /* field separator */ ! char *tableOpt; /* insert to HTML table ... */ ! char *caption; /* HTML caption */ ! char **fieldName; /* null terminated array of replacement field names */ ! } PQprintOpt; ! ! This function was formerly used by psql ! to print query results, but this is no longer the case and this ! function is no longer actively supported. + + + + Retrieving Non-SELECT Result Information + + PQcmdStatus *************** *** 1032,1101 **** - - - PQprint - Prints out all the tuples and, optionally, the - attribute names to the specified output stream. - - void PQprint(FILE* fout, /* output stream */ - const PGresult *res, - const PQprintOpt *po); - - struct { - pqbool header; /* print output field headings and row count */ - pqbool align; /* fill align the fields */ - pqbool standard; /* old brain dead format */ - pqbool html3; /* output html tables */ - pqbool expanded; /* expand tables */ - pqbool pager; /* use pager for output if needed */ - char *fieldSep; /* field separator */ - char *tableOpt; /* insert to HTML table ... */ - char *caption; /* HTML caption */ - char **fieldName; /* null terminated array of replacement field names */ - } PQprintOpt; - - This function was formerly used by psql - to print query results, but this is no longer the case and this - function is no longer actively supported. - - - - - - PQclear - Frees the storage associated with the PGresult. - Every query result should be freed via PQclear when - it is no longer needed. - - void PQclear(PQresult *res); - - You can keep a PGresult object around for as long as you - need it; it does not go away when you issue a new query, - nor even if you close the connection. To get rid of it, - you must call PQclear. Failure to do this will - result in memory leaks in the frontend application. - - - - - - PQmakeEmptyPGresult - Constructs an empty PGresult object with the given status. - - PGresult* PQmakeEmptyPGresult(PGconn *conn, ExecStatusType status); - - This is libpq's internal routine to allocate and initialize an empty - PGresult object. It is exported because some applications find it - useful to generate result objects (particularly objects with error - status) themselves. If conn is not NULL and status indicates an error, - the connection's current errorMessage is copied into the PGresult. - Note that PQclear should eventually be called on the object, just - as with a PGresult returned by libpq itself. - - --- 1117,1125 ---- +