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"
|
" a.attnum = s.attnum AND NOT attisdropped)) AS columns,\n"
|
||||||
" 'd' = any(stxkind) AS ndist_enabled,\n"
|
" 'd' = any(stxkind) AS ndist_enabled,\n"
|
||||||
" 'f' = any(stxkind) AS deps_enabled,\n"
|
" 'f' = any(stxkind) AS deps_enabled,\n"
|
||||||
" 'm' = any(stxkind) AS mcv_enabled\n"
|
" 'm' = any(stxkind) AS mcv_enabled,\n");
|
||||||
"FROM pg_catalog.pg_statistic_ext stat "
|
|
||||||
|
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"
|
"WHERE stxrelid = '%s'\n"
|
||||||
"ORDER BY 1;",
|
"ORDER BY 1;",
|
||||||
oid);
|
oid);
|
||||||
@ -2732,6 +2737,11 @@ describeOneTableDetails(const char *schemaname,
|
|||||||
PQgetvalue(result, i, 4),
|
PQgetvalue(result, i, 4),
|
||||||
PQgetvalue(result, i, 1));
|
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);
|
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;
|
ALTER TABLE ab1 ALTER a SET STATISTICS -1;
|
||||||
-- setting statistics target 0 skips the statistics, without printing any message, so check catalog
|
-- setting statistics target 0 skips the statistics, without printing any message, so check catalog
|
||||||
ALTER STATISTICS ab1_a_b_stats SET STATISTICS 0;
|
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;
|
ANALYZE ab1;
|
||||||
SELECT stxname, stxdndistinct, stxddependencies, stxdmcv
|
SELECT stxname, stxdndistinct, stxddependencies, stxdmcv
|
||||||
FROM pg_statistic_ext s, pg_statistic_ext_data d
|
FROM pg_statistic_ext s, pg_statistic_ext_data d
|
||||||
@ -113,6 +122,15 @@ SELECT stxname, stxdndistinct, stxddependencies, stxdmcv
|
|||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
ALTER STATISTICS ab1_a_b_stats SET STATISTICS -1;
|
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
|
-- partial analyze doesn't build stats either
|
||||||
ANALYZE ab1 (a);
|
ANALYZE ab1 (a);
|
||||||
WARNING: statistics object "public.ab1_a_b_stats" could not be computed for relation "public.ab1"
|
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;
|
ALTER TABLE ab1 ALTER a SET STATISTICS -1;
|
||||||
-- setting statistics target 0 skips the statistics, without printing any message, so check catalog
|
-- setting statistics target 0 skips the statistics, without printing any message, so check catalog
|
||||||
ALTER STATISTICS ab1_a_b_stats SET STATISTICS 0;
|
ALTER STATISTICS ab1_a_b_stats SET STATISTICS 0;
|
||||||
|
\d ab1
|
||||||
ANALYZE ab1;
|
ANALYZE ab1;
|
||||||
SELECT stxname, stxdndistinct, stxddependencies, stxdmcv
|
SELECT stxname, stxdndistinct, stxddependencies, stxdmcv
|
||||||
FROM pg_statistic_ext s, pg_statistic_ext_data d
|
FROM pg_statistic_ext s, pg_statistic_ext_data d
|
||||||
WHERE s.stxname = 'ab1_a_b_stats'
|
WHERE s.stxname = 'ab1_a_b_stats'
|
||||||
AND d.stxoid = s.oid;
|
AND d.stxoid = s.oid;
|
||||||
ALTER STATISTICS ab1_a_b_stats SET STATISTICS -1;
|
ALTER STATISTICS ab1_a_b_stats SET STATISTICS -1;
|
||||||
|
\d+ ab1
|
||||||
-- partial analyze doesn't build stats either
|
-- partial analyze doesn't build stats either
|
||||||
ANALYZE ab1 (a);
|
ANALYZE ab1 (a);
|
||||||
ANALYZE ab1;
|
ANALYZE ab1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user