psql: Display stats target of extended statistics
The stats target can be set since commit d06215d03, but wasn't shown by psql. Author: Justin Pryzby <justin@telsasoft.com> Discussion: https://postgr.es/m/20200831050047.GG5450@telsasoft.com Reviewed-by: Georgios Kokolatos <gkokolatos@protonmail.com> Reviewed-by: Tatsuro Yamada <tatsuro.yamada.tf@nttcom.co.jp>
This commit is contained in:
parent
6dcec8fe13
commit
aeb781107a
@ -2683,8 +2683,13 @@ describeOneTableDetails(const char *schemaname,
|
||||
" a.attnum = s.attnum AND NOT attisdropped)) AS columns,\n"
|
||||
" 'd' = any(stxkind) AS ndist_enabled,\n"
|
||||
" 'f' = any(stxkind) AS deps_enabled,\n"
|
||||
" 'm' = any(stxkind) AS mcv_enabled\n"
|
||||
"FROM pg_catalog.pg_statistic_ext stat "
|
||||
" 'm' = any(stxkind) AS mcv_enabled,\n");
|
||||
|
||||
if (pset.sversion >= 130000)
|
||||
appendPQExpBufferStr(&buf, " stxstattarget\n");
|
||||
else
|
||||
appendPQExpBufferStr(&buf, " -1 AS stxstattarget\n");
|
||||
appendPQExpBuffer(&buf, "FROM pg_catalog.pg_statistic_ext stat\n"
|
||||
"WHERE stxrelid = '%s'\n"
|
||||
"ORDER BY 1;",
|
||||
oid);
|
||||
@ -2732,6 +2737,11 @@ describeOneTableDetails(const char *schemaname,
|
||||
PQgetvalue(result, i, 4),
|
||||
PQgetvalue(result, i, 1));
|
||||
|
||||
/* Show the stats target if it's not default */
|
||||
if (strcmp(PQgetvalue(result, i, 8), "-1") != 0)
|
||||
appendPQExpBuffer(&buf, "; STATISTICS %s",
|
||||
PQgetvalue(result, i, 8));
|
||||
|
||||
printTableAddFooter(&cont, buf.data);
|
||||
}
|
||||
}
|
||||
|
@ -102,6 +102,15 @@ WARNING: statistics object "public.ab1_a_b_stats" could not be computed for rel
|
||||
ALTER TABLE ab1 ALTER a SET STATISTICS -1;
|
||||
-- setting statistics target 0 skips the statistics, without printing any message, so check catalog
|
||||
ALTER STATISTICS ab1_a_b_stats SET STATISTICS 0;
|
||||
\d ab1
|
||||
Table "public.ab1"
|
||||
Column | Type | Collation | Nullable | Default
|
||||
--------+---------+-----------+----------+---------
|
||||
a | integer | | |
|
||||
b | integer | | |
|
||||
Statistics objects:
|
||||
"public"."ab1_a_b_stats" (ndistinct, dependencies, mcv) ON a, b FROM ab1; STATISTICS 0
|
||||
|
||||
ANALYZE ab1;
|
||||
SELECT stxname, stxdndistinct, stxddependencies, stxdmcv
|
||||
FROM pg_statistic_ext s, pg_statistic_ext_data d
|
||||
@ -113,6 +122,15 @@ SELECT stxname, stxdndistinct, stxddependencies, stxdmcv
|
||||
(1 row)
|
||||
|
||||
ALTER STATISTICS ab1_a_b_stats SET STATISTICS -1;
|
||||
\d+ ab1
|
||||
Table "public.ab1"
|
||||
Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
|
||||
--------+---------+-----------+----------+---------+---------+--------------+-------------
|
||||
a | integer | | | | plain | |
|
||||
b | integer | | | | plain | |
|
||||
Statistics objects:
|
||||
"public"."ab1_a_b_stats" (ndistinct, dependencies, mcv) ON a, b FROM ab1
|
||||
|
||||
-- partial analyze doesn't build stats either
|
||||
ANALYZE ab1 (a);
|
||||
WARNING: statistics object "public.ab1_a_b_stats" could not be computed for relation "public.ab1"
|
||||
|
@ -72,12 +72,14 @@ ANALYZE ab1;
|
||||
ALTER TABLE ab1 ALTER a SET STATISTICS -1;
|
||||
-- setting statistics target 0 skips the statistics, without printing any message, so check catalog
|
||||
ALTER STATISTICS ab1_a_b_stats SET STATISTICS 0;
|
||||
\d ab1
|
||||
ANALYZE ab1;
|
||||
SELECT stxname, stxdndistinct, stxddependencies, stxdmcv
|
||||
FROM pg_statistic_ext s, pg_statistic_ext_data d
|
||||
WHERE s.stxname = 'ab1_a_b_stats'
|
||||
AND d.stxoid = s.oid;
|
||||
ALTER STATISTICS ab1_a_b_stats SET STATISTICS -1;
|
||||
\d+ ab1
|
||||
-- partial analyze doesn't build stats either
|
||||
ANALYZE ab1 (a);
|
||||
ANALYZE ab1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user