On 2018-Nov-02, Amit Langote wrote: > Well, performDeletion *does* drop the child, because when the parent is > dropped due to its ON COMMIT DROP action, it's done using: > > /* > * Since this is an automatic drop, rather than one > * directly initiated by the user, we pass the > * PERFORM_DELETION_INTERNAL flag. > */ > performDeletion(&object, > DROP_CASCADE, PERFORM_DELETION_INTERNAL); > > Note the DROP_CASCADE, which means its children will be deleted as part of > this.
I think this code should collect all the OIDs to be dropped, then use a single performMultipleDeletions() at the end, after the heap_truncate call is done. That seems better to me than a relkind check. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services