git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 083d8fa)
Improve behavior of \watch with non-tuple-returning commands.
Sat, 4 May 2013 20:41:22 +0000 (16:41 -0400)
Sat, 4 May 2013 20:41:22 +0000 (16:41 -0400)
Print the command tag if we get PGRES_COMMAND_OK, and throw an error for
other cases. Per gripe from Michael Paquier.

In passing, add an fflush(), just to be real sure the output appears
before we sleep.


diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c
index 4e4c5bec7b25d0ccdc697b72e6f3c0036a653528..0e99794032822c8b830e4a5b99cb4133daea982f 100644 (file)
--- a/src/bin/psql/command.c
+++ b/src/bin/psql/command.c
@@ -2648,18 +2648,33 @@ do_watch(PQExpBuffer query_buf, long sleep)
printQuery(res, &myopt, pset.queryFout, pset.logfile);
break;
+ case PGRES_COMMAND_OK:
+ fprintf(pset.queryFout, "%s\n%s\n\n", title, PQcmdStatus(res));
+ break;
+
case PGRES_EMPTY_QUERY:
psql_error(_("\\watch cannot be used with an empty query\n"));
PQclear(res);
return false;
+ case PGRES_COPY_OUT:
+ case PGRES_COPY_IN:
+ case PGRES_COPY_BOTH:
+ psql_error(_("\\watch cannot be used with COPY\n"));
+ PQclear(res);
+ return false;
+
default:
- /* should we fail for non-tuple-result commands? */
- break;
+ /* other cases should have been handled by PSQLexec */
+ psql_error(_("unexpected result status for \\watch\n"));
+ PQclear(res);
+ return false;
}
PQclear(res);
+ fflush(pset.queryFout);
+
/*
* Set up cancellation of 'watch' via SIGINT. We redo this each time
* through the loop since it's conceivable something inside PSQLexec
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /