aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2000-10-24 00:08:02 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2000-10-24 00:08:02 +0000
commitd7186cfa9b0807deb5c4f31975a4269efa0905cf (patch)
tree9b860f98436f1f58e2ca470704ccc78cee7ced48
parent570ed46401294c73491ff8b5d6c9790a838b1c42 (diff)
downloadpostgresql-d7186cfa9b0807deb5c4f31975a4269efa0905cf.tar.gz
postgresql-d7186cfa9b0807deb5c4f31975a4269efa0905cf.zip
Add some modicum of error detection...
-rw-r--r--src/test/examples/testlo.c34
1 files changed, 22 insertions, 12 deletions
diff --git a/src/test/examples/testlo.c b/src/test/examples/testlo.c
index 7700ce78833..181216bf783 100644
--- a/src/test/examples/testlo.c
+++ b/src/test/examples/testlo.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/test/examples/testlo.c,v 1.15 2000/04/25 16:39:07 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/test/examples/testlo.c,v 1.16 2000/10/24 00:08:02 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -96,6 +96,8 @@ pickout(PGconn *conn, Oid lobjId, int start, int len)
buf[nbytes] = '\0';
fprintf(stderr, ">>> %s", buf);
nread += nbytes;
+ if (nbytes <= 0)
+ break; /* no more data? */
}
fprintf(stderr, "\n");
lo_close(conn, lobj_fd);
@@ -126,6 +128,11 @@ overwrite(PGconn *conn, Oid lobjId, int start, int len)
{
nbytes = lo_write(conn, lobj_fd, buf + nwritten, len - nwritten);
nwritten += nbytes;
+ if (nbytes <= 0)
+ {
+ fprintf(stderr, "\nWRITE FAILED!\n");
+ break;
+ }
}
fprintf(stderr, "\n");
lo_close(conn, lobj_fd);
@@ -229,21 +236,24 @@ main(int argc, char **argv)
/* lobjOid = importFile(conn, in_filename); */
lobjOid = lo_import(conn, in_filename);
if (lobjOid == 0)
+ {
fprintf(stderr, "%s\n", PQerrorMessage(conn));
+ }
+ else
+ {
+ printf("\tas large object %u.\n", lobjOid);
- printf("\tas large object %u.\n", lobjOid);
-
- printf("picking out bytes 1000-2000 of the large object\n");
- pickout(conn, lobjOid, 1000, 1000);
-
- printf("overwriting bytes 1000-2000 of the large object with X's\n");
- overwrite(conn, lobjOid, 1000, 1000);
+ printf("picking out bytes 1000-2000 of the large object\n");
+ pickout(conn, lobjOid, 1000, 1000);
+ printf("overwriting bytes 1000-2000 of the large object with X's\n");
+ overwrite(conn, lobjOid, 1000, 1000);
- printf("exporting large object to file \"%s\" ...\n", out_filename);
-/* exportFile(conn, lobjOid, out_filename); */
- if (!lo_export(conn, lobjOid, out_filename))
- fprintf(stderr, "%s\n", PQerrorMessage(conn));
+ printf("exporting large object to file \"%s\" ...\n", out_filename);
+/* exportFile(conn, lobjOid, out_filename); */
+ if (!lo_export(conn, lobjOid, out_filename))
+ fprintf(stderr, "%s\n", PQerrorMessage(conn));
+ }
res = PQexec(conn, "end");
PQclear(res);