mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Per discussion on -hackers, this patch changes psql's "expanded" output
mode to only affect the presentation of normal query results, not the output of psql slash commands. Documentation updated. I also made some unrelated minor psql cleanup. Per suggestion from Stuart Cooper.
This commit is contained in:
@ -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 */
|
||||
|
Reference in New Issue
Block a user