Alvaro Herrera <[EMAIL PROTECTED]> writes: > I'm late to this thread, but maybe we can make the process of storing > the new data in pg_class take a lock using LockObject() or something > like that to serialize the access to the pg_class row.
I'm inclined to think that the right solution is to fix UpdateStats and setRelhasindex so that they don't use simple_heap_update, but call heap_update directly and cope with HeapTupleUpdated (by looping around and trying the update from scratch). Another thing that's annoying here is that we update the pg_class row twice in some cases --- really we ought to try to get this down to one update. (So we'd only need one instance of the looping logic not two.) I'm not entirely clear on the cleanest way to do that, but am currently thinking that btbuild and friends ought to pass back the tuple counts they obtained, rather than writing them into the catalogs for themselves. IndexCloseAndUpdateStats ought to go away --- the index AM never had any business doing that for itself. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org