From dec2b28d49ca88bf0839393a5e6ff1ee0e0e7cf7 Mon Sep 17 00:00:00 2001 From: Sait Talha Nisanci Date: Fri, 29 May 2020 10:47:13 +0300 Subject: [PATCH] use RelationGetPartitionDesc to be more safe For getting the partition desc, we should use RelationGetPartitionDesc method so that even if it is NULL, it will be created in the method. --- src/backend/distributed/utils/multi_partitioning_utils.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/backend/distributed/utils/multi_partitioning_utils.c b/src/backend/distributed/utils/multi_partitioning_utils.c index c1912bd7b..fdfc7e12a 100644 --- a/src/backend/distributed/utils/multi_partitioning_utils.c +++ b/src/backend/distributed/utils/multi_partitioning_utils.c @@ -287,14 +287,14 @@ PartitionList(Oid parentRelationId) ereport(ERROR, (errmsg("\"%s\" is not a parent table", relationName))); } + PartitionDesc partDesc = RelationGetPartitionDesc(rel); + Assert(partDesc != NULL); - Assert(rel->rd_partdesc != NULL); - - int partitionCount = rel->rd_partdesc->nparts; + int partitionCount = partDesc->nparts; for (int partitionIndex = 0; partitionIndex < partitionCount; ++partitionIndex) { partitionList = - lappend_oid(partitionList, rel->rd_partdesc->oids[partitionIndex]); + lappend_oid(partitionList, partDesc->oids[partitionIndex]); } /* keep the lock */