Re: PoC/WIP: Extended statistics on expressions

Tomas Vondra <tomas.vondra@enterprisedb.com>

From: Tomas Vondra <tomas.vondra@enterprisedb.com>
To: Noah Misch <noah@leadboat.com>
Cc: Dean Rasheed <dean.a.rasheed@gmail.com>, Justin Pryzby <pryzby@telsasoft.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2021-06-11T11:04:36Z
Lists: pgsql-hackers

On 6/11/21 6:55 AM, Noah Misch wrote:
> On Sun, Jun 06, 2021 at 09:13:17PM +0200, Tomas Vondra wrote:
>>
>> On 6/6/21 7:37 AM, Noah Misch wrote:
>>> On Sat, Mar 27, 2021 at 01:17:14AM +0100, Tomas Vondra wrote:
>>>> OK, pushed after a bit more polishing and testing.
>>>
>>> This added a "transformed" field to CreateStatsStmt, but it didn't mention
>>> that field in src/backend/nodes.  Should those functions handle the field?
>>>
>>
>> Yup, that's a mistake - it should do whatever CREATE INDEX is doing. Not
>> sure if it can result in error/failure or just inefficiency (due to
>> transforming the expressions repeatedly), but it should do whatever
>> CREATE INDEX is doing.
>>
>> Thanks for noticing! Fixed by d57ecebd12.
> 
> Great.  For future reference, this didn't need a catversion bump.  readfuncs.c
> changes need a catversion bump, since the catalogs might contain input for
> each read function.  Other src/backend/nodes functions don't face that.  Also,
> src/backend/nodes generally process fields in the order that they appear in
> the struct.  The order you used in d57ecebd12 is nicer, being more like
> IndexStmt, so I'm pushing an order change to the struct.
> 

OK, makes sense. Thanks!

-- 
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Commits

  1. Disallow extended statistics on system columns

  2. Identify simple column references in extended statistics

  3. Don't print extra parens around expressions in extended stats

  4. Change position of field "transformed" in struct CreateStatsStmt.

  5. Add transformed flag to nodes/*funcs.c for CREATE STATISTICS

  6. Stabilize stats_ext test with other collations

  7. Extended statistics on expressions

  8. Reduce duration of stats_ext regression tests

  9. Allow composite types in catalog bootstrap

  10. Convert Typ from array to list in bootstrap

  11. Disallow CREATE STATISTICS on system catalogs