Thread
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix missed checks for hashability of container-type equality.
- 06e94eccfd91 19 (unreleased) cited
-
Show hashed SAOP decision in EXPLAIN
Andrei Lepikhov <lepihov@gmail.com> — 2026-06-09T09:51:07Z
Hi, This is a follow-up to [1]. EXPLAIN already shows when an operation relies on a hash table — hashed SubPlan, HashAggregate, HashSetOp — which helps users understand a plan's performance. A hashed ScalarArrayOpExpr is the exception: it deparses exactly like the linear form, so EXPLAIN gives no indication of which strategy the executor will use. That is worth surfacing. The array can be long and the comparison runs as a scan filter, so whether the executor builds a hash table or falls back to a linear search has a real cost. The attached patch marks the hashed case. Making the decision visible also makes it testable, so the patch adds regression tests that fill the test gap left by commit 06e94eccfd9, which taught the planner to re-check hashability for container-type equality but added no tests of its own. [1] https://www.postgresql.org/message-id/570738.1780934420%40sss.pgh.pa.us -- regards, Andrei Lepikhov, pgEdge
-
Re: Show hashed SAOP decision in EXPLAIN
Nishant Sharma <nishant.sharma@enterprisedb.com> — 2026-06-19T13:28:09Z
Thanks for the v0 patch set! The topic is new to me. I thought I would review it to see if I could learn something. Code changes are small, simple and clean. Here are my comments: 1. Should we add a test case that confirms the comment: "this never appears in deparsed views, rules, or other stored expressions". Also, what about multirange tests? 2. I see that the word "hashed" is added for all valid hashfuncid in the plan, which implies that hash is used instead of array for those cases. If this is being done, why not explicitly include "linear" or "array" for non-valid hashfuncid instead of keeping "" empty, given that the goal is to provide more information? I saw too many differences in existing tests and also in the upgrade test in make check world. So, I think that's not a good idea. 3. Ran make check world, it looked clean for the v0 patch. Thanks, Nishant Sharma, EDB, Pune. https://www.enterprisedb.com/
-
Re: Show hashed SAOP decision in EXPLAIN
Andrei Lepikhov <lepihov@gmail.com> — 2026-06-22T09:14:24Z
On 19/06/2026 15:28, Nishant Sharma wrote: > Thanks for the v0 patch set! > > The topic is new to me. I thought I would review it to see if I could learn > something. > > Code changes are small, simple and clean. Thanks for your interest! > > Here are my comments: > 1. Should we add a test case that confirms the comment: "this never appears in > deparsed views, rules, or other stored expressions". Also, what about multirange > tests? Ok, done. > 2. I see that the word "hashed" is added for all valid hashfuncid in the plan, > which implies that hash is used instead of array for those cases. If this is > being done, why not explicitly include "linear" or "array" for non-valid > hashfuncid instead of keeping "" empty, given that the goal is to provide more > information? I saw too many differences in existing tests and also in the > upgrade test in make check world. So, I think that's not a good idea. Here, we just follow the hashed SubPlan approach. I think we don't need anything else here. -- regards, Andrei Lepikhov, pgEdge
-
Re: Show hashed SAOP decision in EXPLAIN
Nishant Sharma <nishant.sharma@enterprisedb.com> — 2026-06-25T10:37:44Z
v1 looks good based on my understanding. What about back-porting? If this is for PG20, I checked the v1 patch up to PG15. From MASTER to PG16 make check world passed, but it is failing for PG15. Thanks, Nishant Sharma. EDB, Pune. https://www.enterprisedb.com/
-
Re: Show hashed SAOP decision in EXPLAIN
Andrei Lepikhov <lepihov@gmail.com> — 2026-06-25T10:41:36Z
On 25/06/2026 12:37, Nishant Sharma wrote: > v1 looks good based on my understanding. > > What about back-porting? If this is for PG20, I checked the v1 patch up to PG15. > > From MASTER to PG16 make check world passed, but it is failing for PG15. This is a feature, not a bugfix. Such stuff isn't backpatched. At least, there is some risk of breaking someone's regression tests. It is not good for a stable branch. -- regards, Andrei Lepikhov, pgEdge
-
Re: Show hashed SAOP decision in EXPLAIN
Nishant Sharma <nishant.sharma@enterprisedb.com> — 2026-06-25T11:31:36Z
Got it. Thank you! Thanks, Nishant Sharma, EDB, Pune. https://www.enterprisedb.com/ On Thu, Jun 25, 2026 at 4:11 PM Andrei Lepikhov <lepihov@gmail.com> wrote: > On 25/06/2026 12:37, Nishant Sharma wrote: > > v1 looks good based on my understanding. > > > > What about back-porting? If this is for PG20, I checked the v1 patch up > to PG15. > > > > From MASTER to PG16 make check world passed, but it is failing for PG15. > > This is a feature, not a bugfix. Such stuff isn't backpatched. At least, > there > is some risk of breaking someone's regression tests. It is not good for a > stable > branch. > > -- > regards, Andrei Lepikhov, > pgEdge >