Thread: Range types do not display in pg_stats
create table tstztest( trange tstzrange ); postgres=# insert into tstztest select tstzrange(t, t + interval '1 month') from generate_series('2012-01-01'::timestamptz,'2018-01-01','1 month') as gs(t); INSERT 0 73 postgres=# analyze tstztest; ANALYZE postgres=# select * from pg_stats where tablename = 'tstztest';schemaname | tablename | attname | inherited | null_frac |avg_width | n_distinct | most_common_vals | most_common_freqs | histogram_bounds | correlation | most_common_elems | most_common_elem_freqs | elem_count_histogram ------------+-----------+---------+-----------+-----------+-----------+------------+------------------+-------------------+------------------ +-------------+-------------------+------------------------+----------------------public | tstztest | trange | f | 0 | 22 | -1 | | | | | | | Now, there actually *is* a histogram for the column, which you can find via pg_statistic. But is shows up as NULL in pg_stats view. If this is a known issue, we ought to at least add it to the docs. -- Josh Berkus PostgreSQL Experts Inc. http://pgexperts.com
On Thu, Sep 19, 2013 at 4:54 PM, Josh Berkus <josh@agliodbs.com> wrote: > > create table tstztest( trange tstzrange ); > > postgres=# insert into tstztest select tstzrange(t, t + interval '1 month') > from generate_series('2012-01-01'::timestamptz,'2018-01-01','1 month') > as gs(t); > INSERT 0 73 > postgres=# analyze tstztest; > ANALYZE > postgres=# select * from pg_stats where tablename = 'tstztest'; > schemaname | tablename | attname | inherited | null_frac | avg_width | > n_distinct | most_common_vals | most_common_freqs | histogram_bounds > | correlation | most_common_elems | most_common_elem_freqs | > elem_count_histogram > ------------+-----------+---------+-----------+-----------+-----------+------------+------------------+-------------------+------------------ > +-------------+-------------------+------------------------+---------------------- > public | tstztest | trange | f | 0 | 22 | > -1 | | | > | | | | > > Now, there actually *is* a histogram for the column, which you can find > via pg_statistic. But is shows up as NULL in pg_stats view. > > If this is a known issue, we ought to at least add it to the docs. It probably has to do with the CASE stakind stuff in the definition of the pg_stats view. Try \d+ pg_stats to see what I mean. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
On 09/19/2013 02:55 PM, Mike Blackwell wrote: > Interesting. Is this a 9.3 issue? I ran the above against my 9.2.4 server > and got no rows in pg_stats. Did I miss something? Yeah, that was on 9.3. I think the issue on 9.2 is the same, it just expresses differently. -- Josh Berkus PostgreSQL Experts Inc. http://pgexperts.com
Robert, > It probably has to do with the CASE stakind stuff in the definition of > the pg_stats view. Try \d+ pg_stats to see what I mean. Ok, if this is not a known bug, I'll see if I can work up a fix. No promises, given the hairyness ... -- Josh Berkus PostgreSQL Experts Inc. http://pgexperts.com