diff --git a/contrib/pageinspect/hashfuncs.c b/contrib/pageinspect/hashfuncs.c index 04089b560ec..7fc97d043ce 100644 --- a/contrib/pageinspect/hashfuncs.c +++ b/contrib/pageinspect/hashfuncs.c @@ -415,6 +415,10 @@ hash_bitmap_info(PG_FUNCTION_ARGS) (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be superuser to use raw page functions"))); + /* + * This uses relation_open() and not index_open(). The latter allows + * partitioned indexes, and these are forbidden here. + */ indexRel = relation_open(indexRelid, AccessShareLock); if (!IS_INDEX(indexRel) || !IS_HASH(indexRel)) @@ -486,7 +490,7 @@ hash_bitmap_info(PG_FUNCTION_ARGS) bit = ISSET(freep, bitmapbit) != 0; _hash_relbuf(indexRel, mapbuf); - index_close(indexRel, AccessShareLock); + relation_close(indexRel, AccessShareLock); /* Build a tuple descriptor for our result type */ if (get_call_result_type(fcinfo, NULL, &tupleDesc) != TYPEFUNC_COMPOSITE) diff --git a/contrib/pgstattuple/pgstatindex.c b/contrib/pgstattuple/pgstatindex.c index 40823d54fca..ef723af1f19 100644 --- a/contrib/pgstattuple/pgstatindex.c +++ b/contrib/pgstattuple/pgstatindex.c @@ -514,6 +514,10 @@ pgstatginindex_internal(Oid relid, FunctionCallInfo fcinfo) bool nulls[3] = {false, false, false}; Datum result; + /* + * This uses relation_open() and not index_open(). The latter allows + * partitioned indexes, and these are forbidden here. + */ rel = relation_open(relid, AccessShareLock); if (!IS_INDEX(rel) || !IS_GIN(rel)) @@ -597,6 +601,10 @@ pgstathashindex(PG_FUNCTION_ARGS) float8 free_percent; uint64 total_space; + /* + * This uses relation_open() and not index_open(). The latter allows + * partitioned indexes, and these are forbidden here. + */ rel = relation_open(relid, AccessShareLock); if (!IS_INDEX(rel) || !IS_HASH(rel)) @@ -691,7 +699,7 @@ pgstathashindex(PG_FUNCTION_ARGS) } /* Done accessing the index */ - index_close(rel, AccessShareLock); + relation_close(rel, AccessShareLock); /* Count unused pages as free space. */ stats.free_space += (uint64) stats.unused_pages * stats.space_per_page;