David Rowley <dgrowle...@gmail.com> writes: > On Thu, 30 Sept 2021 at 10:09, Tom Lane <t...@sss.pgh.pa.us> wrote: >> Um ... it seems to have correctly identified the cache key expressions, >> so why isn't it just doing exprType on those? The jsonb_exists operator >> seems entirely irrelevant here.
> This is down to the caching stuff I added to RestrictInfo to minimise > the amount of work done during the join search. I cached the hash > equal function in RestrictInfo so I didn't have to check what that was > each time we consider a join. The problem is, that I did a bad job of > taking inspiration from check_hashjoinable() which just looks at the > left type. I'm still confused. AFAICS, the top-level operator of the qual clause has exactly nada to do with the cache keys, as this example makes plain. regards, tom lane