From 8936543b8058a57804ea47b545f4f2b96d56153d Mon Sep 17 00:00:00 2001 From: Ahmet Gedemenli Date: Mon, 17 Jan 2022 15:35:40 +0300 Subject: [PATCH] Create wrapper function CreateObjectAddressDependencyDefList (#5623) --- src/backend/distributed/metadata/dependency.c | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/backend/distributed/metadata/dependency.c b/src/backend/distributed/metadata/dependency.c index ba3681f3e..0b15dcafd 100644 --- a/src/backend/distributed/metadata/dependency.c +++ b/src/backend/distributed/metadata/dependency.c @@ -123,6 +123,7 @@ typedef struct ViewDependencyNode static List * GetRelationTriggerFunctionDepencyList(Oid relationId); static List * GetRelationStatsSchemaDependencyList(Oid relationId); static DependencyDefinition * CreateObjectAddressDependencyDef(Oid classId, Oid objectId); +static List * CreateObjectAddressDependencyDefList(Oid classId, List *objectIdList); static ObjectAddress DependencyDefinitionObjectAddress(DependencyDefinition *definition); /* forward declarations for functions to interact with the ObjectAddressCollector */ @@ -1003,18 +1004,9 @@ ExpandCitusSupportedTypes(ObjectAddressCollector *collector, ObjectAddress targe static List * GetRelationStatsSchemaDependencyList(Oid relationId) { - List *dependencyList = NIL; - List *schemaIds = GetExplicitStatisticsSchemaIdList(relationId); - Oid schemaId = InvalidOid; - foreach_oid(schemaId, schemaIds) - { - DependencyDefinition *dependency = - CreateObjectAddressDependencyDef(NamespaceRelationId, schemaId); - dependencyList = lappend(dependencyList, dependency); - } - return dependencyList; + return CreateObjectAddressDependencyDefList(NamespaceRelationId, schemaIds); } @@ -1056,6 +1048,27 @@ CreateObjectAddressDependencyDef(Oid classId, Oid objectId) } +/* + * CreateObjectAddressDependencyDefList is a wrapper function for + * CreateObjectAddressDependencyDef to operate on a list of relation oids, + * instead of a single oid. + */ +static List * +CreateObjectAddressDependencyDefList(Oid classId, List *objectIdList) +{ + List *dependencyList = NIL; + Oid objectId = InvalidOid; + foreach_oid(objectId, objectIdList) + { + DependencyDefinition *dependency = + CreateObjectAddressDependencyDef(classId, objectId); + dependencyList = lappend(dependencyList, dependency); + } + + return dependencyList; +} + + /* * DependencyDefinitionObjectAddress returns the object address of the dependency defined * by the dependency definition, irregardless what the source of the definition is