Re: extended stats on partitioned tables
Tomas Vondra <tomas.vondra@enterprisedb.com>
From: Tomas Vondra <tomas.vondra@enterprisedb.com>
To: Zhihong Yu <zyu@yugabyte.com>, Justin Pryzby <pryzby@telsasoft.com>
Cc: Jaime Casanova <jcasanov@systemguards.com.ec>,
PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2021-12-12T04:17:10Z
Lists: pgsql-hackers
Attachments
- 0004-Refactor-parent-ACL-check-20211212.patch (text/x-patch) patch 0004
- 0003-Add-stxdinherit-flag-to-pg_statistic_ext_da-20211212.patch (text/x-patch) patch 0003
- 0002-Build-inherited-extended-stats-on-partition-20211212.patch (text/x-patch) patch 0002
- 0001-Ignore-extended-statistics-for-inheritance--20211212.patch (text/x-patch) patch 0001
Hi, Attached is a rebased and cleaned-up version of these patches, with more comments, refactorings etc. Justin and Zhihong, can you take a look? 0001 - Ignore extended statistics for inheritance trees 0002 - Build inherited extended stats on partitioned tables Those are mostly just Justin's patches, with more detailed comments and updated commit message. I've considered moving the rel->inh check to statext_clauselist_selectivity, and then removing the check from dependencies and MCV. But I decided no to do that, because someone might be calling those functions directly (even if that's very unlikely). The one thing bugging me a bit is that the regression test checks only a GROUP BY query. It'd be nice to add queries testing MCV/dependencies too, but that seems tricky because most queries will use per-partitions stats. 0003 - Add stxdinherit flag to pg_statistic_ext_data This is the patch for master, allowing to build stats for both inherits flag values. It adds the flag to pg_stats_ext_exprs view to, reworked how we deal with iterating both flags etc. I've adopted most of the Justin's fixup patches, except that in plancat.c I've refactored how we load the stats to process keys/expressions just once. It has the same issue with regression test using just a GROUP BY query, but if we add a test to 0001/0002, that'll fix this too. 0004 - Refactor parent ACL check Not sure about this - I doubt saving 30 rows in an 8kB file is really worth it. Maybe it is, but then maybe we should try cleaning up the other ACL checks in this file too? Seems mostly orthogonal to this thread, though. regards -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
Add stxdinherit flag to pg_statistic_ext_data
- 269b532aef55 15.0 landed
-
Build inherited extended stats on partitioned tables
- d6817032d26b 13.6 landed
- 20b9fa308ebf 15.0 landed
- ea212bd95fd2 14.2 landed
- 9d1bcf5dc11a 12.10 landed
- 491182e52909 11.15 landed
- 9211c2e38f09 10.20 landed
-
Ignore extended statistics for inheritance trees
- 76569ad6f423 12.10 landed
- ff0e7c7e8401 10.20 landed
- b3cac25f4d50 11.15 landed
- acfde7c5837d 13.6 landed
- 2cc007fd0359 14.2 landed
- 36c4bc6e725f 15.0 landed
-
Don't build extended statistics on inheritance trees
- 859b3003de87 10.10 cited
-
Tighten up relation kind checks for extended statistics
- 8c5cdb7f4f6e 10.0 cited
-
Avoid assuming that statistics for a parent relation reflect the properties of
- 427c6b5b9849 8.2.0 cited