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);