diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index cd807230272bb3a273896d46d8ceb5c05f9fe3b2..a4fe9d997ea6eae9d2810b1fb0440ea40b054d21 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2008, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.171 2008/05/12 22:59:58 alvherre Exp $ + * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.172 2008/05/13 00:14:11 alvherre Exp $ */ #include "postgres_fe.h" @@ -865,6 +865,45 @@ describeOneTableDetails(const char *schemaname, goto error_return; numrows = PQntuples(res); + /* Make title */ + switch (tableinfo.relkind) + { + case 'r': + printfPQExpBuffer(&title, _("Table \"%s.%s\""), + schemaname, relationname); + break; + case 'v': + printfPQExpBuffer(&title, _("View \"%s.%s\""), + schemaname, relationname); + break; + case 'S': + printfPQExpBuffer(&title, _("Sequence \"%s.%s\""), + schemaname, relationname); + break; + case 'i': + printfPQExpBuffer(&title, _("Index \"%s.%s\""), + schemaname, relationname); + break; + case 's': + /* not used as of 8.2, but keep it for backwards compatibility */ + printfPQExpBuffer(&title, _("Special relation \"%s.%s\""), + schemaname, relationname); + break; + case 't': + printfPQExpBuffer(&title, _("TOAST table \"%s.%s\""), + schemaname, relationname); + break; + case 'c': + printfPQExpBuffer(&title, _("Composite type \"%s.%s\""), + schemaname, relationname); + break; + default: + /* untranslated unknown relkind */ + printfPQExpBuffer(&title, "?%c? \"%s.%s\"", + tableinfo.relkind, schemaname, relationname); + break; + } + /* Set the number of columns, and their names */ cols = 2; headers[0] = "Column"; @@ -937,45 +976,6 @@ describeOneTableDetails(const char *schemaname, printTableAddCell(&cont, PQgetvalue(res, i, 5), false); } - /* Make title */ - switch (tableinfo.relkind) - { - case 'r': - printfPQExpBuffer(&title, _("Table \"%s.%s\""), - schemaname, relationname); - break; - case 'v': - printfPQExpBuffer(&title, _("View \"%s.%s\""), - schemaname, relationname); - break; - case 'S': - printfPQExpBuffer(&title, _("Sequence \"%s.%s\""), - schemaname, relationname); - break; - case 'i': - printfPQExpBuffer(&title, _("Index \"%s.%s\""), - schemaname, relationname); - break; - case 's': - /* not used as of 8.2, but keep it for backwards compatibility */ - printfPQExpBuffer(&title, _("Special relation \"%s.%s\""), - schemaname, relationname); - break; - case 't': - printfPQExpBuffer(&title, _("TOAST table \"%s.%s\""), - schemaname, relationname); - break; - case 'c': - printfPQExpBuffer(&title, _("Composite type \"%s.%s\""), - schemaname, relationname); - break; - default: - /* untranslated unknown relkind */ - printfPQExpBuffer(&title, "?%c? \"%s.%s\"", - tableinfo.relkind, schemaname, relationname); - break; - } - /* Make footers */ if (tableinfo.relkind == 'i') { diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c index 2dcf964a8a95abc87927acb7e0d9caa764350fd3..f27c1e1f4887135df589aa526f514badf2d05cb6 100644 --- a/src/bin/psql/print.c +++ b/src/bin/psql/print.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2008, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.100 2008/05/12 22:59:58 alvherre Exp $ + * $PostgreSQL: pgsql/src/bin/psql/print.c,v 1.101 2008/05/13 00:14:11 alvherre Exp $ */ #include "postgres_fe.h" @@ -1918,8 +1918,10 @@ ClosePager(FILE *pagerpipe) /* * Initialise a table contents struct. + * Must be called before any other printTable method is used. * - * Must be called before any other printTable method is used. + * The title is not duplicated; the caller must ensure that the buffer + * is available for the lifetime of the printTableContent struct. * * If you call this, you must call printTableCleanup once you're done with the * table.