Re: Some problems regarding the self-join elimination code - Mailing list pgsql-hackers

From Andrei Lepikhov
Subject Re: Some problems regarding the self-join elimination code
Date
Msg-id 60391fbd-e341-4a1e-96b7-81ee7ebb35df@gmail.com
Whole thread Raw
In response to Re: Some problems regarding the self-join elimination code  (Alexander Korotkov <aekorotkov@gmail.com>)
List pgsql-hackers
On 4/30/25 13:22, Alexander Korotkov wrote:
>> Thank you, Andrei.  I've put it all together.
>> 0001 Fixes material bugs in ChangeVarNodes_walker() including regression test
>> 0002 Puts back comments which got accidentally removed
>> 0003 Refactors ChangeVarNodesExtended() with custom user-defined callback
> I've revised the remaining refactoring patch.  I've made a callback an
> additional callback, but not the replacement to the walker.  It looks
> better for me now.  Also, I've written some comments and the commit
> message.  Any thoughts?
It seems quite elegant to me.
I have not precisely examined the part with the RestrictInfo replacement 
logic - I guess you just copied it - I reviewed the rest of the patch.

Generally, it looks good, but let me be a little picky.
1. Looking into the callback-related code, I suggest changing the name 
of ChangeVarNodes_callback to something less general and more specific - 
like replace_relid_callback. My variant doesn't seem the best, but 
general-purposed name seems worse.
2. This callback doesn't modify query replacement logic's behaviour- it 
only affects expressions. It makes sense to write about that in the 
description of the ChangeVarNodesExtended.
3. Should the ChangeVarNodesWalkExpression function return the walker's 
returning value?

-- 
regards, Andrei Lepikhov



pgsql-hackers by date:

Previous
From: Daniel Gustafsson
Date:
Subject: Re: [PoC] Federated Authn/z with OAUTHBEARER
Next
From: Tom Lane
Date:
Subject: Re: Accounting for metapages in genericcostestimate()