1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-02 09:02:37 +03:00

psql: Add \gx command

It can often be useful to use expanded mode output (\x) for just a
single query.  Introduce a \gx which acts exactly like \g except that it
will force expanded output mode for that one \gx call.  This is simpler
than having to use \x as a toggle and also means that the user doesn't
have to worry about the current state of the expanded variable, or
resetting it later, to ensure a given query is always returned in
expanded mode.

Primairly Christoph's patch, though I did tweak the documentation and help
text a bit, and re-indented the tab completion section.

Author: Christoph Berg
Reviewed By: Daniel Verite
Discussion: https://postgr.es/m/20170127132737.6skslelaf4txs6iw%40msg.credativ.de
This commit is contained in:
Stephen Frost
2017-03-07 09:31:52 -05:00
parent 9a83d56b38
commit b2678efd43
8 changed files with 64 additions and 7 deletions

View File

@ -906,8 +906,11 @@ exec_command(const char *cmd,
free(fname);
}
/* \g [filename] -- send query, optionally with output to file/pipe */
else if (strcmp(cmd, "g") == 0)
/*
* \g [filename] -- send query, optionally with output to file/pipe
* \gx [filename] -- same as \g, with expanded mode forced
*/
else if (strcmp(cmd, "g") == 0 || strcmp(cmd, "gx") == 0)
{
char *fname = psql_scan_slash_option(scan_state,
OT_FILEPIPE, NULL, false);
@ -920,6 +923,8 @@ exec_command(const char *cmd,
pset.gfname = pg_strdup(fname);
}
free(fname);
if (strcmp(cmd, "gx") == 0)
pset.g_expanded = true;
status = PSQL_CMD_SEND;
}