Improve psql \d+ to show TOAST reloptions too. Per complaint from
ITAGAKI Takahiro.
This commit is contained in:
parent
20a43b16b4
commit
787020fd3d
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 2000-2009, PostgreSQL Global Development Group
|
* Copyright (c) 2000-2009, PostgreSQL Global Development Group
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.198 2009/01/22 20:16:08 tgl Exp $
|
* $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.199 2009/02/11 19:12:04 alvherre Exp $
|
||||||
*/
|
*/
|
||||||
#include "postgres_fe.h"
|
#include "postgres_fe.h"
|
||||||
|
|
||||||
@ -909,16 +909,51 @@ describeOneTableDetails(const char *schemaname,
|
|||||||
initPQExpBuffer(&tmpbuf);
|
initPQExpBuffer(&tmpbuf);
|
||||||
|
|
||||||
/* Get general table info */
|
/* Get general table info */
|
||||||
|
if (pset.sversion >= 80400)
|
||||||
|
{
|
||||||
printfPQExpBuffer(&buf,
|
printfPQExpBuffer(&buf,
|
||||||
"SELECT relchecks, relkind, relhasindex, relhasrules, %s, "
|
"SELECT c.relchecks, c.relkind, c.relhasindex, c.relhasrules, "
|
||||||
"relhasoids"
|
"c.relhastriggers, c.relhasoids, "
|
||||||
"%s%s\n"
|
"%s, c.reltablespace\n"
|
||||||
"FROM pg_catalog.pg_class WHERE oid = '%s'",
|
"FROM pg_catalog.pg_class c\n "
|
||||||
(pset.sversion >= 80400 ? "relhastriggers" : "reltriggers <> 0"),
|
"LEFT JOIN pg_catalog.pg_class tc ON (c.reltoastrelid = tc.oid)\n"
|
||||||
(pset.sversion >= 80200 && verbose ?
|
"WHERE c.oid = '%s'\n",
|
||||||
", pg_catalog.array_to_string(reloptions, E', ')" : ",''"),
|
(verbose ?
|
||||||
(pset.sversion >= 80000 ? ", reltablespace" : ""),
|
"pg_catalog.array_to_string(c.reloptions || "
|
||||||
|
"array(select 'toast.' || x from pg_catalog.unnest(tc.reloptions) x), ', ')\n"
|
||||||
|
: "''"),
|
||||||
oid);
|
oid);
|
||||||
|
}
|
||||||
|
else if (pset.sversion >= 80200)
|
||||||
|
{
|
||||||
|
printfPQExpBuffer(&buf,
|
||||||
|
"SELECT relchecks, relkind, relhasindex, relhasrules, "
|
||||||
|
"reltriggers <> 0, relhasoids, "
|
||||||
|
"%s, reltablespace\n"
|
||||||
|
"FROM pg_catalog.pg_class WHERE oid = '%s'",
|
||||||
|
(verbose ?
|
||||||
|
"pg_catalog.array_to_string(reloptions, E', ')" : ",''"),
|
||||||
|
oid);
|
||||||
|
}
|
||||||
|
else if (pset.sversion >= 80000)
|
||||||
|
{
|
||||||
|
printfPQExpBuffer(&buf,
|
||||||
|
"SELECT relchecks, relkind, relhasindex, relhasrules, "
|
||||||
|
"reltriggers <> 0, relhasoids, "
|
||||||
|
"'', reltablespace\n"
|
||||||
|
"FROM pg_catalog.pg_class WHERE oid = '%s'",
|
||||||
|
oid);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printfPQExpBuffer(&buf,
|
||||||
|
"SELECT relchecks, relkind, relhasindex, relhasrules, "
|
||||||
|
"reltriggers <> 0, relhasoids, "
|
||||||
|
"'', ''\n"
|
||||||
|
"FROM pg_catalog.pg_class WHERE oid = '%s'",
|
||||||
|
oid);
|
||||||
|
}
|
||||||
|
|
||||||
res = PSQLexec(buf.data, false);
|
res = PSQLexec(buf.data, false);
|
||||||
if (!res)
|
if (!res)
|
||||||
goto error_return;
|
goto error_return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user