Re: [HACKERS] Ye olde "relation doesn't quite exist" problem

Поиск
Список
Период
Сортировка
От Vadim Mikheev
Тема Re: [HACKERS] Ye olde "relation doesn't quite exist" problem
Дата
Msg-id 375743BF.CBF7BB84@krs.ru
обсуждение исходный текст
Ответ на Re: [HACKERS] Ye olde "relation doesn't quite exist" problem  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: [HACKERS] Ye olde "relation doesn't quite exist" problem
Список pgsql-hackers
Tom Lane wrote:
> 
> I think the correct place to handle the problem is in
> SystemCacheRelationFlushed() in catcache.c.  That routine is called by
> RelationFlushRelation() (which does the same task for the relcache).
> Unfortunately, it was only handling one aspect of the cache-update
> problem: it was cleaning out the cache associated with a system table
> when the *system table's* relcache entry was flushed.  It didn't scan
> the cache contents to see if any of the records are associated with a
> non-system table that's being flushed.
> 
> For the moment, I have made it call ResetSystemCache() --- that is, just
> flush *all* the cache entries.  Scanning the individual entries to find ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Isn't is tooooo bad for performance ?!

> the ones referencing the given relID would require knowing exactly which
> column to look in for each kind of system cache, which is more knowledge
> than catcache.c actually has.  Eventually we could improve it.
> 
> This means it is no longer necessary for heap.c or index.c to call
> ResetSystemCache() when handling a temp table --- their calls to
> RelationForgetRelation are sufficient.  I have applied those changes
> as well.

Vadim


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [HACKERS] Re: Freezing docs for v6.5
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: [HACKERS] Ye olde "relation doesn't quite exist" problem