diff options
author | Robert Haas <rhaas@postgresql.org> | 2022-09-28 08:02:30 -0400 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2022-09-28 08:04:49 -0400 |
commit | 6af082723277eeca74f2da65e7759666bf7c7f9c (patch) | |
tree | 35f55c828ea8f33e7d77b531bdc463cda3d543ba | |
parent | 0222be137188ac3912d244d832a328be0944f3e9 (diff) | |
download | postgresql-6af082723277eeca74f2da65e7759666bf7c7f9c.tar.gz postgresql-6af082723277eeca74f2da65e7759666bf7c7f9c.zip |
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
-rw-r--r-- | src/backend/utils/cache/relfilenumbermap.c | 24 |
1 files changed, 13 insertions, 11 deletions
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; /* |