*** ./doc/src/sgml/ref/psql-ref.sgml.orig 2008-04-03 00:53:15.697658287 +0200
--- ./doc/src/sgml/ref/psql-ref.sgml 2008-04-03 00:42:16.484091846 +0200
***************
*** 1267,1272 ****
--- 1267,1286 ----
+ \G [ { filename | |command } ]
+
+
+
+ Sends the current query input buffer to the server in
+ expanded table output. Apart from that it is virtually
+ equivalent to \g. A \G
+ is one-shot
alternative to the
+ \x command.
+
+
+
+
+
\help (or \h) [ command ]
*** ./src/bin/psql/command.c.orig 2008-04-03 00:49:08.407566027 +0200
--- ./src/bin/psql/command.c 2008-04-03 09:00:34.780234997 +0200
***************
*** 532,539 ****
free(fname);
}
! /* \g means send query */
! else if (strcmp(cmd, "g") == 0)
{
char *fname = psql_scan_slash_option(scan_state,
OT_FILEPIPE, NULL, false);
--- 532,542 ----
free(fname);
}
! /*
! * \g means send query, while
! * \G means send query and output in expanded mode
! */
! else if (strcmp(cmd, "g") == 0 || strcmp(cmd, "G") == 0)
{
char *fname = psql_scan_slash_option(scan_state,
OT_FILEPIPE, NULL, false);
***************
*** 547,552 ****
--- 550,562 ----
}
free(fname);
status = PSQL_CMD_SEND;
+
+ /* \G -- turn expanded mode, but only for one query */
+ if (cmd[0]=='G' && !pset.popt.topt.expanded)
+ {
+ pset.popt.topt.expanded = true;
+ pset.popt.topt.expand_once = true;
+ }
}
/* help */
*** ./src/bin/psql/common.c.orig 2008-04-03 00:49:08.411566255 +0200
--- ./src/bin/psql/common.c 2008-04-03 00:31:34.727520223 +0200
***************
*** 602,607 ****
--- 602,614 ----
else
printQuery(results, &my_popt, pset.queryFout, pset.logfile);
+ /* If running expand once (\G) command, turn expand off afterwards */
+ if (pset.popt.topt.expand_once)
+ {
+ pset.popt.topt.expand_once = false;
+ pset.popt.topt.expanded = false;
+ }
+
return true;
}
*** ./src/bin/psql/help.c.orig 2008-04-03 00:49:08.415566483 +0200
--- ./src/bin/psql/help.c 2008-04-03 00:51:56.705156760 +0200
***************
*** 193,198 ****
--- 193,199 ----
fprintf(output, _("Query Buffer\n"));
fprintf(output, _(" \\e [FILE] edit the query buffer (or file) with external editor\n"));
fprintf(output, _(" \\g [FILE] send query buffer to server (and results to file or |pipe)\n"));
+ fprintf(output, _(" \\G [FILE] send query buffer to server and output in expanded format\n"));
fprintf(output, _(" \\p show the contents of the query buffer\n"));
fprintf(output, _(" \\r reset (clear) the query buffer\n"));
#ifdef USE_READLINE
*** ./src/bin/psql/print.h.orig 2008-04-03 00:49:08.419566711 +0200
--- ./src/bin/psql/print.h 2008-04-03 00:09:15.273876665 +0200
***************
*** 33,38 ****
--- 33,39 ----
enum printFormat format; /* one of the above */
bool expanded; /* expanded/vertical output (if supported by
* output format) */
+ bool expand_once; /* Use expanded format for one query only */
unsigned short int border; /* Print a border around the table. 0=none,
* 1=dividing lines, 2=full */
unsigned short int pager; /* use pager for output (if to stdout and
*** ./src/bin/psql/tab-complete.c.orig 2008-04-03 00:49:08.423566939 +0200
--- ./src/bin/psql/tab-complete.c 2008-04-03 00:34:19.376903057 +0200
***************
*** 624,630 ****
"\\dF", "\\dFd", "\\dFp", "\\dFt", "\\dg", "\\di", "\\dl",
"\\dn", "\\do", "\\dp", "\\ds", "\\dS", "\\dt", "\\dT", "\\dv", "\\du",
"\\e", "\\echo", "\\encoding",
! "\\f", "\\g", "\\h", "\\help", "\\H", "\\i", "\\l",
"\\lo_import", "\\lo_export", "\\lo_list", "\\lo_unlink",
"\\o", "\\p", "\\password", "\\prompt", "\\pset", "\\q", "\\qecho", "\\r",
"\\set", "\\t", "\\T",
--- 624,630 ----
"\\dF", "\\dFd", "\\dFp", "\\dFt", "\\dg", "\\di", "\\dl",
"\\dn", "\\do", "\\dp", "\\ds", "\\dS", "\\dt", "\\dT", "\\dv", "\\du",
"\\e", "\\echo", "\\encoding",
! "\\f", "\\g", "\\G", "\\h", "\\help", "\\H", "\\i", "\\l",
"\\lo_import", "\\lo_export", "\\lo_list", "\\lo_unlink",
"\\o", "\\p", "\\password", "\\prompt", "\\pset", "\\q", "\\qecho", "\\r",
"\\set", "\\t", "\\T",
***************
*** 2119,2125 ****
}
else if (strcmp(prev_wd, "\\cd") == 0 ||
strcmp(prev_wd, "\\e") == 0 || strcmp(prev_wd, "\\edit") == 0 ||
! strcmp(prev_wd, "\\g") == 0 ||
strcmp(prev_wd, "\\i") == 0 || strcmp(prev_wd, "\\include") == 0 ||
strcmp(prev_wd, "\\o") == 0 || strcmp(prev_wd, "\\out") == 0 ||
strcmp(prev_wd, "\\s") == 0 ||
--- 2119,2125 ----
}
else if (strcmp(prev_wd, "\\cd") == 0 ||
strcmp(prev_wd, "\\e") == 0 || strcmp(prev_wd, "\\edit") == 0 ||
! strcmp(prev_wd, "\\g") == 0 || strcmp(prev_wd, "\\G") == 0 ||
strcmp(prev_wd, "\\i") == 0 || strcmp(prev_wd, "\\include") == 0 ||
strcmp(prev_wd, "\\o") == 0 || strcmp(prev_wd, "\\out") == 0 ||
strcmp(prev_wd, "\\s") == 0 ||