When an index column is an expression, it makes no sense to compare its
attribute numbers.
This seems to account for remaining buildfarm fallout from
8b08f7d4820f.
At least, it solves the issue in my local 32bit VM -- let's see what the
rest thinks.
if (maplen < info2->ii_KeyAttrNumbers[i])
elog(ERROR, "incorrect attribute map");
- if (attmap[info2->ii_KeyAttrNumbers[i] - 1] !=
- info1->ii_KeyAttrNumbers[i])
+ /* ignore expressions at this stage */
+ if ((info1->ii_KeyAttrNumbers[i] != InvalidAttrNumber) &&
+ (attmap[info2->ii_KeyAttrNumbers[i] - 1] !=
+ info1->ii_KeyAttrNumbers[i]))
return false;
if (collations1[i] != collations2[i])