Split RelationClearRelation into three different functions
authorHeikki Linnakangas <[email protected]>
Thu, 31 Oct 2024 08:09:40 +0000 (10:09 +0200)
committerHeikki Linnakangas <[email protected]>
Thu, 31 Oct 2024 08:09:40 +0000 (10:09 +0200)
commit2b9b8ebbf8a2f621d1cecc4db759700f9ce6ce66
tree12a4c26e04fafc85ef9ca973767d3675c8b5ab8a
parent8e2e2662214a0a6d0fb23a070ea78d691d8ced43
Split RelationClearRelation into three different functions

The old RelationClearRelation function did different things depending
on the arguments and circumstances. It could:

a) remove the relation completely from relcache (rebuild == false),
b) mark the entry as invalid (rebuild == true, but not in xact), or
c) rebuild the entry (rebuild == true).

Different callers used it for different purposes, and often assumed a
particular behavior, which was confusing. Split it into three
different functions, one for each of the above actions (one of them,
RelationInvalidateRelation, was already added in commit e6cd857726).
Move the responsibility of choosing the action and calling the right
function to the callers.

Reviewed-by: jian he <[email protected]>
Discussion: https://www.postgresql.org/message-id/9c9e8908-7b3e-4ce7-85a8-00c0e165a3d6%40iki.fi
src/backend/utils/cache/relcache.c