On Thu, 30 Sept 2021 at 10:09, Tom Lane <t...@sss.pgh.pa.us> wrote: > > David Rowley <dgrowle...@gmail.com> writes: > > Maybe we can cache the left and the right type's hash function and use > > the correct one in paraminfo_get_equal_hashops(). > > 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. David