diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index 8e28335915f..8e08ca1c680 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -5150,9 +5150,15 @@ RelationGetIndexPredicate(Relation relation) * simple index keys, but attributes used in expressions and partial-index * predicates.) * - * Depending on attrKind, a bitmap covering the attnums for all index columns, - * for all potential foreign key columns, or for all columns in the configured - * replica identity index is returned. + * Depending on attrKind, a bitmap covering attnums for certain columns is + * returned: + * INDEX_ATTR_BITMAP_KEY Columns in non-partial unique indexes not + * in expressions (i.e., usable for FKs) + * INDEX_ATTR_BITMAP_PRIMARY_KEY Columns in the table's primary key + * INDEX_ATTR_BITMAP_IDENTITY_KEY Columns in the table's replica identity + * index (empty if FULL) + * INDEX_ATTR_BITMAP_HOT_BLOCKING Columns that block updates from being HOT + * INDEX_ATTR_BITMAP_SUMMARIZED Columns included in summarizing indexes * * Attribute numbers are offset by FirstLowInvalidHeapAttributeNumber so that * we can include system attributes (e.g., OID) in the bitmap representation. diff --git a/src/include/utils/relcache.h b/src/include/utils/relcache.h index beeb28b83cb..38524641f47 100644 --- a/src/include/utils/relcache.h +++ b/src/include/utils/relcache.h @@ -54,6 +54,9 @@ extern List *RelationGetIndexPredicate(Relation relation); extern Datum *RelationGetIndexRawAttOptions(Relation indexrel); extern bytea **RelationGetIndexAttOptions(Relation relation, bool copy); +/* + * Which set of columns to return by RelationGetIndexAttrBitmap. + */ typedef enum IndexAttrBitmapKind { INDEX_ATTR_BITMAP_KEY,