}
/*
- * Reload partition key and descriptor for a partitioned table.
+ * Reload the partition key and descriptor for a partitioned table.
*/
- if (relation->rd_rel->relkind == RELKIND_PARTITIONED_TABLE)
+ if (relation->rd_rel->relkind == RELKIND_PARTITIONED_TABLE &&
+ relation->rd_partkey == NULL)
{
RelationBuildPartitionKey(relation);
Assert(relation->rd_partkey != NULL);
+ restart = true;
+ }
+
+ if (relation->rd_rel->relkind == RELKIND_PARTITIONED_TABLE &&
+ relation->rd_partdesc == NULL)
+ {
RelationBuildPartitionDesc(relation);
Assert(relation->rd_partdesc != NULL);