aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/cache
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/cache')
-rw-r--r--src/backend/utils/cache/inval.c9
-rw-r--r--src/backend/utils/cache/relcache.c2
-rw-r--r--src/backend/utils/cache/relfilenumbermap.c28
3 files changed, 16 insertions, 23 deletions
diff --git a/src/backend/utils/cache/inval.c b/src/backend/utils/cache/inval.c
index fecbf06a04d..eb5782f82a4 100644
--- a/src/backend/utils/cache/inval.c
+++ b/src/backend/utils/cache/inval.c
@@ -663,9 +663,7 @@ LocalExecuteInvalidationMessage(SharedInvalidationMessage *msg)
*/
RelFileLocatorBackend rlocator;
- rlocator.locator.dbOid = msg->sm.dbOid;
- rlocator.locator.spcOid = msg->sm.spcOid;
- rlocator.locator.relNumber = (((uint64) msg->sm.relNumber_hi) << 32) | msg->sm.relNumber_lo;
+ rlocator.locator = msg->sm.rlocator;
rlocator.backend = (msg->sm.backend_hi << 16) | (int) msg->sm.backend_lo;
smgrcloserellocator(rlocator);
}
@@ -1468,10 +1466,7 @@ CacheInvalidateSmgr(RelFileLocatorBackend rlocator)
msg.sm.id = SHAREDINVALSMGR_ID;
msg.sm.backend_hi = rlocator.backend >> 16;
msg.sm.backend_lo = rlocator.backend & 0xffff;
- msg.sm.dbOid = rlocator.locator.dbOid;
- msg.sm.spcOid = rlocator.locator.spcOid;
- msg.sm.relNumber_hi = rlocator.locator.relNumber >> 32;
- msg.sm.relNumber_lo = rlocator.locator.relNumber & 0xffffffff;
+ msg.sm.rlocator = rlocator.locator;
/* check AddCatcacheInvalidationMessage() for an explanation */
VALGRIND_MAKE_MEM_DEFINED(&msg, sizeof(msg));
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index 6f4e96dd33b..00dc0f24037 100644
--- a/src/backend/utils/cache/relcache.c
+++ b/src/backend/utils/cache/relcache.c
@@ -3712,7 +3712,7 @@ RelationSetNewRelfilenumber(Relation relation, char persistence)
{
/* Allocate a new relfilenumber */
newrelfilenumber = GetNewRelFileNumber(relation->rd_rel->reltablespace,
- persistence);
+ NULL, persistence);
}
else if (relation->rd_rel->relkind == RELKIND_INDEX)
{
diff --git a/src/backend/utils/cache/relfilenumbermap.c b/src/backend/utils/cache/relfilenumbermap.c
index 11427ba97eb..c4245d5ccdd 100644
--- a/src/backend/utils/cache/relfilenumbermap.c
+++ b/src/backend/utils/cache/relfilenumbermap.c
@@ -88,6 +88,7 @@ static void
InitializeRelfilenumberMap(void)
{
HASHCTL ctl;
+ int i;
/* Make sure we've initialized CacheMemoryContext. */
if (CacheMemoryContext == NULL)
@@ -96,20 +97,17 @@ InitializeRelfilenumberMap(void)
/* build skey */
MemSet(&relfilenumber_skey, 0, sizeof(relfilenumber_skey));
- fmgr_info_cxt(F_OIDEQ,
- &relfilenumber_skey[0].sk_func,
- CacheMemoryContext);
- relfilenumber_skey[0].sk_strategy = BTEqualStrategyNumber;
- relfilenumber_skey[0].sk_subtype = InvalidOid;
- relfilenumber_skey[0].sk_collation = InvalidOid;
- relfilenumber_skey[0].sk_attno = Anum_pg_class_reltablespace;
+ for (i = 0; i < 2; i++)
+ {
+ fmgr_info_cxt(F_OIDEQ,
+ &relfilenumber_skey[i].sk_func,
+ CacheMemoryContext);
+ relfilenumber_skey[i].sk_strategy = BTEqualStrategyNumber;
+ relfilenumber_skey[i].sk_subtype = InvalidOid;
+ relfilenumber_skey[i].sk_collation = InvalidOid;
+ }
- fmgr_info_cxt(F_INT8EQ,
- &relfilenumber_skey[1].sk_func,
- CacheMemoryContext);
- relfilenumber_skey[1].sk_strategy = BTEqualStrategyNumber;
- relfilenumber_skey[1].sk_subtype = InvalidOid;
- relfilenumber_skey[1].sk_collation = InvalidOid;
+ relfilenumber_skey[0].sk_attno = Anum_pg_class_reltablespace;
relfilenumber_skey[1].sk_attno = Anum_pg_class_relfilenode;
/*
@@ -198,7 +196,7 @@ RelidByRelfilenumber(Oid reltablespace, RelFileNumber relfilenumber)
/* set scan arguments */
skey[0].sk_argument = ObjectIdGetDatum(reltablespace);
- skey[1].sk_argument = Int64GetDatum((int64) relfilenumber);
+ skey[1].sk_argument = ObjectIdGetDatum(relfilenumber);
scandesc = systable_beginscan(relation,
ClassTblspcRelfilenodeIndexId,
@@ -215,7 +213,7 @@ RelidByRelfilenumber(Oid reltablespace, RelFileNumber relfilenumber)
if (found)
elog(ERROR,
- "unexpected duplicate for tablespace %u, relfilenumber " UINT64_FORMAT,
+ "unexpected duplicate for tablespace %u, relfilenumber %u",
reltablespace, relfilenumber);
found = true;