On Tue, Jan 03, 2006 at 12:08:05PM -0500, Bruce Momjian wrote: > Tom Lane wrote: > > "Jim C. Nasby" <[EMAIL PROTECTED]> writes: > > > On Tue, Jan 03, 2006 at 11:26:51AM -0500, Tom Lane wrote: > > >> Such an ALTER would certainly require exclusive lock on the table, > > >> so I'm not sure that I see much use-case for doing it like that. > > >> You'd want to do the ALTER and commit so as not to lock other people > > >> out of the table entirely while doing the bulk data-pushing. > > > > > Maybe this just isn't clear, but would EXCLUSIVE block writes from all > > > other sessions then? > > > > I don't think it should (which implies that EXCLUSIVE is a bad name). > > Agreed, EXCLUSIVE was used to mean an _exclusive_ writer. The new words > I proposed were PRESERVE or STABLE.
This seems to seriously limit the usefulness, though. You'll only want to use EXCLUSIVE/PRESERVE/STABLE when you've got a specific set of DML to do, that you know you can recover from. But if at the same time some other part of the system could be doing what it thinks will be ACID DML to that same table, you're now in trouble. At a minimum that would need to be clearly spelled out in the docs. I think it also makes a very strong use-case for exposing table-level shared locks as well, since that would at least allow other backends to continue reading from the table. Idealistically, if EXCLUSIVE/PRESERVE/STABLE does it's thing by only appending new pages, it would be nice if other backends could continue performing updates at the same time, assuming there's free space available elsewhere within the table (and that you'd be able to recover those logged changes regardless of the non-logged operations). But that's a pretty lofty goal... -- Jim C. Nasby, Sr. Engineering Consultant [EMAIL PROTECTED] Pervasive Software http://pervasive.com work: 512-231-6117 vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461 ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org