On 2019-Oct-09, Michael Paquier wrote: > On Tue, Oct 08, 2019 at 06:25:05PM +0900, Amit Langote wrote: > > I thought about doing something like that, but wasn't sure if > > introducing that much complexity is warranted. > > I looked at that. By experience, I think that it would be wiser to do > first the lookup of all the dependencies you would like to delete, and > then let the internal dependency machinery sort things out after > recursing (remember recent fixes related to ON COMMIT actions). In > order to do that, you actually just need to be careful to not trigger > the deletions as long as "recursing" is true because ATExecDropColumn > calls itself. And it is not actually as bad as I assumed, please see > the attached.
Right, something like that. Needs a comment to explain what we do and how recursing=true correlates with addrs=NULL, I think. Maybe add an assert. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services