Commit 626e6eda authored by Tom Lane's avatar Tom Lane

Improve behavior of \watch with non-tuple-returning commands.

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.
parent 083d8fa7
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment