diff options
Diffstat (limited to 'src/backend/commands/typecmds.c')
-rw-r--r-- | src/backend/commands/typecmds.c | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c index 285a0be6436..1ffc8231d46 100644 --- a/src/backend/commands/typecmds.c +++ b/src/backend/commands/typecmds.c @@ -195,7 +195,7 @@ DefineType(ParseState *pstate, List *names, List *parameters) * Look to see if type already exists (presumably as a shell; if not, * TypeCreate will complain). */ - typoid = GetSysCacheOid2(TYPENAMENSP, + typoid = GetSysCacheOid2(TYPENAMENSP, Anum_pg_type_oid, CStringGetDatum(typeName), ObjectIdGetDatum(typeNamespace)); @@ -776,7 +776,7 @@ DefineDomain(CreateDomainStmt *stmt) * Check for collision with an existing type name. If there is one and * it's an autogenerated array, we can rename it out of the way. */ - old_type_oid = GetSysCacheOid2(TYPENAMENSP, + old_type_oid = GetSysCacheOid2(TYPENAMENSP, Anum_pg_type_oid, CStringGetDatum(domainName), ObjectIdGetDatum(domainNamespace)); if (OidIsValid(old_type_oid)) @@ -792,7 +792,7 @@ DefineDomain(CreateDomainStmt *stmt) */ typeTup = typenameType(NULL, stmt->typeName, &basetypeMod); baseType = (Form_pg_type) GETSTRUCT(typeTup); - basetypeoid = HeapTupleGetOid(typeTup); + basetypeoid = baseType->oid; /* * Base type must be a plain base type, a composite type, another domain, @@ -1175,7 +1175,7 @@ DefineEnum(CreateEnumStmt *stmt) * Check for collision with an existing type name. If there is one and * it's an autogenerated array, we can rename it out of the way. */ - old_type_oid = GetSysCacheOid2(TYPENAMENSP, + old_type_oid = GetSysCacheOid2(TYPENAMENSP, Anum_pg_type_oid, CStringGetDatum(enumName), ObjectIdGetDatum(enumNamespace)); if (OidIsValid(old_type_oid)) @@ -1330,11 +1330,11 @@ checkEnumOwner(HeapTuple tup) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("%s is not an enum", - format_type_be(HeapTupleGetOid(tup))))); + format_type_be(typTup->oid)))); /* Permission check: must own type */ - if (!pg_type_ownercheck(HeapTupleGetOid(tup), GetUserId())) - aclcheck_error_type(ACLCHECK_NOT_OWNER, HeapTupleGetOid(tup)); + if (!pg_type_ownercheck(typTup->oid, GetUserId())) + aclcheck_error_type(ACLCHECK_NOT_OWNER, typTup->oid); } @@ -1380,7 +1380,7 @@ DefineRange(CreateRangeStmt *stmt) /* * Look to see if type already exists. */ - typoid = GetSysCacheOid2(TYPENAMENSP, + typoid = GetSysCacheOid2(TYPENAMENSP, Anum_pg_type_oid, CStringGetDatum(typeName), ObjectIdGetDatum(typeNamespace)); @@ -2090,7 +2090,8 @@ AssignTypeArrayOid(void) { Relation pg_type = heap_open(TypeRelationId, AccessShareLock); - type_array_oid = GetNewOid(pg_type); + type_array_oid = GetNewOidWithIndex(pg_type, TypeOidIndexId, + Anum_pg_type_oid); heap_close(pg_type, AccessShareLock); } @@ -2142,7 +2143,7 @@ DefineCompositeType(RangeVar *typevar, List *coldeflist) NoLock, NULL); RangeVarAdjustRelationPersistence(createStmt->relation, typeNamespace); old_type_oid = - GetSysCacheOid2(TYPENAMENSP, + GetSysCacheOid2(TYPENAMENSP, Anum_pg_type_oid, CStringGetDatum(createStmt->relation->relname), ObjectIdGetDatum(typeNamespace)); if (OidIsValid(old_type_oid)) @@ -2482,7 +2483,7 @@ AlterDomainDropConstraint(List *names, const char *constrName, ObjectAddress conobj; conobj.classId = ConstraintRelationId; - conobj.objectId = HeapTupleGetOid(contup); + conobj.objectId = ((Form_pg_constraint) GETSTRUCT(contup))->oid; conobj.objectSubId = 0; performDeletion(&conobj, behavior, 0); @@ -2700,7 +2701,7 @@ AlterDomainValidateConstraint(List *names, const char *constrName) &isnull); if (isnull) elog(ERROR, "null conbin for constraint %u", - HeapTupleGetOid(tuple)); + con->oid); conbin = TextDatumGetCString(val); validateDomainConstraint(domainoid, conbin); @@ -2713,8 +2714,7 @@ AlterDomainValidateConstraint(List *names, const char *constrName) copy_con->convalidated = true; CatalogTupleUpdate(conrel, ©Tuple->t_self, copyTuple); - InvokeObjectPostAlterHook(ConstraintRelationId, - HeapTupleGetOid(copyTuple), 0); + InvokeObjectPostAlterHook(ConstraintRelationId, con->oid, 0); ObjectAddressSet(address, TypeRelationId, domainoid); @@ -3027,11 +3027,11 @@ checkDomainOwner(HeapTuple tup) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("%s is not a domain", - format_type_be(HeapTupleGetOid(tup))))); + format_type_be(typTup->oid)))); /* Permission check: must own type */ - if (!pg_type_ownercheck(HeapTupleGetOid(tup), GetUserId())) - aclcheck_error_type(ACLCHECK_NOT_OWNER, HeapTupleGetOid(tup)); + if (!pg_type_ownercheck(typTup->oid, GetUserId())) + aclcheck_error_type(ACLCHECK_NOT_OWNER, typTup->oid); } /* @@ -3342,8 +3342,8 @@ AlterTypeOwner(List *names, Oid newOwnerId, ObjectType objecttype) if (!superuser()) { /* Otherwise, must be owner of the existing object */ - if (!pg_type_ownercheck(HeapTupleGetOid(tup), GetUserId())) - aclcheck_error_type(ACLCHECK_NOT_OWNER, HeapTupleGetOid(tup)); + if (!pg_type_ownercheck(typTup->oid, GetUserId())) + aclcheck_error_type(ACLCHECK_NOT_OWNER, typTup->oid); /* Must be able to become new owner */ check_is_member_of_role(GetUserId(), newOwnerId); |