aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands')
-rw-r--r--src/backend/commands/alter.c120
-rw-r--r--src/backend/commands/collationcmds.c9
-rw-r--r--src/backend/commands/conversioncmds.c50
-rw-r--r--src/backend/commands/dropcmds.c1
-rw-r--r--src/backend/commands/functioncmds.c33
-rw-r--r--src/backend/commands/opclasscmds.c104
-rw-r--r--src/backend/commands/operatorcmds.c53
-rw-r--r--src/backend/commands/tsearchcmds.c188
8 files changed, 60 insertions, 498 deletions
diff --git a/src/backend/commands/alter.c b/src/backend/commands/alter.c
index e5b813d19a0..ec7e7c2b4ee 100644
--- a/src/backend/commands/alter.c
+++ b/src/backend/commands/alter.c
@@ -173,10 +173,6 @@ ExecAlterObjectSchemaStmt(AlterObjectSchemaStmt *stmt)
AlterCollationNamespace(stmt->object, stmt->newschema);
break;
- case OBJECT_CONVERSION:
- AlterConversionNamespace(stmt->object, stmt->newschema);
- break;
-
case OBJECT_EXTENSION:
AlterExtensionNamespace(stmt->object, stmt->newschema);
break;
@@ -186,18 +182,6 @@ ExecAlterObjectSchemaStmt(AlterObjectSchemaStmt *stmt)
stmt->newschema);
break;
- case OBJECT_OPERATOR:
- AlterOperatorNamespace(stmt->object, stmt->objarg, stmt->newschema);
- break;
-
- case OBJECT_OPCLASS:
- AlterOpClassNamespace(stmt->object, stmt->addname, stmt->newschema);
- break;
-
- case OBJECT_OPFAMILY:
- AlterOpFamilyNamespace(stmt->object, stmt->addname, stmt->newschema);
- break;
-
case OBJECT_SEQUENCE:
case OBJECT_TABLE:
case OBJECT_VIEW:
@@ -205,25 +189,42 @@ ExecAlterObjectSchemaStmt(AlterObjectSchemaStmt *stmt)
AlterTableNamespace(stmt);
break;
- case OBJECT_TSPARSER:
- AlterTSParserNamespace(stmt->object, stmt->newschema);
+ case OBJECT_TYPE:
+ case OBJECT_DOMAIN:
+ AlterTypeNamespace(stmt->object, stmt->newschema, stmt->objectType);
break;
+ /* generic code path */
+ case OBJECT_CONVERSION:
+ case OBJECT_OPERATOR:
+ case OBJECT_OPCLASS:
+ case OBJECT_OPFAMILY:
+ case OBJECT_TSPARSER:
case OBJECT_TSDICTIONARY:
- AlterTSDictionaryNamespace(stmt->object, stmt->newschema);
- break;
-
case OBJECT_TSTEMPLATE:
- AlterTSTemplateNamespace(stmt->object, stmt->newschema);
- break;
-
case OBJECT_TSCONFIGURATION:
- AlterTSConfigurationNamespace(stmt->object, stmt->newschema);
- break;
-
- case OBJECT_TYPE:
- case OBJECT_DOMAIN:
- AlterTypeNamespace(stmt->object, stmt->newschema, stmt->objectType);
+ {
+ Relation catalog;
+ Relation relation;
+ Oid classId;
+ Oid nspOid;
+ ObjectAddress address;
+
+ address = get_object_address(stmt->objectType,
+ stmt->object,
+ stmt->objarg,
+ &relation,
+ AccessExclusiveLock,
+ false);
+ Assert(relation == NULL);
+ classId = address.classId;
+ catalog = heap_open(classId, RowExclusiveLock);
+ nspOid = LookupCreationNamespace(stmt->newschema);
+
+ AlterObjectNamespace_internal(catalog, address.objectId,
+ nspOid);
+ heap_close(catalog, RowExclusiveLock);
+ }
break;
default:
@@ -293,35 +294,23 @@ AlterObjectNamespace_oid(Oid classId, Oid objid, Oid nspOid)
break;
case OCLASS_CONVERSION:
- oldNspOid = AlterConversionNamespace_oid(objid, nspOid);
- break;
-
case OCLASS_OPERATOR:
- oldNspOid = AlterOperatorNamespace_oid(objid, nspOid);
- break;
-
case OCLASS_OPCLASS:
- oldNspOid = AlterOpClassNamespace_oid(objid, nspOid);
- break;
-
case OCLASS_OPFAMILY:
- oldNspOid = AlterOpFamilyNamespace_oid(objid, nspOid);
- break;
-
case OCLASS_TSPARSER:
- oldNspOid = AlterTSParserNamespace_oid(objid, nspOid);
- break;
-
case OCLASS_TSDICT:
- oldNspOid = AlterTSDictionaryNamespace_oid(objid, nspOid);
- break;
-
case OCLASS_TSTEMPLATE:
- oldNspOid = AlterTSTemplateNamespace_oid(objid, nspOid);
- break;
-
case OCLASS_TSCONFIG:
- oldNspOid = AlterTSConfigurationNamespace_oid(objid, nspOid);
+ {
+ Relation catalog;
+
+ catalog = heap_open(classId, RowExclusiveLock);
+
+ oldNspOid = AlterObjectNamespace_internal(catalog, objid,
+ nspOid);
+
+ heap_close(catalog, RowExclusiveLock);
+ }
break;
default:
@@ -336,32 +325,22 @@ AlterObjectNamespace_oid(Oid classId, Oid objid, Oid nspOid)
* cases (won't work for tables, nor other cases where we need to do more
* than change the namespace column of a single catalog entry).
*
- * The AlterFooNamespace() calls just above will call a function whose job
- * is to lookup the arguments for the generic function here.
- *
* rel: catalog relation containing object (RowExclusiveLock'd by caller)
- * oidCacheId: syscache that indexes this catalog by OID
- * nameCacheId: syscache that indexes this catalog by name and namespace
- * (pass -1 if there is none)
* objid: OID of object to change the namespace of
* nspOid: OID of new namespace
- * Anum_name: column number of catalog's name column
- * Anum_namespace: column number of catalog's namespace column
- * Anum_owner: column number of catalog's owner column, or -1 if none
- * acl_kind: ACL type for object, or -1 if none assigned
- *
- * If the object does not have an owner or permissions, pass -1 for
- * Anum_owner and acl_kind. In this case the calling user must be superuser.
*
* Returns the OID of the object's previous namespace.
*/
Oid
-AlterObjectNamespace(Relation rel, int oidCacheId, int nameCacheId,
- Oid objid, Oid nspOid,
- int Anum_name, int Anum_namespace, int Anum_owner,
- AclObjectKind acl_kind)
+AlterObjectNamespace_internal(Relation rel, Oid objid, Oid nspOid)
{
Oid classId = RelationGetRelid(rel);
+ int oidCacheId = get_object_catcache_oid(classId);
+ int nameCacheId = get_object_catcache_name(classId);
+ AttrNumber Anum_name = get_object_attnum_name(classId);
+ AttrNumber Anum_namespace = get_object_attnum_namespace(classId);
+ AttrNumber Anum_owner = get_object_attnum_owner(classId);
+ AclObjectKind acl_kind = get_object_aclkind(classId);
Oid oldNspOid;
Datum name,
namespace;
@@ -379,7 +358,8 @@ AlterObjectNamespace(Relation rel, int oidCacheId, int nameCacheId,
name = heap_getattr(tup, Anum_name, RelationGetDescr(rel), &isnull);
Assert(!isnull);
- namespace = heap_getattr(tup, Anum_namespace, RelationGetDescr(rel), &isnull);
+ namespace = heap_getattr(tup, Anum_namespace, RelationGetDescr(rel),
+ &isnull);
Assert(!isnull);
oldNspOid = DatumGetObjectId(namespace);
diff --git a/src/backend/commands/collationcmds.c b/src/backend/commands/collationcmds.c
index ad7528828bd..8918bfc15b3 100644
--- a/src/backend/commands/collationcmds.c
+++ b/src/backend/commands/collationcmds.c
@@ -339,7 +339,7 @@ AlterCollationNamespace_oid(Oid collOid, Oid newNspOid)
/*
* We have to check for name collision ourselves, because
- * AlterObjectNamespace doesn't know how to deal with the encoding
+ * AlterObjectNamespace_internal doesn't know how to deal with the encoding
* considerations.
*/
collation_name = get_collation_name(collOid);
@@ -370,12 +370,7 @@ AlterCollationNamespace_oid(Oid collOid, Oid newNspOid)
get_namespace_name(newNspOid))));
/* OK, do the work */
- oldNspOid = AlterObjectNamespace(rel, COLLOID, -1,
- collOid, newNspOid,
- Anum_pg_collation_collname,
- Anum_pg_collation_collnamespace,
- Anum_pg_collation_collowner,
- ACL_KIND_COLLATION);
+ oldNspOid = AlterObjectNamespace_internal(rel, collOid, newNspOid);
heap_close(rel, RowExclusiveLock);
diff --git a/src/backend/commands/conversioncmds.c b/src/backend/commands/conversioncmds.c
index e36c91ade19..af690b8f2bb 100644
--- a/src/backend/commands/conversioncmds.c
+++ b/src/backend/commands/conversioncmds.c
@@ -266,53 +266,3 @@ AlterConversionOwner_internal(Relation rel, Oid conversionOid, Oid newOwnerId)
heap_freetuple(tup);
}
-
-/*
- * Execute ALTER CONVERSION SET SCHEMA
- */
-void
-AlterConversionNamespace(List *name, const char *newschema)
-{
- Oid convOid,
- nspOid;
- Relation rel;
-
- rel = heap_open(ConversionRelationId, RowExclusiveLock);
-
- convOid = get_conversion_oid(name, false);
-
- /* get schema OID */
- nspOid = LookupCreationNamespace(newschema);
-
- AlterObjectNamespace(rel, CONVOID, CONNAMENSP,
- convOid, nspOid,
- Anum_pg_conversion_conname,
- Anum_pg_conversion_connamespace,
- Anum_pg_conversion_conowner,
- ACL_KIND_CONVERSION);
-
- heap_close(rel, RowExclusiveLock);
-}
-
-/*
- * Change conversion schema, by oid
- */
-Oid
-AlterConversionNamespace_oid(Oid convOid, Oid newNspOid)
-{
- Oid oldNspOid;
- Relation rel;
-
- rel = heap_open(ConversionRelationId, RowExclusiveLock);
-
- oldNspOid = AlterObjectNamespace(rel, CONVOID, CONNAMENSP,
- convOid, newNspOid,
- Anum_pg_conversion_conname,
- Anum_pg_conversion_connamespace,
- Anum_pg_conversion_conowner,
- ACL_KIND_CONVERSION);
-
- heap_close(rel, RowExclusiveLock);
-
- return oldNspOid;
-}
diff --git a/src/backend/commands/dropcmds.c b/src/backend/commands/dropcmds.c
index 1a569d91ece..25c127b252a 100644
--- a/src/backend/commands/dropcmds.c
+++ b/src/backend/commands/dropcmds.c
@@ -26,7 +26,6 @@
#include "miscadmin.h"
#include "nodes/makefuncs.h"
#include "parser/parse_type.h"
-#include "utils/acl.h"
#include "utils/builtins.h"
#include "utils/syscache.h"
diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c
index bf040730fa0..ef6eadc95fd 100644
--- a/src/backend/commands/functioncmds.c
+++ b/src/backend/commands/functioncmds.c
@@ -47,6 +47,7 @@
#include "catalog/pg_proc_fn.h"
#include "catalog/pg_type.h"
#include "catalog/pg_type_fn.h"
+#include "commands/alter.h"
#include "commands/defrem.h"
#include "commands/proclang.h"
#include "miscadmin.h"
@@ -1851,21 +1852,16 @@ AlterFunctionNamespace_oid(Oid procOid, Oid nspOid)
procRel = heap_open(ProcedureRelationId, RowExclusiveLock);
+ /*
+ * We have to check for name collisions ourselves, because
+ * AlterObjectNamespace_internal doesn't know how to deal with the
+ * argument types.
+ */
tup = SearchSysCacheCopy1(PROCOID, ObjectIdGetDatum(procOid));
if (!HeapTupleIsValid(tup))
elog(ERROR, "cache lookup failed for function %u", procOid);
proc = (Form_pg_proc) GETSTRUCT(tup);
- /* check permissions on function */
- if (!pg_proc_ownercheck(procOid, GetUserId()))
- aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_PROC,
- NameStr(proc->proname));
-
- oldNspOid = proc->pronamespace;
-
- /* common checks on switching namespaces */
- CheckSetNamespace(oldNspOid, nspOid, ProcedureRelationId, procOid);
-
/* check for duplicate name (more friendly than unique-index failure) */
if (SearchSysCacheExists3(PROCNAMEARGSNSP,
CStringGetDatum(NameStr(proc->proname)),
@@ -1877,21 +1873,8 @@ AlterFunctionNamespace_oid(Oid procOid, Oid nspOid)
NameStr(proc->proname),
get_namespace_name(nspOid))));
- /* OK, modify the pg_proc row */
-
- /* tup is a copy, so we can scribble directly on it */
- proc->pronamespace = nspOid;
-
- simple_heap_update(procRel, &tup->t_self, tup);
- CatalogUpdateIndexes(procRel, tup);
-
- /* Update dependency on schema */
- if (changeDependencyFor(ProcedureRelationId, procOid,
- NamespaceRelationId, oldNspOid, nspOid) != 1)
- elog(ERROR, "failed to change schema dependency for function \"%s\"",
- NameStr(proc->proname));
-
- heap_freetuple(tup);
+ /* OK, do the work */
+ oldNspOid = AlterObjectNamespace_internal(procRel, procOid, nspOid);
heap_close(procRel, RowExclusiveLock);
diff --git a/src/backend/commands/opclasscmds.c b/src/backend/commands/opclasscmds.c
index 7cf4db05115..e26c9477bb1 100644
--- a/src/backend/commands/opclasscmds.c
+++ b/src/backend/commands/opclasscmds.c
@@ -1915,58 +1915,6 @@ AlterOpClassOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
}
/*
- * ALTER OPERATOR CLASS any_name USING access_method SET SCHEMA name
- */
-void
-AlterOpClassNamespace(List *name, char *access_method, const char *newschema)
-{
- Oid amOid;
- Relation rel;
- Oid opclassOid;
- Oid nspOid;
-
- amOid = get_am_oid(access_method, false);
-
- rel = heap_open(OperatorClassRelationId, RowExclusiveLock);
-
- /* Look up the opclass */
- opclassOid = get_opclass_oid(amOid, name, false);
-
- /* get schema OID */
- nspOid = LookupCreationNamespace(newschema);
-
- AlterObjectNamespace(rel, CLAOID, -1,
- opclassOid, nspOid,
- Anum_pg_opclass_opcname,
- Anum_pg_opclass_opcnamespace,
- Anum_pg_opclass_opcowner,
- ACL_KIND_OPCLASS);
-
- heap_close(rel, RowExclusiveLock);
-}
-
-Oid
-AlterOpClassNamespace_oid(Oid opclassOid, Oid newNspOid)
-{
- Oid oldNspOid;
- Relation rel;
-
- rel = heap_open(OperatorClassRelationId, RowExclusiveLock);
-
- oldNspOid =
- AlterObjectNamespace(rel, CLAOID, -1,
- opclassOid, newNspOid,
- Anum_pg_opclass_opcname,
- Anum_pg_opclass_opcnamespace,
- Anum_pg_opclass_opcowner,
- ACL_KIND_OPCLASS);
-
- heap_close(rel, RowExclusiveLock);
-
- return oldNspOid;
-}
-
-/*
* Change opfamily owner by name
*/
void
@@ -2122,55 +2070,3 @@ get_am_oid(const char *amname, bool missing_ok)
errmsg("access method \"%s\" does not exist", amname)));
return oid;
}
-
-/*
- * ALTER OPERATOR FAMILY any_name USING access_method SET SCHEMA name
- */
-void
-AlterOpFamilyNamespace(List *name, char *access_method, const char *newschema)
-{
- Oid amOid;
- Relation rel;
- Oid opfamilyOid;
- Oid nspOid;
-
- amOid = get_am_oid(access_method, false);
-
- rel = heap_open(OperatorFamilyRelationId, RowExclusiveLock);
-
- /* Look up the opfamily */
- opfamilyOid = get_opfamily_oid(amOid, name, false);
-
- /* get schema OID */
- nspOid = LookupCreationNamespace(newschema);
-
- AlterObjectNamespace(rel, OPFAMILYOID, -1,
- opfamilyOid, nspOid,
- Anum_pg_opfamily_opfname,
- Anum_pg_opfamily_opfnamespace,
- Anum_pg_opfamily_opfowner,
- ACL_KIND_OPFAMILY);
-
- heap_close(rel, RowExclusiveLock);
-}
-
-Oid
-AlterOpFamilyNamespace_oid(Oid opfamilyOid, Oid newNspOid)
-{
- Oid oldNspOid;
- Relation rel;
-
- rel = heap_open(OperatorFamilyRelationId, RowExclusiveLock);
-
- oldNspOid =
- AlterObjectNamespace(rel, OPFAMILYOID, -1,
- opfamilyOid, newNspOid,
- Anum_pg_opfamily_opfname,
- Anum_pg_opfamily_opfnamespace,
- Anum_pg_opfamily_opfowner,
- ACL_KIND_OPFAMILY);
-
- heap_close(rel, RowExclusiveLock);
-
- return oldNspOid;
-}
diff --git a/src/backend/commands/operatorcmds.c b/src/backend/commands/operatorcmds.c
index e0ac0e113b4..0d8dbe4a869 100644
--- a/src/backend/commands/operatorcmds.c
+++ b/src/backend/commands/operatorcmds.c
@@ -423,56 +423,3 @@ AlterOperatorOwner_internal(Relation rel, Oid operOid, Oid newOwnerId)
heap_freetuple(tup);
}
-
-/*
- * Execute ALTER OPERATOR SET SCHEMA
- */
-void
-AlterOperatorNamespace(List *names, List *argtypes, const char *newschema)
-{
- List *operatorName = names;
- TypeName *typeName1 = (TypeName *) linitial(argtypes);
- TypeName *typeName2 = (TypeName *) lsecond(argtypes);
- Oid operOid,
- nspOid;
- Relation rel;
-
- rel = heap_open(OperatorRelationId, RowExclusiveLock);
-
- Assert(list_length(argtypes) == 2);
- operOid = LookupOperNameTypeNames(NULL, operatorName,
- typeName1, typeName2,
- false, -1);
-
- /* get schema OID */
- nspOid = LookupCreationNamespace(newschema);
-
- AlterObjectNamespace(rel, OPEROID, -1,
- operOid, nspOid,
- Anum_pg_operator_oprname,
- Anum_pg_operator_oprnamespace,
- Anum_pg_operator_oprowner,
- ACL_KIND_OPER);
-
- heap_close(rel, RowExclusiveLock);
-}
-
-Oid
-AlterOperatorNamespace_oid(Oid operOid, Oid newNspOid)
-{
- Oid oldNspOid;
- Relation rel;
-
- rel = heap_open(OperatorRelationId, RowExclusiveLock);
-
- oldNspOid = AlterObjectNamespace(rel, OPEROID, -1,
- operOid, newNspOid,
- Anum_pg_operator_oprname,
- Anum_pg_operator_oprnamespace,
- Anum_pg_operator_oprowner,
- ACL_KIND_OPER);
-
- heap_close(rel, RowExclusiveLock);
-
- return oldNspOid;
-}
diff --git a/src/backend/commands/tsearchcmds.c b/src/backend/commands/tsearchcmds.c
index 487c7fb1a25..8d2b4c09c93 100644
--- a/src/backend/commands/tsearchcmds.c
+++ b/src/backend/commands/tsearchcmds.c
@@ -346,52 +346,6 @@ RenameTSParser(List *oldname, const char *newname)
heap_freetuple(tup);
}
-/*
- * ALTER TEXT SEARCH PARSER any_name SET SCHEMA name
- */
-void
-AlterTSParserNamespace(List *name, const char *newschema)
-{
- Oid prsId,
- nspOid;
- Relation rel;
-
- rel = heap_open(TSParserRelationId, RowExclusiveLock);
-
- prsId = get_ts_parser_oid(name, false);
-
- /* get schema OID */
- nspOid = LookupCreationNamespace(newschema);
-
- AlterObjectNamespace(rel, TSPARSEROID, TSPARSERNAMENSP,
- prsId, nspOid,
- Anum_pg_ts_parser_prsname,
- Anum_pg_ts_parser_prsnamespace,
- -1, -1);
-
- heap_close(rel, RowExclusiveLock);
-}
-
-Oid
-AlterTSParserNamespace_oid(Oid prsId, Oid newNspOid)
-{
- Oid oldNspOid;
- Relation rel;
-
- rel = heap_open(TSParserRelationId, RowExclusiveLock);
-
- oldNspOid =
- AlterObjectNamespace(rel, TSPARSEROID, TSPARSERNAMENSP,
- prsId, newNspOid,
- Anum_pg_ts_parser_prsname,
- Anum_pg_ts_parser_prsnamespace,
- -1, -1);
-
- heap_close(rel, RowExclusiveLock);
-
- return oldNspOid;
-}
-
/* ---------------------- TS Dictionary commands -----------------------*/
/*
@@ -626,54 +580,6 @@ RenameTSDictionary(List *oldname, const char *newname)
}
/*
- * ALTER TEXT SEARCH DICTIONARY any_name SET SCHEMA name
- */
-void
-AlterTSDictionaryNamespace(List *name, const char *newschema)
-{
- Oid dictId,
- nspOid;
- Relation rel;
-
- rel = heap_open(TSDictionaryRelationId, RowExclusiveLock);
-
- dictId = get_ts_dict_oid(name, false);
-
- /* get schema OID */
- nspOid = LookupCreationNamespace(newschema);
-
- AlterObjectNamespace(rel, TSDICTOID, TSDICTNAMENSP,
- dictId, nspOid,
- Anum_pg_ts_dict_dictname,
- Anum_pg_ts_dict_dictnamespace,
- Anum_pg_ts_dict_dictowner,
- ACL_KIND_TSDICTIONARY);
-
- heap_close(rel, RowExclusiveLock);
-}
-
-Oid
-AlterTSDictionaryNamespace_oid(Oid dictId, Oid newNspOid)
-{
- Oid oldNspOid;
- Relation rel;
-
- rel = heap_open(TSDictionaryRelationId, RowExclusiveLock);
-
- oldNspOid =
- AlterObjectNamespace(rel, TSDICTOID, TSDICTNAMENSP,
- dictId, newNspOid,
- Anum_pg_ts_dict_dictname,
- Anum_pg_ts_dict_dictnamespace,
- Anum_pg_ts_dict_dictowner,
- ACL_KIND_TSDICTIONARY);
-
- heap_close(rel, RowExclusiveLock);
-
- return oldNspOid;
-}
-
-/*
* Guts of TS dictionary deletion.
*/
void
@@ -1091,52 +997,6 @@ RenameTSTemplate(List *oldname, const char *newname)
}
/*
- * ALTER TEXT SEARCH TEMPLATE any_name SET SCHEMA name
- */
-void
-AlterTSTemplateNamespace(List *name, const char *newschema)
-{
- Oid tmplId,
- nspOid;
- Relation rel;
-
- rel = heap_open(TSTemplateRelationId, RowExclusiveLock);
-
- tmplId = get_ts_template_oid(name, false);
-
- /* get schema OID */
- nspOid = LookupCreationNamespace(newschema);
-
- AlterObjectNamespace(rel, TSTEMPLATEOID, TSTEMPLATENAMENSP,
- tmplId, nspOid,
- Anum_pg_ts_template_tmplname,
- Anum_pg_ts_template_tmplnamespace,
- -1, -1);
-
- heap_close(rel, RowExclusiveLock);
-}
-
-Oid
-AlterTSTemplateNamespace_oid(Oid tmplId, Oid newNspOid)
-{
- Oid oldNspOid;
- Relation rel;
-
- rel = heap_open(TSTemplateRelationId, RowExclusiveLock);
-
- oldNspOid =
- AlterObjectNamespace(rel, TSTEMPLATEOID, TSTEMPLATENAMENSP,
- tmplId, newNspOid,
- Anum_pg_ts_template_tmplname,
- Anum_pg_ts_template_tmplnamespace,
- -1, -1);
-
- heap_close(rel, RowExclusiveLock);
-
- return oldNspOid;
-}
-
-/*
* Guts of TS template deletion.
*/
void
@@ -1483,54 +1343,6 @@ RenameTSConfiguration(List *oldname, const char *newname)
}
/*
- * ALTER TEXT SEARCH CONFIGURATION any_name SET SCHEMA name
- */
-void
-AlterTSConfigurationNamespace(List *name, const char *newschema)
-{
- Oid cfgId,
- nspOid;
- Relation rel;
-
- rel = heap_open(TSConfigRelationId, RowExclusiveLock);
-
- cfgId = get_ts_config_oid(name, false);
-
- /* get schema OID */
- nspOid = LookupCreationNamespace(newschema);
-
- AlterObjectNamespace(rel, TSCONFIGOID, TSCONFIGNAMENSP,
- cfgId, nspOid,
- Anum_pg_ts_config_cfgname,
- Anum_pg_ts_config_cfgnamespace,
- Anum_pg_ts_config_cfgowner,
- ACL_KIND_TSCONFIGURATION);
-
- heap_close(rel, RowExclusiveLock);
-}
-
-Oid
-AlterTSConfigurationNamespace_oid(Oid cfgId, Oid newNspOid)
-{
- Oid oldNspOid;
- Relation rel;
-
- rel = heap_open(TSConfigRelationId, RowExclusiveLock);
-
- oldNspOid =
- AlterObjectNamespace(rel, TSCONFIGOID, TSCONFIGNAMENSP,
- cfgId, newNspOid,
- Anum_pg_ts_config_cfgname,
- Anum_pg_ts_config_cfgnamespace,
- Anum_pg_ts_config_cfgowner,
- ACL_KIND_TSCONFIGURATION);
-
- heap_close(rel, RowExclusiveLock);
-
- return oldNspOid;
-}
-
-/*
* Guts of TS configuration deletion.
*/
void