Re: BUG #6172: DROP EXTENSION error without CASCADE

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #6172: DROP EXTENSION error without CASCADE
Дата
Msg-id 3115.1314021160@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: BUG #6172: DROP EXTENSION error without CASCADE  (Dimitri Fontaine <dimitri@2ndQuadrant.fr>)
Список pgsql-bugs
Dimitri Fontaine <dimitri@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

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: BUG #6171: Sockets Issue
Следующее
От: "Kevin Grittner"
Дата:
Сообщение: Re: BUG #6171: Sockets Issue