> > > 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
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 ?
In response to
pgsql-hackers by date
|Next:||From: Bruce Momjian||Date: 1999-10-27 01:24:57|
|Subject: Re: System indexes are never unique indexes( was RE: [HACKERS] mdnblocksis|
|Previous:||From: Tim Holloway||Date: 1999-10-26 23:33:44|
|Subject: Re: [HACKERS] Logging - pg_options format change?|