From: Robert Haas Date: Wed, 28 Sep 2022 12:02:30 +0000 (-0400) Subject: Fix InitializeRelfilenumberMap for 05d4cbf9b6ba708858984b01ca0fc56d59d4ec7c X-Git-Tag: REL_16_BETA1~1590 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6af082723277eeca74f2da65e7759666bf7c7f9c;p=thirdparty%2Fpostgresql.git Fix InitializeRelfilenumberMap for 05d4cbf9b6ba708858984b01ca0fc56d59d4ec7c Since relfilenodes are now 56-bits, we use bigint as the SQL type to represent them, which means F_INT8EQ must be used here rather than F_OIDEQ. On 64-bit machines this doesn't matter, but 32-bit machines are unhappy. Dilip Kumar Discussion: http://postgr.es/m/CAFiTN-t71ciSckMzixAhrF9py7oRO6xszKi4mTRwjuucXr5tpw@mail.gmail.com --- diff --git a/src/backend/utils/cache/relfilenumbermap.c b/src/backend/utils/cache/relfilenumbermap.c index 2e0acf98f20..11427ba97eb 100644 --- a/src/backend/utils/cache/relfilenumbermap.c +++ b/src/backend/utils/cache/relfilenumbermap.c @@ -88,7 +88,6 @@ static void InitializeRelfilenumberMap(void) { HASHCTL ctl; - int i; /* Make sure we've initialized CacheMemoryContext. */ if (CacheMemoryContext == NULL) @@ -97,17 +96,20 @@ InitializeRelfilenumberMap(void) /* build skey */ MemSet(&relfilenumber_skey, 0, sizeof(relfilenumber_skey)); - 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_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; + + 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[1].sk_attno = Anum_pg_class_relfilenode; /*