Dimitri Fontaine <dimi...@2ndquadrant.fr> writes: > But in makeOperatorDependencies() we find the following piece of code:
> /* In case we are updating a shell, delete any existing entries */ > deleteDependencyRecordsFor(myself.classId, myself.objectId, false); > false is for bool skipExtensionDeps. > And now at the end of the same function, dependency is recorded back, > except in some case: > oldext = getExtensionOfObject(object->classId, > object->objectId); > if (OidIsValid(oldext)) > { > /* If already a member of this extension, > nothing to do */ > if (oldext == CurrentExtensionObject) > return; > The problem lies in catalog scans and SnapshotNow, I think. [ light goes on... ] We need a CommandCounterIncrement in there. Else, the code that looks to see if the object is already part of the extension does not see the pg_depend row as deleted (yet). Not sure offhand where the cleanest place to put it is. regards, tom lane -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs