48 bool nulls[Natts_pg_namespace];
58 elog(
ERROR,
"no namespace name supplied");
63 (
errcode(ERRCODE_DUPLICATE_SCHEMA),
64 errmsg(
"schema \"%s\" already exists", nspName)));
76 for (i = 0; i < Natts_pg_namespace; i++)
83 Anum_pg_namespace_oid);
86 values[Anum_pg_namespace_nspname - 1] =
NameGetDatum(&nname);
91 nulls[Anum_pg_namespace_nspacl - 1] =
true;
102 myself.
classId = NamespaceRelationId;
Oid GetNewOidWithIndex(Relation relation, Oid indexId, AttrNumber oidcolumn)
void table_close(Relation relation, LOCKMODE lockmode)
#define InvokeObjectPostCreateHook(classId, objectId, subId)
void namestrcpy(Name name, const char *str)
#define PointerGetDatum(X)
#define NamespaceOidIndexId
int errcode(int sqlerrcode)
HeapTuple heap_form_tuple(TupleDesc tupleDescriptor, Datum *values, bool *isnull)
void recordDependencyOnOwner(Oid classId, Oid objectId, Oid owner)
#define OidIsValid(objectId)
#define SearchSysCacheExists1(cacheId, key1)
#define ObjectIdGetDatum(X)
#define ereport(elevel,...)
#define Assert(condition)
void recordDependencyOnCurrentExtension(const ObjectAddress *object, bool isReplace)
void recordDependencyOnNewAcl(Oid classId, Oid objectId, int32 objsubId, Oid ownerId, Acl *acl)
static Datum values[MAXATTR]
int errmsg(const char *fmt,...)
Relation table_open(Oid relationId, LOCKMODE lockmode)
void CatalogTupleInsert(Relation heapRel, HeapTuple tup)
Acl * get_user_default_acl(ObjectType objtype, Oid ownerId, Oid nsp_oid)
Oid NamespaceCreate(const char *nspName, Oid ownerId, bool isTemp)