Re: bug with dropping tables and transactions.
От | Alfred Perlstein |
---|---|
Тема | Re: bug with dropping tables and transactions. |
Дата | |
Msg-id | 20000912013222.H12231@fw.wintelcom.net обсуждение исходный текст |
Ответ на | RE: bug with dropping tables and transactions. ("Hiroshi Inoue" <Inoue@tpf.co.jp>) |
Список | pgsql-hackers |
* Hiroshi Inoue <Inoue@tpf.co.jp> [000912 00:45] wrote: > > -----Original Message----- > > From: Alfred Perlstein > > > > There seems to a race condition somewhere where that if you're > > running let's say pg_dumpall and happen to drop a table mid-dump > > pg_dumpall will die because it looses the table. > > > > Would it make sense to use a transaction system so that when a table > > is renamed/dropped it doesn't actually go away until all transactions > > that started before the drop take place? > > > > one could do probably implement this using refcounts and translating > > dropped tables into temporary mangled names. > > > > Your proposal seems to be an extension of how to commit/rollback > DDL (drop/alter/rename etc ..) commands properly. There has been > a long discussion about it but unfortunately we have no consensus > for it AFAIK. > > There may be another way. > pg_dump(all) may be able to acquire a e.g share lock for pg_class > to prevent drop/rename/.. operations of other backends. Of cource > DDL(drop/rename/..) commands should acquire a row exclusive > lock on pg_class. No long term locks is better than a locking system, I'd prefer to be able to proceed as normal since a transaction exists 'at a point in time' there's no reason to delay a drop that happens in the future so long as there's still something for the old transaction to grab onto. Your solution may be simpler (and I thought of something like it already) but honestly it's not what I'd like to see implemented. -- -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org] "I have the heart of a child; I keep it in a jar on my desk."
В списке pgsql-hackers по дате отправления: