Re: [HACKERS] double opens
От | Bruce Momjian |
---|---|
Тема | Re: [HACKERS] double opens |
Дата | |
Msg-id | 199909270330.XAA01510@candle.pha.pa.us обсуждение исходный текст |
Ответ на | double opens ("Hiroshi Inoue" <Inoue@tpf.co.jp>) |
Ответы |
Re: [HACKERS] double opens
|
Список | pgsql-hackers |
Tom, can you comment on this patch. Seems you have made changes in this area. Thanks. [Charset iso-8859-1 unsupported, filtering to ASCII...] > Hi all, > > There is a TODO item > * Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup > > In Windows-NT,we could see the following error reported by > yutaka tanida [yutaka@marin.or.jp]. > > > version > > ------------------------------------------------------------ > > PostgreSQL 6.5.1 on i686-pc-cygwin, compiled by gcc gcc-2.95 > > (1 row) > > > > template1=> create table table1 ( i int,j int); > > CREATE > > template1=> create view view1 as select * from table1; > > CREATE > > template1=> drop view view1; > > DROP > > template1=> create view view1 as select * from table1; > > ERROR: cannot create view1 > > "drop view" couldn't unlink the base file of target view because > it is doubly opened and so "create view" coundn't create the view. > > After applying the following patch on trial,"drop view" was able to > unlink the base file and "create view" was able to create the view > again. > > I think base files should be closed at the time of cache invalidation. > RelationFlushRelation() invalidates the entry of relation cache but > doesn't close the base file of target relation. > Is there any reason ? > > Or why doesn't RelationCacheDelete() close the base file of > target relation ? > > Regards. > > Hiroshi Inoue > Inoue@tpf.co.jp > > *** utils/cache/relcache.c.orig Wed May 26 16:05:38 1999 > --- utils/cache/relcache.c Wed Jul 28 13:23:49 1999 > *************** > *** 1282,1287 **** > --- 1282,1288 ---- > oldcxt = MemoryContextSwitchTo((MemoryContext) CacheCxt); > > RelationCacheDelete(relation); > + smgrclose(DEFAULT_SMGR, relation); > > FreeTupleDesc(relation->rd_att); > SystemCacheRelationFlushed(RelationGetRelid(relation)); > > > -- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
В списке pgsql-hackers по дате отправления: