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  (Tom Lane <tgl@sss.pgh.pa.us>)
Список 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 по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: [HACKERS] A multi-lang patch for psql 6.5.1 (fwd)
Следующее
От: Tom Lane
Дата:
Сообщение: TODO items (was Re: [COMMITTERS] pgsql/src/include/nodes (execnodes.h))