postgres.git / summary / log / commit / refs
commit 7f17fd6fc7125b41218bc99ccfa8165e2d730cd9
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: Fri Jan 19 19:34:44 2018 +0000
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 8b08f7d4820f.
At least, it solves the issue in my local 32bit VM -- let's see what the
rest thinks.
src/backend/catalog/index.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index f0223416adf..849a4691277 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -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])
[parent: 8b9e9644dc6a]