pgsql: Fix an oversight in the original implementation of

Started by Tom Lanealmost 18 years ago1 messagescomitters
Jump to latest
#1Tom Lane
tgl@sss.pgh.pa.us

Log Message:
-----------
Fix an oversight in the original implementation of performMultipleDeletions():
the alreadyDeleted list has to be passed down through
deleteDependentObjects(), else objects that are deleted via auto/internal
dependencies don't get reported back up to performMultipleDeletions().
Depending on the visitation order, this could cause the code to try to delete
an already-deleted object, leading to strange errors in DROP OWNED (typically
"cache lookup failed for relation NNNNN" or similar). Per bug #4289.

Patch for back branches only. This code has recently been rewritten in HEAD,
and doesn't have this particular bug anymore.

Tags:
----
REL8_2_STABLE

Modified Files:
--------------
pgsql/src/backend/catalog:
dependency.c (r1.60 -> r1.60.2.1)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/dependency.c?r1=1.60&r2=1.60.2.1)