Re: ResetSystemCaches(was Re: relation ### modified while in use) - Mailing list pgsql-hackers

From Tom Lane
Subject Re: ResetSystemCaches(was Re: relation ### modified while in use)
Date
Msg-id 6602.973530488@sss.pgh.pa.us
Whole thread Raw
In response to ResetSystemCaches(was Re: relation ### modified while in use)  (Hiroshi Inoue <Inoue@tpf.co.jp>)
List pgsql-hackers
Hiroshi Inoue <Inoue@tpf.co.jp> writes:
> RelationCacheInvalidate() is called from ResetSystemCaches()
> and calles RelationFlushRelation() for all relation descriptors
> except some nailed system relations.
> I'm wondering why nailed relations could be exceptions.
> Conversely why must RelationCacheInvalidate() call
> RelationFlushRelation() for other system relations ?
> Isn't it sufficient to call smgrclose() and replace rd_rel
> member of system relations by the latest ones instead
> of calling RelationFlushRelation() ?

Possibly you could do fixrdesc() instead of just ignoring the report
entirely for nailed-in relations.  Not sure it's worth worrying about
though --- in practice, what is this going to make possible?  You can't
change the structure of a nailed-in system catalog, nor will adding
triggers or rules to it work very well, so I'm not quite seeing the
point.

BTW, don't forget that there are nailed-in indexes as well as tables.
Not sure if that matters to this code, but it might.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: problems with configure
Next
From: "Ross J. Reedstrom"
Date:
Subject: Re: Alternative database locations are broken