diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index 64fa55f000..81fb06e148 100644 --- a/doc/src/sgml/ref/psql-ref.sgml +++ b/doc/src/sgml/ref/psql-ref.sgml @@ -1,5 +1,5 @@ @@ -433,8 +433,8 @@ PostgreSQL documentation - Turn on the extended table formatting mode. This is equivalent to the - command \x. + Turn on the expanded table formatting mode. This is equivalent to the + \x command. @@ -1389,7 +1389,7 @@ lo_import 152801 aligned, html, latex, or troff-ms. Unique abbreviations are allowed. (That would mean one letter - is enough.) + is enough.) @@ -1429,10 +1429,13 @@ lo_import 152801 Toggles between regular and expanded format. When expanded - format is enabled, all output has two columns with the column - name on the left and the data on the right. This mode is - useful if the data wouldn't fit on the screen in the normal - horizontal mode. + format is enabled, query results are displayed in two + columns, with the column name on the left and the data on + the right. This option only affects how normal query results + are displayed; the output of psql + meta-commands is always presented using the regular + format. This mode is useful if the data wouldn't fit on the + screen in the normal horizontal mode. @@ -1722,7 +1725,7 @@ lo_import 152801 \x - Toggles extended table formatting mode. As such it is equivalent to + Toggles expanded table formatting mode. As such it is equivalent to \pset expanded. diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c index bf58b885a9..870d631068 100644 --- a/src/bin/psql/command.c +++ b/src/bin/psql/command.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2005, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.145 2005/06/09 23:28:09 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.146 2005/06/13 06:36:22 neilc Exp $ */ #include "postgres_fe.h" #include "command.h" @@ -114,11 +114,6 @@ HandleSlashCmds(PsqlScanState scan_state, { /* adjust cmd for possible messages below */ cmd[1] = '\0'; - -#if 0 /* turned out to be too annoying */ - if (isalpha((unsigned char) cmd[0])) - psql_error("Warning: This syntax is deprecated.\n"); -#endif } } diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index 78c8fa294d..b1cec74499 100644 --- a/src/bin/psql/common.c +++ b/src/bin/psql/common.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2005, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/common.c,v 1.100 2005/06/10 14:49:31 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/psql/common.c,v 1.101 2005/06/13 06:36:22 neilc Exp $ */ #include "postgres_fe.h" #include "common.h" @@ -64,7 +64,6 @@ extern bool prompt_state; static bool command_no_begin(const char *query); - /* * "Safe" wrapper around strdup() */ @@ -189,7 +188,7 @@ setQFout(const char *fname) * */ void -psql_error(const char *fmt,...) +psql_error(const char *fmt, ...) { va_list ap; @@ -784,6 +783,10 @@ PrintNotifications(void) static bool PrintQueryTuples(const PGresult *results) { + printQueryOpt my_popt = pset.popt; + + my_popt.topt.normal_query = true; + /* write output to \g argument, if any */ if (pset.gfname) { @@ -800,7 +803,7 @@ PrintQueryTuples(const PGresult *results) return false; } - printQuery(results, &pset.popt, pset.queryFout); + printQuery(results, &my_popt, pset.queryFout); /* close file/pipe, restore old setting */ setQFout(NULL); @@ -812,7 +815,7 @@ PrintQueryTuples(const PGresult *results) pset.gfname = NULL; } else - printQuery(results, &pset.popt, pset.queryFout); + printQuery(results, &my_popt, pset.queryFout); return true; } @@ -1001,7 +1004,7 @@ SendQuery(const char *query) if (on_error_rollback_warning == false && pset.sversion < 80000) { fprintf(stderr, _("The server version (%d) does not support savepoints for ON_ERROR_ROLLBACK.\n"), - pset.sversion); + pset.sversion); on_error_rollback_warning = true; } else diff --git a/src/bin/psql/common.h b/src/bin/psql/common.h index 6c18ed73e1..e819a23409 100644 --- a/src/bin/psql/common.h +++ b/src/bin/psql/common.h @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2005, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/common.h,v 1.43 2005/05/30 18:28:11 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/psql/common.h,v 1.44 2005/06/13 06:36:22 neilc Exp $ */ #ifndef COMMON_H #define COMMON_H @@ -22,7 +22,6 @@ #define atooid(x) ((Oid) strtoul((x), NULL, 10)) - /* * Safer versions of some standard C library functions. If an * out-of-memory condition occurs, these functions will bail out @@ -36,7 +35,7 @@ extern void *pg_calloc(size_t nmemb, size_t size); extern bool setQFout(const char *fname); extern void -psql_error(const char *fmt,...) +psql_error(const char *fmt, ...) /* This lets gcc check the format string for consistency. */ __attribute__((format(printf, 1, 2))); diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c index 20428290d1..ede239e2e9 100644 --- a/src/bin/psql/print.c +++ b/src/bin/psql/print.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2005, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.57 2005/06/09 18:40:06 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.58 2005/06/13 06:36:22 neilc Exp $ */ #include "postgres_fe.h" #include "common.h" @@ -29,7 +29,6 @@ #include "mbprint.h" - /*************************/ /* Unaligned text */ /*************************/ @@ -1261,6 +1260,7 @@ printTable(const char *title, const char *default_footer[] = {NULL}; unsigned short int border = opt->border; FILE *output; + bool use_expanded; if (opt->format == PRINT_NOTHING) return; @@ -1271,6 +1271,16 @@ printTable(const char *title, if (opt->format != PRINT_HTML && border > 2) border = 2; + /* + * We only want to display the results in "expanded" format if + * this is a normal (user-submitted) query, not a table we're + * printing for a slash command. + */ + if (opt->expanded && opt->normal_query) + use_expanded = true; + else + use_expanded = false; + if (fout == stdout) { int col_count = 0, @@ -1305,37 +1315,56 @@ printTable(const char *title, switch (opt->format) { case PRINT_UNALIGNED: - if (opt->expanded) - print_unaligned_vertical(title, headers, cells, footers, opt->fieldSep, opt->recordSep, opt->tuples_only, output); + if (use_expanded) + print_unaligned_vertical(title, headers, cells, footers, + opt->fieldSep, opt->recordSep, + opt->tuples_only, output); else - print_unaligned_text(title, headers, cells, footers, opt->fieldSep, opt->recordSep, opt->tuples_only, output); + print_unaligned_text(title, headers, cells, footers, + opt->fieldSep, opt->recordSep, + opt->tuples_only, output); break; case PRINT_ALIGNED: - if (opt->expanded) - print_aligned_vertical(title, headers, cells, footers, opt->tuples_only, border, opt->encoding, output); + if (use_expanded) + print_aligned_vertical(title, headers, cells, footers, + opt->tuples_only, border, + opt->encoding, output); else - print_aligned_text(title, headers, cells, footers, align, opt->tuples_only, border, opt->encoding, output); + print_aligned_text(title, headers, cells, footers, + align, opt->tuples_only, + border, opt->encoding, output); break; case PRINT_HTML: - if (opt->expanded) - print_html_vertical(title, headers, cells, footers, align, opt->tuples_only, border, opt->tableAttr, output); + if (use_expanded) + print_html_vertical(title, headers, cells, footers, + align, opt->tuples_only, + border, opt->tableAttr, output); else - print_html_text(title, headers, cells, footers, align, opt->tuples_only, border, opt->tableAttr, output); + print_html_text(title, headers, cells, footers, + align, opt->tuples_only, border, + opt->tableAttr, output); break; case PRINT_LATEX: - if (opt->expanded) - print_latex_vertical(title, headers, cells, footers, align, opt->tuples_only, border, output); + if (use_expanded) + print_latex_vertical(title, headers, cells, footers, align, + opt->tuples_only, border, output); else - print_latex_text(title, headers, cells, footers, align, opt->tuples_only, border, output); + print_latex_text(title, headers, cells, footers, align, + opt->tuples_only, border, output); break; case PRINT_TROFF_MS: - if (opt->expanded) - print_troff_ms_vertical(title, headers, cells, footers, align, opt->tuples_only, border, output); + if (use_expanded) + print_troff_ms_vertical(title, headers, cells, footers, + align, opt->tuples_only, + border, output); else - print_troff_ms_text(title, headers, cells, footers, align, opt->tuples_only, border, output); + print_troff_ms_text(title, headers, cells, footers, + align, opt->tuples_only, + border, output); break; default: - fprintf(stderr, "+ Oops, you shouldn't see this!\n"); + fprintf(stderr, _("illegal output format: %d"), opt->format); + exit(EXIT_FAILURE); } /* Only close if we used the pager */ diff --git a/src/bin/psql/print.h b/src/bin/psql/print.h index 8560ebd737..f28b7f9d24 100644 --- a/src/bin/psql/print.h +++ b/src/bin/psql/print.h @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2005, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/print.h,v 1.23 2005/06/09 15:27:27 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/psql/print.h,v 1.24 2005/06/13 06:36:22 neilc Exp $ */ #ifndef PRINT_H #define PRINT_H @@ -42,6 +42,9 @@ typedef struct _printTableOpt * mode */ char *tableAttr; /* attributes for HTML */ int encoding; /* character encoding */ + bool normal_query; /* are we presenting the results of a + * "normal" query, or a slash + * command? */ } printTableOpt; diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c index f9a534f3c2..9e27b8c002 100644 --- a/src/bin/psql/startup.c +++ b/src/bin/psql/startup.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2005, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.115 2005/04/29 14:30:11 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.116 2005/06/13 06:36:22 neilc Exp $ */ #include "postgres_fe.h" @@ -143,6 +143,7 @@ main(int argc, char *argv[]) pset.queryFout = stdout; pset.popt.topt.border = 1; pset.popt.topt.pager = 1; + pset.popt.topt.normal_query = false; pset.popt.default_footer = true; SetVariable(pset.vars, "VERSION", PG_VERSION_STR);