Re: Indexes on expressions with multiple columns and operators
Frédéric Yhuel <frederic.yhuel@dalibo.com>
From: Frédéric Yhuel <frederic.yhuel@dalibo.com>
To: Andrei Lepikhov <lepihov@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>
Cc: "pgsql-performance@lists.postgresql.org"
<pgsql-performance@lists.postgresql.org>,
Jehan-Guillaume de Rorthais <jgdr@dalibo.com>,
Christophe Courtois <christophe.courtois@dalibo.com>,
Laurenz Albe <laurenz.albe@cybertec.at>
Date: 2025-09-22T16:09:05Z
Lists: pgsql-performance
On 9/22/25 15:57, Andrei Lepikhov wrote: > On 22/9/2025 15:37, Frédéric Yhuel wrote: >> I wonder if this is an argument in favour of decoupling the sample >> size and the precision of the statistics. Here, we basically want the >> sample size to be as big as the table in order to include the few >> (NULL, WARNING) values. > I also have seen how repeating ANALYZE on the same database drastically > changes query plans ;(. > It seems to me that with massive samples, many of the ANALYZE algorithms > should be rewritten. In principle, statistical hooks exist. So, it is > possible to invent an independent table analyser which will scan the > whole table to get precise statistics. > Interesting! I wonder how difficult it would be. However, in this specific case, I realised that it wouldn't solve the issue of ANALYZE being triggered when there are zero rows with (ackid, crit) = (NULL, WARNING). Partitioning would still work in this case, though, because ackid's null_frac would be zero for the partition containing the 'WARNING' value. I wonder if we could devise another kind of extended statistic that would provide these "partitioned statistics" without actually partitioning.
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Re-allow using statistics for bool-valued functions in WHERE.
- 1eccb9315070 19 (unreleased) landed
-
Build out the planner support function infrastructure.
- a391ff3c3d41 12.0 cited
-
Allow planner to use expression-index stats for function calls in WHERE.
- 39df0f150ca6 9.6.0 cited