commit 1fc14744463594f361c76e04b17716574593da81 Author: Pavan Deolasee 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