RE: System indexes are never unique indexes( was RE: [HACKERS] mdnblocksis
От | Hiroshi Inoue |
---|---|
Тема | RE: System indexes are never unique indexes( was RE: [HACKERS] mdnblocksis |
Дата | |
Msg-id | 000201bf2015$9ae0f7a0$2801007e@cadzone.tpf.co.jp обсуждение исходный текст |
Ответ на | Re: System indexes are never unique indexes( was RE: [HACKERS] mdnblocksis (Bruce Momjian <maillist@candle.pha.pa.us>) |
Ответы |
Re: System indexes are never unique indexes( was RE: [HACKERS] mdnblocksis
|
Список | pgsql-hackers |
> > > > Not sure. I don't remember which ones. I can take a look when I add > > > more indexes for 7.0. > > > > Don't remember if really or what, but wasn't there some > > problem with cached system relations, unique indices and > > concurrency? > > > > I don't remember anything about that. > I don't know old PostgreSQL at all. Only one thing I could suppose is the following. Before MVCC it was unnecessary to read dirty(uncommited) tuples to check uniqueness because a table level exclusive lock was acquired automatically. As for user tuples,the consistency was perserved because the lock was held until transaction end. As for system tuples,the consistency could be broken if the lock was a short term lock. After MVCC,dirty(uncommitted) tuples are taken into account to check uniqueness and any lock is no longer needed. AFAIK,there are no other means to check(lock ?) (logically) non-existent rows now(Referencial Integrity would provide the second one). So probably PostgreSQL couldn't guarantee the uniquness of system tuples in many cases. Anyway,I want to change the implementation of mdcreate() to reuse existent files but the uniqueness of table name is preserved by the current implementation narrowly. First of all,I would change pg_type,pg_class. It's OK ? Regards. Hiroshi Inoue Inoue@tpf.co.jp
В списке pgsql-hackers по дате отправления: