Re: BUG #9606: pg_class relhaspkey column not updated on removal of primary key

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #9606: pg_class relhaspkey column not updated on removal of primary key
Дата
Msg-id 25726.1395082770@sss.pgh.pa.us
обсуждение исходный текст
Ответ на BUG #9606: pg_class relhaspkey column not updated on removal of primary key  (jeff@pgexperts.com)
Ответы Re: BUG #9606: pg_class relhaspkey column not updated on removal of primary key  (Jeff Frost <jeff@pgexperts.com>)
Список pgsql-bugs
jeff@pgexperts.com writes:
> [ $SUBJECT ]

This is not a bug; please read the description of pg_class:

relhaspkey    bool    True if the table has (or once had) a primary key

The note at the bottom of the page explains why:

Several of the Boolean flags in pg_class are maintained lazily: they are
guaranteed to be true if that's the correct state, but may not be reset to
false immediately when the condition is no longer true. For example,
relhasindex is set by CREATE INDEX, but it is never cleared by DROP
INDEX. Instead, VACUUM clears relhasindex if it finds the table has no
indexes. This arrangement avoids race conditions and improves concurrency.

            regards, tom lane

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

Предыдущее
От: jeff@pgexperts.com
Дата:
Сообщение: BUG #9606: pg_class relhaspkey column not updated on removal of primary key
Следующее
От: Jeff Frost
Дата:
Сообщение: Re: BUG #9606: pg_class relhaspkey column not updated on removal of primary key