On 2024-Sep-20, jian he wrote:
> about set_attnotnull.
>
> we can make set_attnotnull look less recursive.
> instead of calling find_inheritance_children,
> let's just one pass, directly call find_all_inheritors
> overall, I think it would be more intuitive.
>
> please check the attached refactored set_attnotnull.
> regress test passed, i only test regress.
Hmm, what do we gain from doing this change? It's longer in number of
lines of code, and it's not clear to me that it is simpler.
> I am also beginning to wonder if ATExecSetNotNull inside can also call
> find_all_inheritors.
The point of descending levels one by one in ATExecSetNotNull is that we
can stop for any child on which a constraint already exists. We don't
need to scan any children thereof, which saves work.
--
Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/
"Use it up, wear it out, make it do, or do without"