diff options
Diffstat (limited to 'src/bin')
-rw-r--r-- | src/bin/psql/command.c | 3 | ||||
-rw-r--r-- | src/bin/psql/describe.c | 150 | ||||
-rw-r--r-- | src/bin/psql/describe.h | 3 | ||||
-rw-r--r-- | src/bin/psql/help.c | 1 | ||||
-rw-r--r-- | src/bin/psql/tab-complete.c | 4 |
5 files changed, 1 insertions, 160 deletions
diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c index c5ebc1c3f41..303e7c3ad8b 100644 --- a/src/bin/psql/command.c +++ b/src/bin/psql/command.c @@ -928,9 +928,6 @@ exec_command_d(PsqlScanState scan_state, bool active_branch, const char *cmd) else success = listExtensions(pattern); break; - case 'X': /* Extended Statistics */ - success = listExtendedStats(pattern, show_verbose); - break; case 'y': /* Event Triggers */ success = listEventTriggers(pattern, show_verbose); break; diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index c2051ee8207..caf97563f48 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -4393,156 +4393,6 @@ listEventTriggers(const char *pattern, bool verbose) } /* - * \dX - * - * Describes extended statistics. - */ -bool -listExtendedStats(const char *pattern, bool verbose) -{ - PQExpBufferData buf; - PGresult *res; - printQueryOpt myopt = pset.popt; - - if (pset.sversion < 100000) - { - char sverbuf[32]; - - pg_log_error("The server (version %s) does not support extended statistics.", - formatPGVersionNumber(pset.sversion, false, - sverbuf, sizeof(sverbuf))); - return true; - } - - initPQExpBuffer(&buf); - printfPQExpBuffer(&buf, - "SELECT \n" - "es.stxnamespace::pg_catalog.regnamespace::text AS \"%s\", \n" - "es.stxname AS \"%s\", \n" - "pg_catalog.format('%%s FROM %%s', \n" - " (SELECT pg_catalog.string_agg(pg_catalog.quote_ident(a.attname),', ') \n" - " FROM pg_catalog.unnest(es.stxkeys) s(attnum) \n" - " JOIN pg_catalog.pg_attribute a \n" - " ON (es.stxrelid = a.attrelid \n" - " AND a.attnum = s.attnum \n" - " AND NOT a.attisdropped)), \n" - "es.stxrelid::regclass) AS \"%s\"", - gettext_noop("Schema"), - gettext_noop("Name"), - gettext_noop("Definition")); - - /* - * Since 12 there are two catalogs - one for the definition, one for the - * data built by ANALYZE. Older releases use a single catalog. Also, 12 - * adds the MCV statistics kind. - */ - if (pset.sversion < 120000) - { - appendPQExpBuffer(&buf, - ",\nCASE WHEN es.stxndistinct IS NOT NULL THEN 'built' \n" - " WHEN 'd' = any(es.stxkind) THEN 'requested' \n" - "END AS \"%s\", \n" - "CASE WHEN es.stxdependencies IS NOT NULL THEN 'built' \n" - " WHEN 'f' = any(es.stxkind) THEN 'requested' \n" - "END AS \"%s\"", - gettext_noop("Ndistinct"), - gettext_noop("Dependencies")); - } - else - { - appendPQExpBuffer(&buf, - ",\nCASE WHEN esd.stxdndistinct IS NOT NULL THEN 'built' \n" - " WHEN 'd' = any(es.stxkind) THEN 'requested' \n" - "END AS \"%s\", \n" - "CASE WHEN esd.stxddependencies IS NOT NULL THEN 'built' \n" - " WHEN 'f' = any(es.stxkind) THEN 'requested' \n" - "END AS \"%s\", \n" - "CASE WHEN esd.stxdmcv IS NOT NULL THEN 'built' \n" - " WHEN 'm' = any(es.stxkind) THEN 'requested' \n" - "END AS \"%s\"", - gettext_noop("Ndistinct"), - gettext_noop("Dependencies"), - gettext_noop("MCV")); - } - - /* In verbose mode, print sizes of the extended statistics objects. */ - if (verbose) - { - if (pset.sversion < 120000) - { - appendPQExpBuffer(&buf, - ",\nCASE WHEN es.stxndistinct IS NOT NULL THEN \n" - " pg_catalog.pg_size_pretty(pg_catalog.length(es.stxndistinct)::bigint) \n" - " WHEN 'd' = any(es.stxkind) THEN '0 bytes' \n" - "END AS \"%s\", \n" - "CASE WHEN es.stxdependencies IS NOT NULL THEN \n" - " pg_catalog.pg_size_pretty(pg_catalog.length(es.stxdependencies)::bigint) \n" - " WHEN 'f' = any(es.stxkind) THEN '0 bytes' \n" - "END AS \"%s\"", - gettext_noop("Ndistinct_size"), - gettext_noop("Dependencies_size")); - } - else - { - appendPQExpBuffer(&buf, - ",\nCASE WHEN esd.stxdndistinct IS NOT NULL THEN \n" - " pg_catalog.pg_size_pretty(pg_catalog.length(esd.stxdndistinct)::bigint) \n" - " WHEN 'd' = any(es.stxkind) THEN '0 bytes' \n" - "END AS \"%s\", \n" - "CASE WHEN esd.stxddependencies IS NOT NULL THEN \n" - " pg_catalog.pg_size_pretty(pg_catalog.length(esd.stxddependencies)::bigint) \n" - " WHEN 'f' = any(es.stxkind) THEN '0 bytes' \n" - "END AS \"%s\", \n" - "CASE WHEN esd.stxdmcv IS NOT NULL THEN \n" - " pg_catalog.pg_size_pretty(pg_catalog.length(esd.stxdmcv)::bigint) \n" - " WHEN 'm' = any(es.stxkind) THEN '0 bytes' \n" - "END AS \"%s\"", - gettext_noop("Ndistinct_size"), - gettext_noop("Dependencies_size"), - gettext_noop("MCV_size")); - } - } - - if (pset.sversion < 120000) - { - appendPQExpBufferStr(&buf, - " \nFROM pg_catalog.pg_statistic_ext es \n" - "INNER JOIN pg_catalog.pg_class c \n" - "ON es.stxrelid = c.oid \n"); - } - else - { - appendPQExpBufferStr(&buf, - " \nFROM pg_catalog.pg_statistic_ext es \n" - "LEFT JOIN pg_catalog.pg_statistic_ext_data esd \n" - "ON es.oid = esd.stxoid \n" - "INNER JOIN pg_catalog.pg_class c \n" - "ON es.stxrelid = c.oid \n"); - } - - processSQLNamePattern(pset.db, &buf, pattern, false, - false, NULL, - "es.stxname", NULL, - NULL); - - appendPQExpBufferStr(&buf, "ORDER BY 1, 2;"); - - res = PSQLexec(buf.data); - termPQExpBuffer(&buf); - if (!res) - return false; - - myopt.nullPrint = NULL; - myopt.title = _("List of extended statistics"); - myopt.translate_header = true; - - printQuery(res, &myopt, pset.queryFout, false, pset.logfile); - - PQclear(res); - return true; -} - -/* * \dC * * Describes casts. diff --git a/src/bin/psql/describe.h b/src/bin/psql/describe.h index 867e57d851e..6044e3a0828 100644 --- a/src/bin/psql/describe.h +++ b/src/bin/psql/describe.h @@ -102,9 +102,6 @@ extern bool listExtensions(const char *pattern); /* \dx+ */ extern bool listExtensionContents(const char *pattern); -/* \dX */ -extern bool listExtendedStats(const char *pattern, bool verbose); - /* \dy */ extern bool listEventTriggers(const char *pattern, bool verbose); diff --git a/src/bin/psql/help.c b/src/bin/psql/help.c index e42bc8c54e0..9ec1c4e810c 100644 --- a/src/bin/psql/help.c +++ b/src/bin/psql/help.c @@ -267,7 +267,6 @@ slashUsage(unsigned short int pager) fprintf(output, _(" \\du[S+] [PATTERN] list roles\n")); fprintf(output, _(" \\dv[S+] [PATTERN] list views\n")); fprintf(output, _(" \\dx[+] [PATTERN] list extensions\n")); - fprintf(output, _(" \\dX[+] [PATTERN] list extended statistics\n")); fprintf(output, _(" \\dy [PATTERN] list event triggers\n")); fprintf(output, _(" \\l[+] [PATTERN] list databases\n")); fprintf(output, _(" \\sf[+] FUNCNAME show a function's definition\n")); diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index 17f72650388..6abcbea9634 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -1505,7 +1505,7 @@ psql_completion(const char *text, int start, int end) "\\dF", "\\dFd", "\\dFp", "\\dFt", "\\dg", "\\di", "\\dl", "\\dL", "\\dm", "\\dn", "\\do", "\\dO", "\\dp", "\\dP", "\\dPi", "\\dPt", "\\drds", "\\dRs", "\\dRp", "\\ds", "\\dS", - "\\dt", "\\dT", "\\dv", "\\du", "\\dx", "\\dX", "\\dy", + "\\dt", "\\dT", "\\dv", "\\du", "\\dx", "\\dy", "\\e", "\\echo", "\\ef", "\\elif", "\\else", "\\encoding", "\\endif", "\\errverbose", "\\ev", "\\f", @@ -3974,8 +3974,6 @@ psql_completion(const char *text, int start, int end) COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_views, NULL); else if (TailMatchesCS("\\dx*")) COMPLETE_WITH_QUERY(Query_for_list_of_extensions); - else if (TailMatchesCS("\\dX*")) - COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_statistics, NULL); else if (TailMatchesCS("\\dm*")) COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_matviews, NULL); else if (TailMatchesCS("\\dE*")) |