From a45195a191eec367a4f305bb71ab541d17a3b9f9 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Thu, 4 Nov 1999 21:56:02 +0000 Subject: Major psql overhaul by Peter Eisentraut. --- src/bin/psql/print.h | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/bin/psql/print.h (limited to 'src/bin/psql/print.h') diff --git a/src/bin/psql/print.h b/src/bin/psql/print.h new file mode 100644 index 00000000000..d24e41e8530 --- /dev/null +++ b/src/bin/psql/print.h @@ -0,0 +1,66 @@ +#ifndef PRINT_H +#define PRINT_H + +#include +#include + +#include +#include + +enum printFormat { + PRINT_NOTHING = 0, /* to make sure someone initializes this */ + PRINT_UNALIGNED, + PRINT_ALIGNED, + PRINT_HTML, + PRINT_LATEX + /* add your favourite output format here ... */ +}; + + +typedef struct _printTableOpt { + enum printFormat format; /* one of the above */ + bool expanded; /* expanded/vertical output (if supported by output format) */ + bool pager; /* use pager for output (if to stdout and stdout is a tty) */ + bool tuples_only; /* don't output headers, row counts, etc. */ + unsigned short int border; /* Print a border around the table. 0=none, 1=dividing lines, 2=full */ + char *fieldSep; /* field separator for unaligned text mode */ + char *tableAttr; /* attributes for HTML */ +} printTableOpt; + + +/* + * Use this to print just any table in the supported formats. + * - title is just any string (NULL is fine) + * - headers is the column headings (NULL ptr terminated). It must be given and + * complete since the column count is generated from this. + * - cells are the data cells to be printed. Now you know why the correct + * column count is important + * - footers are lines to be printed below the table + * - align is an 'l' or an 'r' for every column, if the output format needs it. + * (You must specify this long enough. Otherwise anything could happen.) +*/ +void +printTable(const char * title, char ** headers, char ** cells, char ** footers, + const char * align, + const printTableOpt * opt, FILE * fout); + + + +typedef struct _printQueryOpt { + printTableOpt topt; /* the options above */ + char * nullPrint; /* how to print null entities */ + bool quote; /* quote all values as much as possible */ + char * title; /* override title */ + char ** footers; /* override footer (default is "(xx rows)") */ +} printQueryOpt; + +/* + * Use this to print query results + * + * It calls the printTable above with all the things set straight. + */ +void +printQuery(PGresult * result, const printQueryOpt * opt, FILE * fout); + + +#endif /* PRINT_H */ -- cgit v1.2.3