Thread: Why is n_distinct always -1 for range types?
Test: 1. create a table with a range type column. 2. insert 1000 identical values into that column. 3. analyze 4. n-distinct will still be listed as -1 (unique) for the column. Why? -- Josh Berkus PostgreSQL Experts Inc. http://pgexperts.com
On 09/19/2013 01:47 PM, Josh Berkus wrote: > Test: > > 1. create a table with a range type column. > 2. insert 1000 identical values into that column. > 3. analyze > 4. n-distinct will still be listed as -1 (unique) for the column. > > Why? > Anyone? -- Josh Berkus PostgreSQL Experts Inc. http://pgexperts.com
On Thu, Sep 19, 2013 at 1:47 PM, Josh Berkus <josh@agliodbs.com> wrote: > 4. n-distinct will still be listed as -1 (unique) for the column. > > Why? Because of this: https://github.com/postgres/postgres/blob/master/src/backend/utils/adt/rangetypes_typanalyze.c#L205 We only collect and use histograms of lower and upper bounds for range types, and the fraction of empty ranges. -- Regards, Peter Geoghegan