On 08/14/2017 12:48 AM, Tomas Vondra wrote: > Hi all, > > For PostgreSQL 10 we managed to get the basic CREATE STATISTICS bits in > (grammar, infrastructure, and two simple types of statistics). See: > > https://commitfest.postgresql.org/13/852/ > > This patch presents a rebased version of the remaining parts, adding more > complex statistic types (MCV lists and histograms), and hopefully some > additional improvements. > > The code was rebased on top of current master, and I've made various > improvements to match how the committed parts were reworked. So the basic idea > and shape remains the same, the tweaks are mostly small. > > > regards > > > >
Hello, There is no check of "statistics type/kind" in pg_stats_ext_mcvlist_items and pg_histogram_buckets. select stxname,stxkind from pg_statistic_ext ; stxname | stxkind -----------+--------- stts3 | {h} stts2 | {m} So you can call : SELECT * FROM pg_mcv_list_items((SELECT oid FROM pg_statistic_ext WHERE stxname = 'stts3')); SELECT * FROM pg_histogram_buckets((SELECT oid FROM pg_statistic_ext WHERE stxname = 'stts2'), 0); Both crashes. Unfotunately, I don't have the knowledge to produce a patch :/ Small fix in documentation, patch attached. Thanks! -- Adrien NAYRAT http://dalibo.com - http://dalibo.org
diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml index 3a86577b0a..a4ab48cc81 100644 --- a/doc/src/sgml/catalogs.sgml +++ b/doc/src/sgml/catalogs.sgml @@ -6445,7 +6445,9 @@ SCRAM-SHA-256$<replaceable><iteration count></>:<replaceable><salt>< An array containing codes for the enabled statistic types; valid values are: <literal>d</literal> for n-distinct statistics, - <literal>f</literal> for functional dependency statistics + <literal>f</literal> for functional dependency statistics, + <literal>m</literal> for mcv statistics, + <literal>h</literal> for histogram statistics </entry> </row> diff --git a/doc/src/sgml/planstats.sgml b/doc/src/sgml/planstats.sgml index 8857fc7542..9faa7ee393 100644 --- a/doc/src/sgml/planstats.sgml +++ b/doc/src/sgml/planstats.sgml @@ -653,7 +653,7 @@ Statistics objects: <function>pg_mcv_list_items</> set-returning function. <programlisting> -SELECT * FROM pg_mcv_list_items((SELECT oid FROM pg_statistic_ext WHERE staname = 'stts2')); +SELECT * FROM pg_mcv_list_items((SELECT oid FROM pg_statistic_ext WHERE stxname = 'stts2')); index | values | nulls | frequency -------+---------+-------+----------- 0 | {0,0} | {f,f} | 0.01 @@ -783,7 +783,7 @@ EXPLAIN ANALYZE SELECT * FROM t WHERE a = 1 AND b = 1; using a function called <function>pg_histogram_buckets</>. <programlisting> -test=# SELECT * FROM pg_histogram_buckets((SELECT oid FROM pg_statistic_ext WHERE staname = 'stts3'), 0); +test=# SELECT * FROM pg_histogram_buckets((SELECT oid FROM pg_statistic_ext WHERE stxname = 'stts3'), 0); index | minvals | maxvals | nullsonly | mininclusive | maxinclusive | frequency | density | bucket_volume -------+---------+---------+-----------+--------------+--------------+-----------+----------+--------------- 0 | {0,0} | {3,1} | {f,f} | {t,t} | {f,f} | 0.01 | 1.68 | 0.005952
signature.asc
Description: OpenPGP digital signature