our own code ...
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.65 2001/08/10 14:42:47 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.66 2001/08/10 22:50:09 tgl Exp $
-->
<chapter id="libpq">
<listitem>
<para>
<function>PQoidValue</function>
- Returns the object id of the tuple
- inserted, if the <acronym>SQL</acronym> command was an INSERT.
+ Returns the object id of the tuple inserted, if the
+ <acronym>SQL</acronym> command was an INSERT
+ that inserted exactly one row into a table that has OIDs.
Otherwise, returns <literal>InvalidOid</literal>.
<synopsis>
Oid PQoidValue(const PGresult *res);
<listitem>
<para>
<function>PQoidStatus</function>
- Returns a string with the object id of the tuple
- inserted, if the <acronym>SQL</acronym> command was an INSERT.
- Otherwise, returns an empty string.
+ Returns a string with the object id of the tuple inserted, if the
+ <acronym>SQL</acronym> command was an INSERT.
+ (The string will be "0" if the INSERT did not insert exactly one
+ row, or if the target table does not have OIDs.) If the command
+ was not an INSERT, returns an empty string.
<synopsis>
char * PQoidStatus(const PGresult *res);
</synopsis>
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.219 2001/08/10 18:57:38 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.220 2001/08/10 22:50:09 tgl Exp $
*
* Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
*
write_msg(NULL, "could not insert into pgdump_oid table: %s", PQerrorMessage(g_conn));
exit_nicely();
}
- max_oid = atooid(PQoidStatus(res));
+ max_oid = PQoidValue(res);
if (max_oid == 0)
{
write_msg(NULL, "inserted invalid oid\n");
break;
case PGRES_COMMAND_OK:
status = true;
- sqlca.sqlerrd[1] = atol(PQoidStatus(results));
+ sqlca.sqlerrd[1] = PQoidValue(results);
sqlca.sqlerrd[2] = atol(PQcmdTuples(results));
ECPGlog("ECPGexecute line %d Ok: %s\n", stmt->lineno, PQcmdStatus(results));
if (!sqlca.sqlerrd[2] && (!strncmp(PQcmdStatus(results), "UPDATE", 6)
*
* Copyright (c) 2000, Christof Petig <christof.petig@wtal.de>
*
- * $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/execute.c,v 1.19 2001/03/22 04:01:19 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/execute.c,v 1.20 2001/08/10 22:50:10 tgl Exp $
*/
PGconn *ECPG_internal_get_connection(char *name);
break;
case PGRES_COMMAND_OK:
status = true;
- sqlca.sqlerrd[1] = atol(PQoidStatus(results));
+ sqlca.sqlerrd[1] = PQoidValue(results);
sqlca.sqlerrd[2] = atol(PQcmdTuples(results));
ECPGlog("ECPGexecute line %d Ok: %s\n", lineno, PQcmdStatus(results));
break;
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.55 2001/03/22 04:01:23 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.56 2001/08/10 22:50:10 tgl Exp $
*
*-------------------------------------------------------------------------
*/
return PgGetConnByResultId(interp, argv[1]);
else if (strcmp(opt, "-oid") == 0)
{
- Tcl_AppendResult(interp, PQoidStatus(result), 0);
+ sprintf(interp->result, "%u", PQoidValue(result));
return TCL_OK;
}
else if (strcmp(opt, "-clear") == 0)
/*
* Set the oid variable to the returned oid of an INSERT statement if
- * requested (or an empty string if it wasn't an INSERT)
+ * requested (or 0 if it wasn't an INSERT)
*/
if (oid_varname != NULL)
{
- if (Tcl_SetVar(interp, oid_varname,
- PQoidStatus(result), TCL_LEAVE_ERR_MSG) != TCL_OK)
+ char oid_buf[32];
+
+ sprintf(oid_buf, "%u", PQoidValue(result));
+ if (Tcl_SetVar(interp, oid_varname, oid_buf,
+ TCL_LEAVE_ERR_MSG) != TCL_OK)
{
PQclear(result);
return TCL_ERROR;