invalidate_indexattr.patch
application/octet-stream
Filename: invalidate_indexattr.patch
Type: application/octet-stream
Part: 2
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/utils/cache/relcache.c | 7 | 0 |
commit 1fc14744463594f361c76e04b17716574593da81
Author: Pavan Deolasee <pavan.deolasee@gmail.com>
Date: Mon Jan 30 08:22:43 2017 +0530
Invalidate index attributes when index list is invalidated
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index 4a053a3..728b388 100644
--- a/src/backend/utils/cache/relcache.c
+++ b/src/backend/utils/cache/relcache.c
@@ -4355,6 +4355,13 @@ RelationGetIndexList(Relation relation)
return list_copy(relation->rd_indexlist);
/*
+ * If the index list was invalidated, we better also invalidate the index
+ * attribute list (which should automatically invalidate other attributes
+ * such as primary key and replica identity)
+ */
+ relation->rd_indexattr = NULL;
+
+ /*
* We build the list we intend to return (in the caller's context) while
* doing the scan. After successfully completing the scan, we copy that
* list into the relcache entry. This avoids cache-context memory leakage