From 17f206fbc824d2b4b14480199ca9ff7dea417eda Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Mon, 22 Oct 2018 11:04:48 +0900 Subject: Set pg_class.relhassubclass for partitioned indexes Like for relations, switching this parameter is optimistic by turning it on each time a partitioned index gains a partition. So seeing this parameter set to true means that the partitioned index has or has had partitions. The flag cannot be reset yet for partitioned indexes, which is something not obvious anyway as partitioned relations exist to have partitions. This allows to track more conveniently partition trees for indexes, which will come in use with an upcoming patch helping in listing partition trees with an SQL-callable function. Author: Amit Langote Reviewed-by: Michael Paquier Discussion: https://postgr.es/m/80306490-b5fc-ea34-4427-f29c52156052@lab.ntt.co.jp --- src/backend/commands/indexcmds.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/backend/commands/indexcmds.c') diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 3975f62c001..906d7113781 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -2608,6 +2608,10 @@ IndexSetParentIndex(Relation partitionIdx, Oid parentOid) systable_endscan(scan); relation_close(pg_inherits, RowExclusiveLock); + /* set relhassubclass if an index partition has been added to the parent */ + if (OidIsValid(parentOid)) + SetRelationHasSubclass(parentOid, true); + if (fix_dependencies) { ObjectAddress partIdx; -- cgit v1.2.3