Skip to content

Commit 6af0827

Browse files
committed
Fix InitializeRelfilenumberMap for 05d4cbf
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
1 parent 0222be1 commit 6af0827

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

src/backend/utils/cache/relfilenumbermap.c

+13-11
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ static void
8888
InitializeRelfilenumberMap(void)
8989
{
9090
HASHCTL ctl;
91-
int i;
9291

9392
/* Make sure we've initialized CacheMemoryContext. */
9493
if (CacheMemoryContext == NULL)
@@ -97,17 +96,20 @@ InitializeRelfilenumberMap(void)
9796
/* build skey */
9897
MemSet(&relfilenumber_skey, 0, sizeof(relfilenumber_skey));
9998

100-
for (i = 0; i < 2; i++)
101-
{
102-
fmgr_info_cxt(F_OIDEQ,
103-
&relfilenumber_skey[i].sk_func,
104-
CacheMemoryContext);
105-
relfilenumber_skey[i].sk_strategy = BTEqualStrategyNumber;
106-
relfilenumber_skey[i].sk_subtype = InvalidOid;
107-
relfilenumber_skey[i].sk_collation = InvalidOid;
108-
}
109-
99+
fmgr_info_cxt(F_OIDEQ,
100+
&relfilenumber_skey[0].sk_func,
101+
CacheMemoryContext);
102+
relfilenumber_skey[0].sk_strategy = BTEqualStrategyNumber;
103+
relfilenumber_skey[0].sk_subtype = InvalidOid;
104+
relfilenumber_skey[0].sk_collation = InvalidOid;
110105
relfilenumber_skey[0].sk_attno = Anum_pg_class_reltablespace;
106+
107+
fmgr_info_cxt(F_INT8EQ,
108+
&relfilenumber_skey[1].sk_func,
109+
CacheMemoryContext);
110+
relfilenumber_skey[1].sk_strategy = BTEqualStrategyNumber;
111+
relfilenumber_skey[1].sk_subtype = InvalidOid;
112+
relfilenumber_skey[1].sk_collation = InvalidOid;
111113
relfilenumber_skey[1].sk_attno = Anum_pg_class_relfilenode;
112114

113115
/*

0 commit comments

Comments
 (0)