Fix CompareIndexInfo's attnum comparisons

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 8b08f7d482.
At least, it solves the issue in my local 32bit VM -- let's see what the
rest thinks.
This commit is contained in:
Alvaro Herrera 2018-01-19 16:34:44 -03:00
parent 8b9e9644dc
commit 7f17fd6fc7
1 changed files with 4 additions and 2 deletions

View File

@ -1795,8 +1795,10 @@ CompareIndexInfo(IndexInfo *info1, IndexInfo *info2,
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])