diff options
author | Vadim B. Mikheev <vadim4o@yahoo.com> | 1997-08-27 09:05:24 +0000 |
---|---|---|
committer | Vadim B. Mikheev <vadim4o@yahoo.com> | 1997-08-27 09:05:24 +0000 |
commit | 3751b49545d71881b93035ef8cdd1c4034f08a59 (patch) | |
tree | 6021423b94d39d1969c34225df10e5c97840d69d /src/interfaces/libpq/fe-exec.c | |
parent | 40ac5a692bedde826da70158cb1194e6774b8888 (diff) | |
download | postgresql-3751b49545d71881b93035ef8cdd1c4034f08a59.tar.gz postgresql-3751b49545d71881b93035ef8cdd1c4034f08a59.zip |
Number of tuples inserted/affected by INSERT/UPDATE/DELETE...
Diffstat (limited to 'src/interfaces/libpq/fe-exec.c')
-rw-r--r-- | src/interfaces/libpq/fe-exec.c | 74 |
1 files changed, 63 insertions, 11 deletions
diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c index 9214b3a941a..97543a05d15 100644 --- a/src/interfaces/libpq/fe-exec.c +++ b/src/interfaces/libpq/fe-exec.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.33 1997/07/12 20:31:47 momjian Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.34 1997/08/27 09:05:23 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -1532,18 +1532,70 @@ char* PQcmdStatus(PGresult *res) { if the last command was an INSERT, return the oid string if not, return "" */ -const char* PQoidStatus(PGresult *res) { - if (!res) { - fprintf(stderr, "PQoidStatus() -- pointer to PQresult is null"); - return NULL; - } +static char oidStatus[32] = {0}; +const char* PQoidStatus (PGresult *res) +{ + if (!res) + { + fprintf (stderr, "PQoidStatus () -- pointer to PQresult is null"); + return NULL; + } - if (!res->cmdStatus) - return ""; + oidStatus[0] = 0; + if ( !res->cmdStatus ) + return oidStatus; + + if ( strncmp (res->cmdStatus, "INSERT", 6) == 0 ) + { + char *p = res->cmdStatus + 7; + char *e; + + for (e = p; *e != ' ' && *e; ) e++; + sprintf (oidStatus, "%.*s", e - p, p); + } + return oidStatus; +} - if (strncmp(res->cmdStatus, "INSERT",6) == 0) { - return res->cmdStatus+7; - } else +/* + PQcmdTuples - + if the last command was an INSERT/UPDATE/DELETE, return number + of inserted/affected tuples, if not, return "" +*/ +const char* PQcmdTuples (PGresult *res) +{ + if (!res) + { + fprintf (stderr, "PQcmdTuples () -- pointer to PQresult is null"); + return NULL; + } + + if ( !res->cmdStatus ) + return ""; + + if ( strncmp (res->cmdStatus, "INSERT", 6) == 0 || + strncmp (res->cmdStatus, "DELETE", 6) == 0 || + strncmp (res->cmdStatus, "UPDATE", 6) == 0 ) + { + char *p = res->cmdStatus + 6; + + if ( *p == 0 ) + { + fprintf (stderr, "PQcmdTuples (%s) -- short input from server", + res->cmdStatus); + return NULL; + } + p++; + if ( *(res->cmdStatus) != 'I' ) /* UPDATE/DELETE */ + return (p); + while ( *p != ' ' && *p ) p++; /* INSERT: skip oid */ + if ( *p == 0 ) + { + fprintf (stderr, "PQcmdTuples (INSERT) -- there's no # of tuples"); + return NULL; + } + p++; + return (p); + } return ""; } |