Clean up psql/describe.c's messy query for extended stats.

Remove unnecessary casts, safely schema-qualify the ones that remain,
lose an unnecessary level of sub-SELECT, reformat for tidiness.
This commit is contained in:
Tom Lane 2017-04-06 13:21:40 -04:00
parent e6c9a5a9bc
commit 20c95f27e7
1 changed files with 12 additions and 9 deletions

View File

@ -2343,14 +2343,17 @@ describeOneTableDetails(const char *schemaname,
if (pset.sversion >= 100000) if (pset.sversion >= 100000)
{ {
printfPQExpBuffer(&buf, printfPQExpBuffer(&buf,
"SELECT oid, stanamespace::regnamespace AS nsp, staname, stakeys,\n" "SELECT oid, "
" (SELECT pg_catalog.string_agg(pg_catalog.quote_ident(attname::text),', ') \n" "stanamespace::pg_catalog.regnamespace AS nsp, "
" FROM ((SELECT pg_catalog.unnest(stakeys) AS attnum) s\n" "staname, stakeys,\n"
" (SELECT pg_catalog.string_agg(pg_catalog.quote_ident(attname),', ')\n"
" FROM pg_catalog.unnest(stakeys) s(attnum)\n"
" JOIN pg_catalog.pg_attribute a ON (starelid = a.attrelid AND\n" " JOIN pg_catalog.pg_attribute a ON (starelid = a.attrelid AND\n"
"a.attnum = s.attnum AND not attisdropped))) AS columns,\n" " a.attnum = s.attnum AND NOT attisdropped)) AS columns,\n"
" (staenabled::char[] @> '{d}'::char[]) AS ndist_enabled,\n" " (staenabled @> '{d}') AS ndist_enabled,\n"
" (staenabled::char[] @> '{f}'::char[]) AS deps_enabled\n" " (staenabled @> '{f}') AS deps_enabled\n"
"FROM pg_catalog.pg_statistic_ext stat WHERE starelid = '%s'\n" "FROM pg_catalog.pg_statistic_ext stat "
"WHERE starelid = '%s'\n"
"ORDER BY 1;", "ORDER BY 1;",
oid); oid);