Vadim Mikheev <vadim@krs.ru> writes:
> Bruce Momjian wrote:
>> Thanks. I am a little confused. I thought you just flushed only on
> ^^^^^^^^^^^^^^^^^^^^
>> elog()/abort. How does the new code work.
> ^^^^^^^^^^^^
> It seems as more right thing to do.
What I just committed does the cache flush whenever
RelationFlushRelation is called --- in particular, elog/abort will
cause it to happen if there are any created-in-current-transaction
relations to be disposed of. But otherwise, no flush.
The obvious question about that is "what about modifications to
cacheable tuples that are not triggered by a relation creation?"
I think that those cases are OK because they are covered by the
shared-invalidation code. At least, we have no bug reports to
prove the contrary...
regards, tom lane