From 8b90174e3f0638ff542bef7f367429750d18b08c Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 13 Dec 2018 15:11:09 -0500 Subject: [PATCH] Fix bogus logic for skipping unnecessary partcollation dependencies. The idea here is to not call recordDependencyOn for the default collation, since we know that's pinned. But what the code actually did was to record the partition key's dependency on the opclass twice, instead. Evidently introduced by sloppy coding in commit 2186b608b. Back-patch to v10 where that came in. --- src/backend/catalog/heap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index bd01d54e688..4f42cc15337 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -3145,7 +3145,7 @@ StorePartitionKey(Relation rel, /* Mark this relation as dependent on a few things as follows */ myself.classId = RelationRelationId; - myself.objectId = RelationGetRelid(rel);; + myself.objectId = RelationGetRelid(rel); myself.objectSubId = 0; /* Operator class and collation per key column */ @@ -3164,9 +3164,9 @@ StorePartitionKey(Relation rel, referenced.classId = CollationRelationId; referenced.objectId = partcollation[i]; referenced.objectSubId = 0; - } - recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); + recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); + } } /* -- 2.39.5