aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/tsearchcmds.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/tsearchcmds.c')
-rw-r--r--src/backend/commands/tsearchcmds.c90
1 files changed, 44 insertions, 46 deletions
diff --git a/src/backend/commands/tsearchcmds.c b/src/backend/commands/tsearchcmds.c
index 319a62012ed..f5d1d137b81 100644
--- a/src/backend/commands/tsearchcmds.c
+++ b/src/backend/commands/tsearchcmds.c
@@ -133,42 +133,41 @@ makeParserDependencies(HeapTuple tuple)
Form_pg_ts_parser prs = (Form_pg_ts_parser) GETSTRUCT(tuple);
ObjectAddress myself,
referenced;
+ ObjectAddresses *addrs;
- myself.classId = TSParserRelationId;
- myself.objectId = prs->oid;
- myself.objectSubId = 0;
-
- /* dependency on namespace */
- referenced.classId = NamespaceRelationId;
- referenced.objectId = prs->prsnamespace;
- referenced.objectSubId = 0;
- recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
+ ObjectAddressSet(myself, TSParserRelationId, prs->oid);
/* dependency on extension */
recordDependencyOnCurrentExtension(&myself, false);
- /* dependencies on functions */
- referenced.classId = ProcedureRelationId;
- referenced.objectSubId = 0;
+ addrs = new_object_addresses();
- referenced.objectId = prs->prsstart;
- recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
+ /* dependency on namespace */
+ ObjectAddressSet(referenced, NamespaceRelationId, prs->prsnamespace);
+ add_exact_object_address(&referenced, addrs);
+
+ /* dependencies on functions */
+ ObjectAddressSet(referenced, ProcedureRelationId, prs->prsstart);
+ add_exact_object_address(&referenced, addrs);
referenced.objectId = prs->prstoken;
- recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
+ add_exact_object_address(&referenced, addrs);
referenced.objectId = prs->prsend;
- recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
+ add_exact_object_address(&referenced, addrs);
referenced.objectId = prs->prslextype;
- recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
+ add_exact_object_address(&referenced, addrs);
if (OidIsValid(prs->prsheadline))
{
referenced.objectId = prs->prsheadline;
- recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
+ add_exact_object_address(&referenced, addrs);
}
+ record_object_address_dependencies(&myself, addrs, DEPENDENCY_NORMAL);
+ free_object_addresses(addrs);
+
return myself;
}
@@ -304,16 +303,9 @@ makeDictionaryDependencies(HeapTuple tuple)
Form_pg_ts_dict dict = (Form_pg_ts_dict) GETSTRUCT(tuple);
ObjectAddress myself,
referenced;
+ ObjectAddresses *addrs;
- myself.classId = TSDictionaryRelationId;
- myself.objectId = dict->oid;
- myself.objectSubId = 0;
-
- /* dependency on namespace */
- referenced.classId = NamespaceRelationId;
- referenced.objectId = dict->dictnamespace;
- referenced.objectSubId = 0;
- recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
+ ObjectAddressSet(myself, TSDictionaryRelationId, dict->oid);
/* dependency on owner */
recordDependencyOnOwner(myself.classId, myself.objectId, dict->dictowner);
@@ -321,11 +313,18 @@ makeDictionaryDependencies(HeapTuple tuple)
/* dependency on extension */
recordDependencyOnCurrentExtension(&myself, false);
+ addrs = new_object_addresses();
+
+ /* dependency on namespace */
+ ObjectAddressSet(referenced, NamespaceRelationId, dict->dictnamespace);
+ add_exact_object_address(&referenced, addrs);
+
/* dependency on template */
- referenced.classId = TSTemplateRelationId;
- referenced.objectId = dict->dicttemplate;
- referenced.objectSubId = 0;
- recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
+ ObjectAddressSet(referenced, TSTemplateRelationId, dict->dicttemplate);
+ add_exact_object_address(&referenced, addrs);
+
+ record_object_address_dependencies(&myself, addrs, DEPENDENCY_NORMAL);
+ free_object_addresses(addrs);
return myself;
}
@@ -649,33 +648,32 @@ makeTSTemplateDependencies(HeapTuple tuple)
Form_pg_ts_template tmpl = (Form_pg_ts_template) GETSTRUCT(tuple);
ObjectAddress myself,
referenced;
+ ObjectAddresses *addrs;
- myself.classId = TSTemplateRelationId;
- myself.objectId = tmpl->oid;
- myself.objectSubId = 0;
-
- /* dependency on namespace */
- referenced.classId = NamespaceRelationId;
- referenced.objectId = tmpl->tmplnamespace;
- referenced.objectSubId = 0;
- recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
+ ObjectAddressSet(myself, TSTemplateRelationId, tmpl->oid);
/* dependency on extension */
recordDependencyOnCurrentExtension(&myself, false);
- /* dependencies on functions */
- referenced.classId = ProcedureRelationId;
- referenced.objectSubId = 0;
+ addrs = new_object_addresses();
- referenced.objectId = tmpl->tmpllexize;
- recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
+ /* dependency on namespace */
+ ObjectAddressSet(referenced, NamespaceRelationId, tmpl->tmplnamespace);
+ add_exact_object_address(&referenced, addrs);
+
+ /* dependencies on functions */
+ ObjectAddressSet(referenced, ProcedureRelationId, tmpl->tmpllexize);
+ add_exact_object_address(&referenced, addrs);
if (OidIsValid(tmpl->tmplinit))
{
referenced.objectId = tmpl->tmplinit;
- recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
+ add_exact_object_address(&referenced, addrs);
}
+ record_object_address_dependencies(&myself, addrs, DEPENDENCY_NORMAL);
+ free_object_addresses(addrs);
+
return myself;
}