I have received several earnest requests over the years for LaTeX 'longtable' output, and I have just implemented it based on a sample LaTeX longtable output file.
I have called it 'latex-longtable' and implemented all the behaviors of ordinary latex mode. One feature is that in latex-longtable mode, 'tableattr' allows control over the column widths --- that seemed to be very important to the users. One requested change I made to the ordinary latex output was to suppress the line under the table title if border = 0 (default is border = 1). Patch and sample output attached. I would like to apply this for PG 9.3. -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml new file mode 100644 index c41593c..932c7ca *** a/doc/src/sgml/ref/psql-ref.sgml --- b/doc/src/sgml/ref/psql-ref.sgml *************** lo_import 152801 *** 1979,1985 **** Sets the output format to one of <literal>unaligned</literal>, <literal>aligned</literal>, <literal>wrapped</literal>, <literal>html</literal>, ! <literal>latex</literal>, or <literal>troff-ms</literal>. Unique abbreviations are allowed. (That would mean one letter is enough.) </para> --- 1979,1986 ---- Sets the output format to one of <literal>unaligned</literal>, <literal>aligned</literal>, <literal>wrapped</literal>, <literal>html</literal>, ! <literal>latex</literal>, <literal>latex-longtable</literal>, ! or <literal>troff-ms</literal>. Unique abbreviations are allowed. (That would mean one letter is enough.) </para> *************** lo_import 152801 *** 2005,2016 **** </para> <para> ! The <literal>html</>, <literal>latex</>, and <literal>troff-ms</> formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! (This might not be ! so dramatic in <acronym>HTML</acronym>, but in <application>LaTeX</application> you must ! have a complete document wrapper.) </para> </listitem> </varlistentry> --- 2006,2019 ---- </para> <para> ! The <literal>html</>, <literal>latex</>, ! <literal>latex-longtable</literal>, and <literal>troff-ms</> formats put out tables that are intended to be included in documents using the respective mark-up language. They are not complete documents! (This might not be ! so dramatic in <acronym>HTML</acronym>, but in ! <application>LaTeX</application> you must have a complete ! document wrapper.) </para> </listitem> </varlistentry> *************** lo_import 152801 *** 2141,2149 **** <term><literal>tableattr</literal> (or <literal>T</literal>)</term> <listitem> <para> ! Specifies attributes to be placed inside the ! <acronym>HTML</acronym> <sgmltag>table</sgmltag> tag in ! <literal>html</> output format. This could for example be <literal>cellpadding</literal> or <literal>bgcolor</literal>. Note that you probably don't want to specify <literal>border</literal> here, as that is already --- 2144,2151 ---- <term><literal>tableattr</literal> (or <literal>T</literal>)</term> <listitem> <para> ! In <acronym>HTML</acronym> format, this specifies attributes ! to be placed inside the <sgmltag>table</sgmltag> tag. This could for example be <literal>cellpadding</literal> or <literal>bgcolor</literal>. Note that you probably don't want to specify <literal>border</literal> here, as that is already *************** lo_import 152801 *** 2152,2157 **** --- 2154,2165 ---- <replaceable class="parameter">value</replaceable> is given, the table attributes are unset. </para> + <para> + In <acronym>latex-longtable</acronym> format, this controls + the proportional width of each column. It is specified as a + space-separated list of values, e.g. <literal>'0.2 0.2 0.6'</>. + Unspecified output columns will use the last specified value. + </para> </listitem> </varlistentry> diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c new file mode 100644 index 59f8b03..740884f *** a/src/bin/psql/command.c --- b/src/bin/psql/command.c *************** _align2string(enum printFormat in) *** 2164,2169 **** --- 2164,2172 ---- case PRINT_LATEX: return "latex"; break; + case PRINT_LATEX_LONGTABLE: + return "latex-longtable"; + break; case PRINT_TROFF_MS: return "troff-ms"; break; *************** do_pset(const char *param, const char *v *** 2197,2202 **** --- 2200,2207 ---- popt->topt.format = PRINT_HTML; else if (pg_strncasecmp("latex", value, vallen) == 0) popt->topt.format = PRINT_LATEX; + else if (pg_strncasecmp("latex-longtable", value, vallen) == 0) + popt->topt.format = PRINT_LATEX_LONGTABLE; else if (pg_strncasecmp("troff-ms", value, vallen) == 0) popt->topt.format = PRINT_TROFF_MS; else diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c new file mode 100644 index 466c255..6839d6c *** a/src/bin/psql/print.c --- b/src/bin/psql/print.c *************** print_latex_text(const printTableContent *** 1656,1662 **** fputc('}', fout); } fputs(" \\\\\n", fout); ! fputs("\\hline\n", fout); } } --- 1656,1663 ---- fputc('}', fout); } fputs(" \\\\\n", fout); ! if (opt_border != 0) ! fputs("\\hline\n", fout); } } *************** print_latex_text(const printTableContent *** 1702,1707 **** --- 1703,1843 ---- static void + print_latex_text_longtable(const printTableContent *cont, FILE *fout) + { + #define LONGTABLE_WHITESPACE " \t\n" + + bool opt_tuples_only = cont->opt->tuples_only; + unsigned short opt_border = cont->opt->border; + unsigned int i; + const char *opt_table_attr = cont->opt->tableAttr; + const char *next_opt_table_attr_char = opt_table_attr; + const char *last_opt_table_attr_char = NULL; + const char *const * ptr; + + if (cancel_pressed) + return; + + if (opt_border > 2) + opt_border = 2; + + if (cont->opt->start_table) + { + /* print title */ + if (!opt_tuples_only && cont->title) + { + fputs("\\begin{center}\n", fout); + latex_escaped_print(cont->title, fout); + fputs("\n\\end{center}\n\n", fout); + } + + /* begin environment and set alignments and borders */ + fputs("\\begin{longtable}{", fout); + + if (opt_border == 2) + fputs("| ", fout); + for (i = 0; i < cont->ncolumns; i++) + { + fputc('p', fout); + fputc(*(cont->aligns + i), fout); + /* Was a proportional width specified? */ + if (opt_table_attr) + { + /* advance over whitespace */ + next_opt_table_attr_char += strspn(next_opt_table_attr_char, + LONGTABLE_WHITESPACE); + /* We have a value? */ + if (next_opt_table_attr_char[0] != '\0') + { + fputc('{', fout); + fwrite(next_opt_table_attr_char, strcspn(next_opt_table_attr_char, + LONGTABLE_WHITESPACE), 1, fout); + last_opt_table_attr_char = next_opt_table_attr_char; + next_opt_table_attr_char += strcspn(next_opt_table_attr_char, + LONGTABLE_WHITESPACE); + fputs("\\textwidth}", fout); + } + /* use previous value */ + else if (last_opt_table_attr_char != NULL) + { + fputc('{', fout); + fwrite(last_opt_table_attr_char, strcspn(last_opt_table_attr_char, + LONGTABLE_WHITESPACE), 1, fout); + fputs("\\textwidth}", fout); + } + } + if (opt_border != 0 && i < cont->ncolumns - 1) + fputs(" | ", fout); + } + if (opt_border == 2) + fputs(" |", fout); + + fputs("}\n", fout); + + if (!opt_tuples_only && opt_border == 2) + fputs("\\hline\n", fout); + + /* print headers */ + if (!opt_tuples_only) + { + fputs("\\toprule\n", fout); + for (i = 0, ptr = cont->headers; i < cont->ncolumns; i++, ptr++) + { + if (i != 0) + fputs(" & ", fout); + fputs("\\small\\textbf{\\textit{", fout); + latex_escaped_print(*ptr, fout); + fputs("}}", fout); + } + fputs(" \\\\\n", fout); + fputs("\\midrule\n\\endfirsthead\n\\toprule\n", fout); + for (i = 0, ptr = cont->headers; i < cont->ncolumns; i++, ptr++) + { + if (i != 0) + fputs(" & ", fout); + fputs("\\small\\textbf{\\textit{", fout); + latex_escaped_print(*ptr, fout); + fputs("}}", fout); + } + fputs(" \\\\\n", fout); + fputs("\\midrule\n\\endhead\n", fout); + if (cont->headers) + { + fputs("\\bottomrule\n", fout); + fprintf(fout, "\\caption[%s. (Continued)]{%s.}\n", + *cont->headers, *cont->headers); + fputs("\\endfoot\n", fout); + fputs("\\bottomrule\n", fout); + fprintf(fout, "\\caption[%s.]{%s.}\n", + *cont->headers, *cont->headers); + fputs("\\endlastfoot\n", fout); + } + if (opt_border != 0) + fputs("\\hline\n", fout); + } + } + + /* print cells */ + for (i = 0, ptr = cont->cells; *ptr; i++, ptr++) + { + if (i != 0 && i % cont->ncolumns != 0) + fputs("\n&\n", fout); + fputs("\\raggedright{", fout); + latex_escaped_print(*ptr, fout); + fputc('}', fout); + if ((i + 1) % cont->ncolumns == 0) + fputs(" \\tabularnewline\n", fout); + if (cancel_pressed) + break; + } + + if (opt_border == 2) + fputs("\\hline\n", fout); + fputs("\\end{longtable}\n", fout); + } + + + static void print_latex_vertical(const printTableContent *cont, FILE *fout) { bool opt_tuples_only = cont->opt->tuples_only; *************** printTable(const printTableContent *cont *** 2394,2399 **** --- 2530,2541 ---- else print_latex_text(cont, fout); break; + case PRINT_LATEX_LONGTABLE: + if (cont->opt->expanded == 1) + print_latex_vertical(cont, fout); + else + print_latex_text_longtable(cont, fout); + break; case PRINT_TROFF_MS: if (cont->opt->expanded == 1) print_troff_ms_vertical(cont, fout); diff --git a/src/bin/psql/print.h b/src/bin/psql/print.h new file mode 100644 index 63ba4a5..9cfa3b6 *** a/src/bin/psql/print.h --- b/src/bin/psql/print.h *************** enum printFormat *** 19,24 **** --- 19,25 ---- PRINT_WRAPPED, PRINT_HTML, PRINT_LATEX, + PRINT_LATEX_LONGTABLE, PRINT_TROFF_MS /* add your favourite output format here ... */ };
Output format is latex-longtable. Border style is 2. Table attribute is "0.5 0.15 0.15". \begin{longtable}{| pl{0.5\textwidth} | pr{0.15\textwidth} | pr{0.15\textwidth} |} \hline \toprule \small\textbf{\textit{Relation Name}} & \small\textbf{\textit{Name Space}} & \small\textbf{\textit{Description}} \\ \midrule \endfirsthead \toprule \small\textbf{\textit{Relation Name}} & \small\textbf{\textit{Name Space}} & \small\textbf{\textit{Description}} \\ \midrule \endhead \bottomrule \caption[Relation Name. (Continued)]{Relation Name.} \endfoot \bottomrule \caption[Relation Name.]{Relation Name.} \endlastfoot \hline \raggedright{pg\_statistic} & \raggedright{11} & \raggedright{10817} \tabularnewline \raggedright{pg\_type} & \raggedright{11} & \raggedright{71} \tabularnewline \raggedright{pg\_database} & \raggedright{11} & \raggedright{1248} \tabularnewline \raggedright{pg\_toast\_2619} & \raggedright{99} & \raggedright{11049} \tabularnewline \raggedright{pg\_toast\_2619\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \raggedright{pg\_authid\_rolname\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_authid\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_attribute\_relid\_attnam\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_attribute\_relid\_attnum\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_toast\_1255} & \raggedright{99} & \raggedright{11046} \tabularnewline \raggedright{pg\_toast\_1255\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \raggedright{pg\_toast\_2604} & \raggedright{99} & \raggedright{11043} \tabularnewline \raggedright{pg\_toast\_2604\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \raggedright{pg\_toast\_2606} & \raggedright{99} & \raggedright{11044} \tabularnewline \raggedright{pg\_toast\_2606\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \raggedright{pg\_constraint\_conname\_nsp\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_am\_name\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_am\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_amop\_fam\_strat\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_amop\_opr\_fam\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_amop\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_amproc\_fam\_proc\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_amproc\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_aggregate\_fnoid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_toast\_2618} & \raggedright{99} & \raggedright{11047} \tabularnewline \raggedright{pg\_toast\_2618\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \raggedright{pg\_toast\_2620} & \raggedright{99} & \raggedright{11050} \tabularnewline \raggedright{pg\_toast\_2620\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \raggedright{pg\_toast\_2609} & \raggedright{99} & \raggedright{11045} \tabularnewline \raggedright{pg\_toast\_2609\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \raggedright{pg\_cast\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_cast\_source\_target\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_toast\_2964} & \raggedright{99} & \raggedright{11052} \tabularnewline \raggedright{pg\_toast\_2964\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \raggedright{pg\_auth\_members\_role\_member\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_auth\_members\_member\_role\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_toast\_2396} & \raggedright{99} & \raggedright{11051} \tabularnewline \raggedright{pg\_toast\_2396\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \raggedright{pg\_toast\_3596} & \raggedright{99} & \raggedright{11048} \tabularnewline \raggedright{pg\_toast\_3596\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \raggedright{pg\_collation\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_collation\_name\_enc\_nsp\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_database\_datname\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_database\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_proc\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_inherits\_parent\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_index\_indrelid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_index\_indexrelid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_operator\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_operator\_oprname\_l\_r\_n\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_opfamily\_am\_name\_nsp\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_opfamily\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_opclass\_am\_name\_nsp\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_opclass\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_language\_name\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_language\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_largeobject\_metadata\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_rewrite\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_rewrite\_rel\_rulename\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_trigger\_tgconstraint\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_trigger\_tgrelid\_tgname\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_event\_trigger\_evtname\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_event\_trigger\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_description\_o\_c\_o\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_enum\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_enum\_typid\_label\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_namespace\_nspname\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_namespace\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_conversion\_default\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_conversion\_name\_nsp\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_conversion\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_depend\_depender\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_depend\_reference\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_tablespace\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_tablespace\_spcname\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_pltemplate\_name\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_shdepend\_depender\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_shdepend\_reference\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_shdescription\_o\_c\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_ts\_config\_cfgname\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_ts\_config\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_ts\_config\_map\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_ts\_dict\_dictname\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_ts\_dict\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_largeobject\_loid\_pn\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_type\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_roles} & \raggedright{11} & \raggedright{11054} \tabularnewline \raggedright{pg\_shadow} & \raggedright{11} & \raggedright{11057} \tabularnewline \raggedright{pg\_type\_typname\_nsp\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_authid} & \raggedright{11} & \raggedright{2842} \tabularnewline \raggedright{pg\_user\_mapping\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_user\_mapping\_user\_server\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_group} & \raggedright{11} & \raggedright{11060} \tabularnewline \raggedright{pg\_user} & \raggedright{11} & \raggedright{11063} \tabularnewline \raggedright{pg\_rules} & \raggedright{11} & \raggedright{11066} \tabularnewline \raggedright{pg\_views} & \raggedright{11} & \raggedright{11070} \tabularnewline \raggedright{pg\_tables} & \raggedright{11} & \raggedright{11074} \tabularnewline \raggedright{pg\_indexes} & \raggedright{11} & \raggedright{11078} \tabularnewline \raggedright{pg\_stats} & \raggedright{11} & \raggedright{11082} \tabularnewline \raggedright{pg\_locks} & \raggedright{11} & \raggedright{11086} \tabularnewline \raggedright{pg\_cursors} & \raggedright{11} & \raggedright{11089} \tabularnewline \raggedright{pg\_settings} & \raggedright{11} & \raggedright{11109} \tabularnewline \raggedright{pg\_available\_extensions} & \raggedright{11} & \raggedright{11092} \tabularnewline \raggedright{pg\_available\_extension\_versions} & \raggedright{11} & \raggedright{11095} \tabularnewline \raggedright{pg\_prepared\_xacts} & \raggedright{11} & \raggedright{11098} \tabularnewline \raggedright{pg\_prepared\_statements} & \raggedright{11} & \raggedright{11102} \tabularnewline \raggedright{pg\_seclabels} & \raggedright{11} & \raggedright{11105} \tabularnewline \raggedright{pg\_timezone\_abbrevs} & \raggedright{11} & \raggedright{11114} \tabularnewline \raggedright{pg\_timezone\_names} & \raggedright{11} & \raggedright{11117} \tabularnewline \raggedright{pg\_stat\_all\_tables} & \raggedright{11} & \raggedright{11120} \tabularnewline \raggedright{pg\_stat\_xact\_all\_tables} & \raggedright{11} & \raggedright{11124} \tabularnewline \raggedright{pg\_ts\_parser\_prsname\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_ts\_template\_tmplname\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_ts\_template\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_extension\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_extension\_name\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_foreign\_data\_wrapper\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_foreign\_data\_wrapper\_name\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_foreign\_server\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_foreign\_server\_name\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_foreign\_table\_relid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_default\_acl\_role\_nsp\_obj\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_default\_acl\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_seclabel\_object\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_shseclabel\_object\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_range\_rngtypid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_stat\_sys\_tables} & \raggedright{11} & \raggedright{11128} \tabularnewline \raggedright{pg\_stat\_xact\_sys\_tables} & \raggedright{11} & \raggedright{11132} \tabularnewline \raggedright{pg\_stat\_user\_tables} & \raggedright{11} & \raggedright{11135} \tabularnewline \raggedright{pg\_stat\_xact\_user\_tables} & \raggedright{11} & \raggedright{11139} \tabularnewline \raggedright{pg\_statio\_all\_tables} & \raggedright{11} & \raggedright{11142} \tabularnewline \raggedright{pg\_statio\_sys\_tables} & \raggedright{11} & \raggedright{11146} \tabularnewline \raggedright{pg\_statio\_user\_tables} & \raggedright{11} & \raggedright{11149} \tabularnewline \raggedright{pg\_stat\_all\_indexes} & \raggedright{11} & \raggedright{11152} \tabularnewline \raggedright{pg\_stat\_sys\_indexes} & \raggedright{11} & \raggedright{11156} \tabularnewline \raggedright{pg\_proc} & \raggedright{11} & \raggedright{81} \tabularnewline \raggedright{pg\_statio\_user\_indexes} & \raggedright{11} & \raggedright{11169} \tabularnewline \raggedright{pg\_statio\_all\_sequences} & \raggedright{11} & \raggedright{11172} \tabularnewline \raggedright{pg\_class} & \raggedright{11} & \raggedright{83} \tabularnewline \raggedright{pg\_statio\_sys\_sequences} & \raggedright{11} & \raggedright{11176} \tabularnewline \raggedright{pg\_statio\_user\_sequences} & \raggedright{11} & \raggedright{11179} \tabularnewline \raggedright{pg\_stat\_activity} & \raggedright{11} & \raggedright{11182} \tabularnewline \raggedright{pg\_stat\_replication} & \raggedright{11} & \raggedright{11185} \tabularnewline \raggedright{pg\_stat\_database} & \raggedright{11} & \raggedright{11188} \tabularnewline \raggedright{pg\_stat\_database\_conflicts} & \raggedright{11} & \raggedright{11191} \tabularnewline \raggedright{pg\_stat\_user\_functions} & \raggedright{11} & \raggedright{11194} \tabularnewline \raggedright{pg\_stat\_xact\_user\_functions} & \raggedright{11} & \raggedright{11198} \tabularnewline \raggedright{pg\_stat\_bgwriter} & \raggedright{11} & \raggedright{11202} \tabularnewline \raggedright{pg\_user\_mappings} & \raggedright{11} & \raggedright{11205} \tabularnewline \raggedright{pg\_user\_mapping} & \raggedright{11} & \raggedright{11036} \tabularnewline \raggedright{pg\_attribute} & \raggedright{11} & \raggedright{75} \tabularnewline \raggedright{pg\_constraint} & \raggedright{11} & \raggedright{10001} \tabularnewline \raggedright{pg\_inherits} & \raggedright{11} & \raggedright{10002} \tabularnewline \raggedright{pg\_operator} & \raggedright{11} & \raggedright{10004} \tabularnewline \raggedright{pg\_opfamily} & \raggedright{11} & \raggedright{10005} \tabularnewline \raggedright{pg\_opclass} & \raggedright{11} & \raggedright{10006} \tabularnewline \raggedright{pg\_am} & \raggedright{11} & \raggedright{10117} \tabularnewline \raggedright{pg\_amop} & \raggedright{11} & \raggedright{10118} \tabularnewline \raggedright{pg\_amproc} & \raggedright{11} & \raggedright{10521} \tabularnewline \raggedright{pg\_language} & \raggedright{11} & \raggedright{10813} \tabularnewline \raggedright{pg\_largeobject\_metadata} & \raggedright{11} & \raggedright{10814} \tabularnewline \raggedright{pg\_aggregate} & \raggedright{11} & \raggedright{10816} \tabularnewline \raggedright{pg\_rewrite} & \raggedright{11} & \raggedright{10818} \tabularnewline \raggedright{pg\_trigger} & \raggedright{11} & \raggedright{10819} \tabularnewline \raggedright{pg\_stat\_user\_indexes} & \raggedright{11} & \raggedright{11159} \tabularnewline \raggedright{pg\_statio\_all\_indexes} & \raggedright{11} & \raggedright{11162} \tabularnewline \raggedright{pg\_statio\_sys\_indexes} & \raggedright{11} & \raggedright{11166} \tabularnewline \raggedright{information\_schema\_catalog\_name} & \raggedright{11480} & \raggedright{11498} \tabularnewline \raggedright{applicable\_roles} & \raggedright{11480} & \raggedright{11504} \tabularnewline \raggedright{administrable\_role\_authorizations} & \raggedright{11480} & \raggedright{11508} \tabularnewline \raggedright{attributes} & \raggedright{11480} & \raggedright{11511} \tabularnewline \raggedright{character\_sets} & \raggedright{11480} & \raggedright{11515} \tabularnewline \raggedright{check\_constraint\_routine\_usage} & \raggedright{11480} & \raggedright{11519} \tabularnewline \raggedright{check\_constraints} & \raggedright{11480} & \raggedright{11523} \tabularnewline \raggedright{pg\_description} & \raggedright{11} & \raggedright{10821} \tabularnewline \raggedright{pg\_cast} & \raggedright{11} & \raggedright{10822} \tabularnewline \raggedright{pg\_enum} & \raggedright{11} & \raggedright{11019} \tabularnewline \raggedright{pg\_namespace} & \raggedright{11} & \raggedright{11020} \tabularnewline \raggedright{pg\_conversion} & \raggedright{11} & \raggedright{11021} \tabularnewline \raggedright{pg\_depend} & \raggedright{11} & \raggedright{11022} \tabularnewline \raggedright{pg\_db\_role\_setting} & \raggedright{11} & \raggedright{11023} \tabularnewline \raggedright{pg\_tablespace} & \raggedright{11} & \raggedright{11024} \tabularnewline \raggedright{pg\_pltemplate} & \raggedright{11} & \raggedright{11025} \tabularnewline \raggedright{pg\_auth\_members} & \raggedright{11} & \raggedright{2843} \tabularnewline \raggedright{pg\_shdepend} & \raggedright{11} & \raggedright{11026} \tabularnewline \raggedright{pg\_shdescription} & \raggedright{11} & \raggedright{11027} \tabularnewline \raggedright{pg\_ts\_config} & \raggedright{11} & \raggedright{11028} \tabularnewline \raggedright{pg\_ts\_config\_map} & \raggedright{11} & \raggedright{11029} \tabularnewline \raggedright{pg\_ts\_dict} & \raggedright{11} & \raggedright{11030} \tabularnewline \raggedright{pg\_ts\_parser} & \raggedright{11} & \raggedright{11031} \tabularnewline \raggedright{pg\_ts\_template} & \raggedright{11} & \raggedright{11032} \tabularnewline \raggedright{pg\_extension} & \raggedright{11} & \raggedright{11033} \tabularnewline \raggedright{pg\_foreign\_data\_wrapper} & \raggedright{11} & \raggedright{11034} \tabularnewline \raggedright{pg\_foreign\_server} & \raggedright{11} & \raggedright{11035} \tabularnewline \raggedright{pg\_foreign\_table} & \raggedright{11} & \raggedright{11037} \tabularnewline \raggedright{pg\_default\_acl} & \raggedright{11} & \raggedright{11038} \tabularnewline \raggedright{pg\_seclabel} & \raggedright{11} & \raggedright{11039} \tabularnewline \raggedright{pg\_shseclabel} & \raggedright{11} & \raggedright{11040} \tabularnewline \raggedright{pg\_collation} & \raggedright{11} & \raggedright{11041} \tabularnewline \raggedright{pg\_range} & \raggedright{11} & \raggedright{11042} \tabularnewline \raggedright{pg\_largeobject} & \raggedright{11} & \raggedright{10815} \tabularnewline \raggedright{collations} & \raggedright{11480} & \raggedright{11527} \tabularnewline \raggedright{collation\_character\_set\_applicability} & \raggedright{11480} & \raggedright{11530} \tabularnewline \raggedright{column\_domain\_usage} & \raggedright{11480} & \raggedright{11533} \tabularnewline \raggedright{column\_privileges} & \raggedright{11480} & \raggedright{11537} \tabularnewline \raggedright{column\_udt\_usage} & \raggedright{11480} & \raggedright{11541} \tabularnewline \raggedright{columns} & \raggedright{11480} & \raggedright{11545} \tabularnewline \raggedright{constraint\_column\_usage} & \raggedright{11480} & \raggedright{11549} \tabularnewline \raggedright{constraint\_table\_usage} & \raggedright{11480} & \raggedright{11553} \tabularnewline \raggedright{domain\_constraints} & \raggedright{11480} & \raggedright{11557} \tabularnewline \raggedright{domain\_udt\_usage} & \raggedright{11480} & \raggedright{11561} \tabularnewline \raggedright{domains} & \raggedright{11480} & \raggedright{11564} \tabularnewline \raggedright{enabled\_roles} & \raggedright{11480} & \raggedright{11568} \tabularnewline \raggedright{key\_column\_usage} & \raggedright{11480} & \raggedright{11571} \tabularnewline \raggedright{parameters} & \raggedright{11480} & \raggedright{11575} \tabularnewline \raggedright{referential\_constraints} & \raggedright{11480} & \raggedright{11579} \tabularnewline \raggedright{role\_column\_grants} & \raggedright{11480} & \raggedright{11583} \tabularnewline \raggedright{routine\_privileges} & \raggedright{11480} & \raggedright{11586} \tabularnewline \raggedright{role\_routine\_grants} & \raggedright{11480} & \raggedright{11590} \tabularnewline \raggedright{routines} & \raggedright{11480} & \raggedright{11593} \tabularnewline \raggedright{schemata} & \raggedright{11480} & \raggedright{11597} \tabularnewline \raggedright{sequences} & \raggedright{11480} & \raggedright{11600} \tabularnewline \raggedright{sql\_implementation\_info} & \raggedright{11480} & \raggedright{11609} \tabularnewline \raggedright{pg\_toast\_11608} & \raggedright{99} & \raggedright{11611} \tabularnewline \raggedright{pg\_toast\_11608\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \raggedright{sql\_languages} & \raggedright{11480} & \raggedright{11614} \tabularnewline \raggedright{pg\_toast\_11613} & \raggedright{99} & \raggedright{11616} \tabularnewline \raggedright{pg\_toast\_11613\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \raggedright{sql\_packages} & \raggedright{11480} & \raggedright{11619} \tabularnewline \raggedright{pg\_toast\_11618} & \raggedright{99} & \raggedright{11621} \tabularnewline \raggedright{pg\_toast\_11618\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \raggedright{sql\_parts} & \raggedright{11480} & \raggedright{11624} \tabularnewline \raggedright{pg\_toast\_11623} & \raggedright{99} & \raggedright{11626} \tabularnewline \raggedright{pg\_toast\_11623\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \raggedright{sql\_sizing} & \raggedright{11480} & \raggedright{11629} \tabularnewline \raggedright{pg\_toast\_11628} & \raggedright{99} & \raggedright{11631} \tabularnewline \raggedright{pg\_toast\_11633} & \raggedright{99} & \raggedright{11636} \tabularnewline \raggedright{table\_constraints} & \raggedright{11480} & \raggedright{11639} \tabularnewline \raggedright{table\_privileges} & \raggedright{11480} & \raggedright{11643} \tabularnewline \raggedright{role\_table\_grants} & \raggedright{11480} & \raggedright{11647} \tabularnewline \raggedright{tables} & \raggedright{11480} & \raggedright{11650} \tabularnewline \raggedright{triggered\_update\_columns} & \raggedright{11480} & \raggedright{11654} \tabularnewline \raggedright{triggers} & \raggedright{11480} & \raggedright{11658} \tabularnewline \raggedright{udt\_privileges} & \raggedright{11480} & \raggedright{11662} \tabularnewline \raggedright{role\_udt\_grants} & \raggedright{11480} & \raggedright{11666} \tabularnewline \raggedright{usage\_privileges} & \raggedright{11480} & \raggedright{11669} \tabularnewline \raggedright{role\_usage\_grants} & \raggedright{11480} & \raggedright{11673} \tabularnewline \raggedright{user\_defined\_types} & \raggedright{11480} & \raggedright{11676} \tabularnewline \raggedright{view\_column\_usage} & \raggedright{11480} & \raggedright{11680} \tabularnewline \raggedright{view\_routine\_usage} & \raggedright{11480} & \raggedright{11684} \tabularnewline \raggedright{view\_table\_usage} & \raggedright{11480} & \raggedright{11688} \tabularnewline \raggedright{views} & \raggedright{11480} & \raggedright{11692} \tabularnewline \raggedright{data\_type\_privileges} & \raggedright{11480} & \raggedright{11696} \tabularnewline \raggedright{element\_types} & \raggedright{11480} & \raggedright{11700} \tabularnewline \raggedright{\_pg\_foreign\_table\_columns} & \raggedright{11480} & \raggedright{11704} \tabularnewline \raggedright{column\_options} & \raggedright{11480} & \raggedright{11708} \tabularnewline \raggedright{\_pg\_foreign\_data\_wrappers} & \raggedright{11480} & \raggedright{11711} \tabularnewline \raggedright{foreign\_data\_wrapper\_options} & \raggedright{11480} & \raggedright{11714} \tabularnewline \raggedright{foreign\_data\_wrappers} & \raggedright{11480} & \raggedright{11717} \tabularnewline \raggedright{\_pg\_foreign\_servers} & \raggedright{11480} & \raggedright{11720} \tabularnewline \raggedright{foreign\_server\_options} & \raggedright{11480} & \raggedright{11723} \tabularnewline \raggedright{foreign\_servers} & \raggedright{11480} & \raggedright{11726} \tabularnewline \raggedright{\_pg\_foreign\_tables} & \raggedright{11480} & \raggedright{11729} \tabularnewline \raggedright{foreign\_table\_options} & \raggedright{11480} & \raggedright{11733} \tabularnewline \raggedright{foreign\_tables} & \raggedright{11480} & \raggedright{11736} \tabularnewline \raggedright{\_pg\_user\_mappings} & \raggedright{11480} & \raggedright{11739} \tabularnewline \raggedright{user\_mapping\_options} & \raggedright{11480} & \raggedright{11742} \tabularnewline \raggedright{user\_mappings} & \raggedright{11480} & \raggedright{11746} \tabularnewline \raggedright{pg\_statistic\_relid\_att\_inh\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_proc\_proname\_args\_nsp\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_class\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_class\_relname\_nsp\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{sql\_sizing\_profiles} & \raggedright{11480} & \raggedright{11634} \tabularnewline \raggedright{pg\_toast\_11633\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \raggedright{pg\_attrdef} & \raggedright{11} & \raggedright{10000} \tabularnewline \raggedright{pg\_attrdef\_adrelid\_adnum\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_attrdef\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_constraint\_conrelid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_constraint\_contypid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_constraint\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_inherits\_relid\_seqno\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_index} & \raggedright{11} & \raggedright{10003} \tabularnewline \raggedright{pg\_trigger\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_event\_trigger} & \raggedright{11} & \raggedright{10820} \tabularnewline \raggedright{pg\_db\_role\_setting\_databaseid\_rol\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_ts\_parser\_oid\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_enum\_typid\_sortorder\_index} & \raggedright{11} & \raggedright{0} \tabularnewline \raggedright{pg\_toast\_11628\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \raggedright{sql\_features} & \raggedright{11480} & \raggedright{11604} \tabularnewline \raggedright{pg\_toast\_11603} & \raggedright{99} & \raggedright{11606} \tabularnewline \raggedright{pg\_toast\_11603\_index} & \raggedright{99} & \raggedright{0} \tabularnewline \hline \end{longtable}
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers