mirror of
https://github.com/postgres/postgres.git
synced 2025-06-30 21:42:05 +03:00
Add \warn command to psql.
This is like \echo except that the text is sent to stderr not stdout. In passing, fix a pre-existing bug in \echo and \qecho: per documentation the -n switch should only be recognized when it is the first argument, but actually any argument matching "-n" was treated as a switch. (Should we back-patch that?) David Fetter (bug fix by me), reviewed by Fabien Coelho Discussion: https://postgr.es/m/20190421183115.GA4311@fetter.org
This commit is contained in:
@ -319,7 +319,8 @@ exec_command(const char *cmd,
|
||||
status = exec_command_ef_ev(scan_state, active_branch, query_buf, true);
|
||||
else if (strcmp(cmd, "ev") == 0)
|
||||
status = exec_command_ef_ev(scan_state, active_branch, query_buf, false);
|
||||
else if (strcmp(cmd, "echo") == 0 || strcmp(cmd, "qecho") == 0)
|
||||
else if (strcmp(cmd, "echo") == 0 || strcmp(cmd, "qecho") == 0 ||
|
||||
strcmp(cmd, "warn") == 0)
|
||||
status = exec_command_echo(scan_state, active_branch, cmd);
|
||||
else if (strcmp(cmd, "elif") == 0)
|
||||
status = exec_command_elif(scan_state, cstack, query_buf);
|
||||
@ -1114,7 +1115,7 @@ exec_command_ef_ev(PsqlScanState scan_state, bool active_branch,
|
||||
}
|
||||
|
||||
/*
|
||||
* \echo and \qecho -- echo arguments to stdout or query output
|
||||
* \echo, \qecho, and \warn -- echo arguments to stdout, query output, or stderr
|
||||
*/
|
||||
static backslashResult
|
||||
exec_command_echo(PsqlScanState scan_state, bool active_branch, const char *cmd)
|
||||
@ -1129,13 +1130,15 @@ exec_command_echo(PsqlScanState scan_state, bool active_branch, const char *cmd)
|
||||
|
||||
if (strcmp(cmd, "qecho") == 0)
|
||||
fout = pset.queryFout;
|
||||
else if (strcmp(cmd, "warn") == 0)
|
||||
fout = stderr;
|
||||
else
|
||||
fout = stdout;
|
||||
|
||||
while ((value = psql_scan_slash_option(scan_state,
|
||||
OT_NORMAL, "ed, false)))
|
||||
{
|
||||
if (!quoted && strcmp(value, "-n") == 0)
|
||||
if (first && !no_newline && !quoted && strcmp(value, "-n") == 0)
|
||||
no_newline = true;
|
||||
else
|
||||
{
|
||||
|
Reference in New Issue
Block a user