mirror of
https://github.com/postgres/postgres.git
synced 2025-11-06 07:49:08 +03:00
Tweak catalog indexing abstraction for upcoming WARM
Split the existing CatalogUpdateIndexes into two different routines, CatalogTupleInsert and CatalogTupleUpdate, which do both the heap insert/update plus the index update. This removes over 300 lines of boilerplate code all over src/backend/catalog/ and src/backend/commands. The resulting code is much more pleasing to the eye. Also, by encapsulating what happens in detail during an UPDATE, this facilitates the upcoming WARM patch, which is going to add a few more lines to the update case making the boilerplate even more boring. The original CatalogUpdateIndexes is removed; there was only one use left, and since it's just three lines, we can as well expand it in place there. We could keep it, but WARM is going to break all the UPDATE out-of-core callsites anyway, so there seems to be no benefit in doing so. Author: Pavan Deolasee Discussion: https://www.postgr.es/m/CABOikdOcFYSZ4vA2gYfs=M2cdXzXX4qGHeEiW3fu9PCfkHLa2A@mail.gmail.com
This commit is contained in:
@@ -284,8 +284,7 @@ AlterObjectRename_internal(Relation rel, Oid objectId, const char *new_name)
|
||||
values, nulls, replaces);
|
||||
|
||||
/* Perform actual update */
|
||||
simple_heap_update(rel, &oldtup->t_self, newtup);
|
||||
CatalogUpdateIndexes(rel, newtup);
|
||||
CatalogTupleUpdate(rel, &oldtup->t_self, newtup);
|
||||
|
||||
InvokeObjectPostAlterHook(classId, objectId, 0);
|
||||
|
||||
@@ -722,8 +721,7 @@ AlterObjectNamespace_internal(Relation rel, Oid objid, Oid nspOid)
|
||||
values, nulls, replaces);
|
||||
|
||||
/* Perform actual update */
|
||||
simple_heap_update(rel, &tup->t_self, newtup);
|
||||
CatalogUpdateIndexes(rel, newtup);
|
||||
CatalogTupleUpdate(rel, &tup->t_self, newtup);
|
||||
|
||||
/* Release memory */
|
||||
pfree(values);
|
||||
@@ -954,8 +952,7 @@ AlterObjectOwner_internal(Relation rel, Oid objectId, Oid new_ownerId)
|
||||
values, nulls, replaces);
|
||||
|
||||
/* Perform actual update */
|
||||
simple_heap_update(rel, &newtup->t_self, newtup);
|
||||
CatalogUpdateIndexes(rel, newtup);
|
||||
CatalogTupleUpdate(rel, &newtup->t_self, newtup);
|
||||
|
||||
/* Update owner dependency reference */
|
||||
if (classId == LargeObjectMetadataRelationId)
|
||||
|
||||
@@ -87,8 +87,7 @@ CreateAccessMethod(CreateAmStmt *stmt)
|
||||
|
||||
tup = heap_form_tuple(RelationGetDescr(rel), values, nulls);
|
||||
|
||||
amoid = simple_heap_insert(rel, tup);
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
amoid = CatalogTupleInsert(rel, tup);
|
||||
heap_freetuple(tup);
|
||||
|
||||
myself.classId = AccessMethodRelationId;
|
||||
|
||||
@@ -1589,18 +1589,15 @@ update_attstats(Oid relid, bool inh, int natts, VacAttrStats **vacattrstats)
|
||||
nulls,
|
||||
replaces);
|
||||
ReleaseSysCache(oldtup);
|
||||
simple_heap_update(sd, &stup->t_self, stup);
|
||||
CatalogTupleUpdate(sd, &stup->t_self, stup);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* No, insert new tuple */
|
||||
stup = heap_form_tuple(RelationGetDescr(sd), values, nulls);
|
||||
simple_heap_insert(sd, stup);
|
||||
CatalogTupleInsert(sd, stup);
|
||||
}
|
||||
|
||||
/* update indexes too */
|
||||
CatalogUpdateIndexes(sd, stup);
|
||||
|
||||
heap_freetuple(stup);
|
||||
}
|
||||
|
||||
|
||||
@@ -523,8 +523,7 @@ mark_index_clustered(Relation rel, Oid indexOid, bool is_internal)
|
||||
if (indexForm->indisclustered)
|
||||
{
|
||||
indexForm->indisclustered = false;
|
||||
simple_heap_update(pg_index, &indexTuple->t_self, indexTuple);
|
||||
CatalogUpdateIndexes(pg_index, indexTuple);
|
||||
CatalogTupleUpdate(pg_index, &indexTuple->t_self, indexTuple);
|
||||
}
|
||||
else if (thisIndexOid == indexOid)
|
||||
{
|
||||
@@ -532,8 +531,7 @@ mark_index_clustered(Relation rel, Oid indexOid, bool is_internal)
|
||||
if (!IndexIsValid(indexForm))
|
||||
elog(ERROR, "cannot cluster on invalid index %u", indexOid);
|
||||
indexForm->indisclustered = true;
|
||||
simple_heap_update(pg_index, &indexTuple->t_self, indexTuple);
|
||||
CatalogUpdateIndexes(pg_index, indexTuple);
|
||||
CatalogTupleUpdate(pg_index, &indexTuple->t_self, indexTuple);
|
||||
}
|
||||
|
||||
InvokeObjectPostAlterHookArg(IndexRelationId, thisIndexOid, 0,
|
||||
@@ -1558,8 +1556,7 @@ finish_heap_swap(Oid OIDOldHeap, Oid OIDNewHeap,
|
||||
relform->relfrozenxid = frozenXid;
|
||||
relform->relminmxid = cutoffMulti;
|
||||
|
||||
simple_heap_update(relRelation, &reltup->t_self, reltup);
|
||||
CatalogUpdateIndexes(relRelation, reltup);
|
||||
CatalogTupleUpdate(relRelation, &reltup->t_self, reltup);
|
||||
|
||||
heap_close(relRelation, RowExclusiveLock);
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ CreateComments(Oid oid, Oid classoid, int32 subid, char *comment)
|
||||
{
|
||||
newtuple = heap_modify_tuple(oldtuple, RelationGetDescr(description), values,
|
||||
nulls, replaces);
|
||||
simple_heap_update(description, &oldtuple->t_self, newtuple);
|
||||
CatalogTupleUpdate(description, &oldtuple->t_self, newtuple);
|
||||
}
|
||||
|
||||
break; /* Assume there can be only one match */
|
||||
@@ -213,15 +213,11 @@ CreateComments(Oid oid, Oid classoid, int32 subid, char *comment)
|
||||
{
|
||||
newtuple = heap_form_tuple(RelationGetDescr(description),
|
||||
values, nulls);
|
||||
simple_heap_insert(description, newtuple);
|
||||
CatalogTupleInsert(description, newtuple);
|
||||
}
|
||||
|
||||
/* Update indexes, if necessary */
|
||||
if (newtuple != NULL)
|
||||
{
|
||||
CatalogUpdateIndexes(description, newtuple);
|
||||
heap_freetuple(newtuple);
|
||||
}
|
||||
|
||||
/* Done */
|
||||
|
||||
@@ -293,7 +289,7 @@ CreateSharedComments(Oid oid, Oid classoid, char *comment)
|
||||
{
|
||||
newtuple = heap_modify_tuple(oldtuple, RelationGetDescr(shdescription),
|
||||
values, nulls, replaces);
|
||||
simple_heap_update(shdescription, &oldtuple->t_self, newtuple);
|
||||
CatalogTupleUpdate(shdescription, &oldtuple->t_self, newtuple);
|
||||
}
|
||||
|
||||
break; /* Assume there can be only one match */
|
||||
@@ -307,15 +303,11 @@ CreateSharedComments(Oid oid, Oid classoid, char *comment)
|
||||
{
|
||||
newtuple = heap_form_tuple(RelationGetDescr(shdescription),
|
||||
values, nulls);
|
||||
simple_heap_insert(shdescription, newtuple);
|
||||
CatalogTupleInsert(shdescription, newtuple);
|
||||
}
|
||||
|
||||
/* Update indexes, if necessary */
|
||||
if (newtuple != NULL)
|
||||
{
|
||||
CatalogUpdateIndexes(shdescription, newtuple);
|
||||
heap_freetuple(newtuple);
|
||||
}
|
||||
|
||||
/* Done */
|
||||
|
||||
|
||||
@@ -546,10 +546,7 @@ createdb(ParseState *pstate, const CreatedbStmt *stmt)
|
||||
|
||||
HeapTupleSetOid(tuple, dboid);
|
||||
|
||||
simple_heap_insert(pg_database_rel, tuple);
|
||||
|
||||
/* Update indexes */
|
||||
CatalogUpdateIndexes(pg_database_rel, tuple);
|
||||
CatalogTupleInsert(pg_database_rel, tuple);
|
||||
|
||||
/*
|
||||
* Now generate additional catalog entries associated with the new DB
|
||||
@@ -1040,8 +1037,7 @@ RenameDatabase(const char *oldname, const char *newname)
|
||||
if (!HeapTupleIsValid(newtup))
|
||||
elog(ERROR, "cache lookup failed for database %u", db_id);
|
||||
namestrcpy(&(((Form_pg_database) GETSTRUCT(newtup))->datname), newname);
|
||||
simple_heap_update(rel, &newtup->t_self, newtup);
|
||||
CatalogUpdateIndexes(rel, newtup);
|
||||
CatalogTupleUpdate(rel, &newtup->t_self, newtup);
|
||||
|
||||
InvokeObjectPostAlterHook(DatabaseRelationId, db_id, 0);
|
||||
|
||||
@@ -1296,10 +1292,7 @@ movedb(const char *dbname, const char *tblspcname)
|
||||
newtuple = heap_modify_tuple(oldtuple, RelationGetDescr(pgdbrel),
|
||||
new_record,
|
||||
new_record_nulls, new_record_repl);
|
||||
simple_heap_update(pgdbrel, &oldtuple->t_self, newtuple);
|
||||
|
||||
/* Update indexes */
|
||||
CatalogUpdateIndexes(pgdbrel, newtuple);
|
||||
CatalogTupleUpdate(pgdbrel, &oldtuple->t_self, newtuple);
|
||||
|
||||
InvokeObjectPostAlterHook(DatabaseRelationId,
|
||||
HeapTupleGetOid(newtuple), 0);
|
||||
@@ -1554,10 +1547,7 @@ AlterDatabase(ParseState *pstate, AlterDatabaseStmt *stmt, bool isTopLevel)
|
||||
|
||||
newtuple = heap_modify_tuple(tuple, RelationGetDescr(rel), new_record,
|
||||
new_record_nulls, new_record_repl);
|
||||
simple_heap_update(rel, &tuple->t_self, newtuple);
|
||||
|
||||
/* Update indexes */
|
||||
CatalogUpdateIndexes(rel, newtuple);
|
||||
CatalogTupleUpdate(rel, &tuple->t_self, newtuple);
|
||||
|
||||
InvokeObjectPostAlterHook(DatabaseRelationId,
|
||||
HeapTupleGetOid(newtuple), 0);
|
||||
@@ -1692,8 +1682,7 @@ AlterDatabaseOwner(const char *dbname, Oid newOwnerId)
|
||||
}
|
||||
|
||||
newtuple = heap_modify_tuple(tuple, RelationGetDescr(rel), repl_val, repl_null, repl_repl);
|
||||
simple_heap_update(rel, &newtuple->t_self, newtuple);
|
||||
CatalogUpdateIndexes(rel, newtuple);
|
||||
CatalogTupleUpdate(rel, &newtuple->t_self, newtuple);
|
||||
|
||||
heap_freetuple(newtuple);
|
||||
|
||||
|
||||
@@ -405,8 +405,7 @@ insert_event_trigger_tuple(char *trigname, char *eventname, Oid evtOwner,
|
||||
|
||||
/* Insert heap tuple. */
|
||||
tuple = heap_form_tuple(tgrel->rd_att, values, nulls);
|
||||
trigoid = simple_heap_insert(tgrel, tuple);
|
||||
CatalogUpdateIndexes(tgrel, tuple);
|
||||
trigoid = CatalogTupleInsert(tgrel, tuple);
|
||||
heap_freetuple(tuple);
|
||||
|
||||
/* Depend on owner. */
|
||||
@@ -524,8 +523,7 @@ AlterEventTrigger(AlterEventTrigStmt *stmt)
|
||||
evtForm = (Form_pg_event_trigger) GETSTRUCT(tup);
|
||||
evtForm->evtenabled = tgenabled;
|
||||
|
||||
simple_heap_update(tgrel, &tup->t_self, tup);
|
||||
CatalogUpdateIndexes(tgrel, tup);
|
||||
CatalogTupleUpdate(tgrel, &tup->t_self, tup);
|
||||
|
||||
InvokeObjectPostAlterHook(EventTriggerRelationId,
|
||||
trigoid, 0);
|
||||
@@ -621,8 +619,7 @@ AlterEventTriggerOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
|
||||
errhint("The owner of an event trigger must be a superuser.")));
|
||||
|
||||
form->evtowner = newOwnerId;
|
||||
simple_heap_update(rel, &tup->t_self, tup);
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
CatalogTupleUpdate(rel, &tup->t_self, tup);
|
||||
|
||||
/* Update owner dependency reference */
|
||||
changeDependencyOnOwner(EventTriggerRelationId,
|
||||
|
||||
@@ -1773,8 +1773,7 @@ InsertExtensionTuple(const char *extName, Oid extOwner,
|
||||
|
||||
tuple = heap_form_tuple(rel->rd_att, values, nulls);
|
||||
|
||||
extensionOid = simple_heap_insert(rel, tuple);
|
||||
CatalogUpdateIndexes(rel, tuple);
|
||||
extensionOid = CatalogTupleInsert(rel, tuple);
|
||||
|
||||
heap_freetuple(tuple);
|
||||
heap_close(rel, RowExclusiveLock);
|
||||
@@ -2485,8 +2484,7 @@ pg_extension_config_dump(PG_FUNCTION_ARGS)
|
||||
extTup = heap_modify_tuple(extTup, RelationGetDescr(extRel),
|
||||
repl_val, repl_null, repl_repl);
|
||||
|
||||
simple_heap_update(extRel, &extTup->t_self, extTup);
|
||||
CatalogUpdateIndexes(extRel, extTup);
|
||||
CatalogTupleUpdate(extRel, &extTup->t_self, extTup);
|
||||
|
||||
systable_endscan(extScan);
|
||||
|
||||
@@ -2663,8 +2661,7 @@ extension_config_remove(Oid extensionoid, Oid tableoid)
|
||||
extTup = heap_modify_tuple(extTup, RelationGetDescr(extRel),
|
||||
repl_val, repl_null, repl_repl);
|
||||
|
||||
simple_heap_update(extRel, &extTup->t_self, extTup);
|
||||
CatalogUpdateIndexes(extRel, extTup);
|
||||
CatalogTupleUpdate(extRel, &extTup->t_self, extTup);
|
||||
|
||||
systable_endscan(extScan);
|
||||
|
||||
@@ -2844,8 +2841,7 @@ AlterExtensionNamespace(List *names, const char *newschema, Oid *oldschema)
|
||||
/* Now adjust pg_extension.extnamespace */
|
||||
extForm->extnamespace = nspOid;
|
||||
|
||||
simple_heap_update(extRel, &extTup->t_self, extTup);
|
||||
CatalogUpdateIndexes(extRel, extTup);
|
||||
CatalogTupleUpdate(extRel, &extTup->t_self, extTup);
|
||||
|
||||
heap_close(extRel, RowExclusiveLock);
|
||||
|
||||
@@ -3091,8 +3087,7 @@ ApplyExtensionUpdates(Oid extensionOid,
|
||||
extTup = heap_modify_tuple(extTup, RelationGetDescr(extRel),
|
||||
values, nulls, repl);
|
||||
|
||||
simple_heap_update(extRel, &extTup->t_self, extTup);
|
||||
CatalogUpdateIndexes(extRel, extTup);
|
||||
CatalogTupleUpdate(extRel, &extTup->t_self, extTup);
|
||||
|
||||
systable_endscan(extScan);
|
||||
|
||||
|
||||
@@ -256,8 +256,7 @@ AlterForeignDataWrapperOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerI
|
||||
tup = heap_modify_tuple(tup, RelationGetDescr(rel), repl_val, repl_null,
|
||||
repl_repl);
|
||||
|
||||
simple_heap_update(rel, &tup->t_self, tup);
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
CatalogTupleUpdate(rel, &tup->t_self, tup);
|
||||
|
||||
/* Update owner dependency reference */
|
||||
changeDependencyOnOwner(ForeignDataWrapperRelationId,
|
||||
@@ -397,8 +396,7 @@ AlterForeignServerOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
|
||||
tup = heap_modify_tuple(tup, RelationGetDescr(rel), repl_val, repl_null,
|
||||
repl_repl);
|
||||
|
||||
simple_heap_update(rel, &tup->t_self, tup);
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
CatalogTupleUpdate(rel, &tup->t_self, tup);
|
||||
|
||||
/* Update owner dependency reference */
|
||||
changeDependencyOnOwner(ForeignServerRelationId, HeapTupleGetOid(tup),
|
||||
@@ -629,8 +627,7 @@ CreateForeignDataWrapper(CreateFdwStmt *stmt)
|
||||
|
||||
tuple = heap_form_tuple(rel->rd_att, values, nulls);
|
||||
|
||||
fdwId = simple_heap_insert(rel, tuple);
|
||||
CatalogUpdateIndexes(rel, tuple);
|
||||
fdwId = CatalogTupleInsert(rel, tuple);
|
||||
|
||||
heap_freetuple(tuple);
|
||||
|
||||
@@ -786,8 +783,7 @@ AlterForeignDataWrapper(AlterFdwStmt *stmt)
|
||||
tp = heap_modify_tuple(tp, RelationGetDescr(rel),
|
||||
repl_val, repl_null, repl_repl);
|
||||
|
||||
simple_heap_update(rel, &tp->t_self, tp);
|
||||
CatalogUpdateIndexes(rel, tp);
|
||||
CatalogTupleUpdate(rel, &tp->t_self, tp);
|
||||
|
||||
heap_freetuple(tp);
|
||||
|
||||
@@ -941,9 +937,7 @@ CreateForeignServer(CreateForeignServerStmt *stmt)
|
||||
|
||||
tuple = heap_form_tuple(rel->rd_att, values, nulls);
|
||||
|
||||
srvId = simple_heap_insert(rel, tuple);
|
||||
|
||||
CatalogUpdateIndexes(rel, tuple);
|
||||
srvId = CatalogTupleInsert(rel, tuple);
|
||||
|
||||
heap_freetuple(tuple);
|
||||
|
||||
@@ -1056,8 +1050,7 @@ AlterForeignServer(AlterForeignServerStmt *stmt)
|
||||
tp = heap_modify_tuple(tp, RelationGetDescr(rel),
|
||||
repl_val, repl_null, repl_repl);
|
||||
|
||||
simple_heap_update(rel, &tp->t_self, tp);
|
||||
CatalogUpdateIndexes(rel, tp);
|
||||
CatalogTupleUpdate(rel, &tp->t_self, tp);
|
||||
|
||||
InvokeObjectPostAlterHook(ForeignServerRelationId, srvId, 0);
|
||||
|
||||
@@ -1190,9 +1183,7 @@ CreateUserMapping(CreateUserMappingStmt *stmt)
|
||||
|
||||
tuple = heap_form_tuple(rel->rd_att, values, nulls);
|
||||
|
||||
umId = simple_heap_insert(rel, tuple);
|
||||
|
||||
CatalogUpdateIndexes(rel, tuple);
|
||||
umId = CatalogTupleInsert(rel, tuple);
|
||||
|
||||
heap_freetuple(tuple);
|
||||
|
||||
@@ -1307,8 +1298,7 @@ AlterUserMapping(AlterUserMappingStmt *stmt)
|
||||
tp = heap_modify_tuple(tp, RelationGetDescr(rel),
|
||||
repl_val, repl_null, repl_repl);
|
||||
|
||||
simple_heap_update(rel, &tp->t_self, tp);
|
||||
CatalogUpdateIndexes(rel, tp);
|
||||
CatalogTupleUpdate(rel, &tp->t_self, tp);
|
||||
|
||||
ObjectAddressSet(address, UserMappingRelationId, umId);
|
||||
|
||||
@@ -1484,8 +1474,7 @@ CreateForeignTable(CreateForeignTableStmt *stmt, Oid relid)
|
||||
|
||||
tuple = heap_form_tuple(ftrel->rd_att, values, nulls);
|
||||
|
||||
simple_heap_insert(ftrel, tuple);
|
||||
CatalogUpdateIndexes(ftrel, tuple);
|
||||
CatalogTupleInsert(ftrel, tuple);
|
||||
|
||||
heap_freetuple(tuple);
|
||||
|
||||
|
||||
@@ -1292,8 +1292,7 @@ AlterFunction(ParseState *pstate, AlterFunctionStmt *stmt)
|
||||
procForm->proparallel = interpret_func_parallel(parallel_item);
|
||||
|
||||
/* Do the update */
|
||||
simple_heap_update(rel, &tup->t_self, tup);
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
CatalogTupleUpdate(rel, &tup->t_self, tup);
|
||||
|
||||
InvokeObjectPostAlterHook(ProcedureRelationId, funcOid, 0);
|
||||
|
||||
@@ -1333,9 +1332,7 @@ SetFunctionReturnType(Oid funcOid, Oid newRetType)
|
||||
procForm->prorettype = newRetType;
|
||||
|
||||
/* update the catalog and its indexes */
|
||||
simple_heap_update(pg_proc_rel, &tup->t_self, tup);
|
||||
|
||||
CatalogUpdateIndexes(pg_proc_rel, tup);
|
||||
CatalogTupleUpdate(pg_proc_rel, &tup->t_self, tup);
|
||||
|
||||
heap_close(pg_proc_rel, RowExclusiveLock);
|
||||
}
|
||||
@@ -1368,9 +1365,7 @@ SetFunctionArgType(Oid funcOid, int argIndex, Oid newArgType)
|
||||
procForm->proargtypes.values[argIndex] = newArgType;
|
||||
|
||||
/* update the catalog and its indexes */
|
||||
simple_heap_update(pg_proc_rel, &tup->t_self, tup);
|
||||
|
||||
CatalogUpdateIndexes(pg_proc_rel, tup);
|
||||
CatalogTupleUpdate(pg_proc_rel, &tup->t_self, tup);
|
||||
|
||||
heap_close(pg_proc_rel, RowExclusiveLock);
|
||||
}
|
||||
@@ -1656,9 +1651,7 @@ CreateCast(CreateCastStmt *stmt)
|
||||
|
||||
tuple = heap_form_tuple(RelationGetDescr(relation), values, nulls);
|
||||
|
||||
castid = simple_heap_insert(relation, tuple);
|
||||
|
||||
CatalogUpdateIndexes(relation, tuple);
|
||||
castid = CatalogTupleInsert(relation, tuple);
|
||||
|
||||
/* make dependency entries */
|
||||
myself.classId = CastRelationId;
|
||||
@@ -1921,7 +1914,7 @@ CreateTransform(CreateTransformStmt *stmt)
|
||||
replaces[Anum_pg_transform_trftosql - 1] = true;
|
||||
|
||||
newtuple = heap_modify_tuple(tuple, RelationGetDescr(relation), values, nulls, replaces);
|
||||
simple_heap_update(relation, &newtuple->t_self, newtuple);
|
||||
CatalogTupleUpdate(relation, &newtuple->t_self, newtuple);
|
||||
|
||||
transformid = HeapTupleGetOid(tuple);
|
||||
ReleaseSysCache(tuple);
|
||||
@@ -1930,12 +1923,10 @@ CreateTransform(CreateTransformStmt *stmt)
|
||||
else
|
||||
{
|
||||
newtuple = heap_form_tuple(RelationGetDescr(relation), values, nulls);
|
||||
transformid = simple_heap_insert(relation, newtuple);
|
||||
transformid = CatalogTupleInsert(relation, newtuple);
|
||||
is_replace = false;
|
||||
}
|
||||
|
||||
CatalogUpdateIndexes(relation, newtuple);
|
||||
|
||||
if (is_replace)
|
||||
deleteDependencyRecordsFor(TransformRelationId, transformid, true);
|
||||
|
||||
|
||||
@@ -100,9 +100,7 @@ SetMatViewPopulatedState(Relation relation, bool newstate)
|
||||
|
||||
((Form_pg_class) GETSTRUCT(tuple))->relispopulated = newstate;
|
||||
|
||||
simple_heap_update(pgrel, &tuple->t_self, tuple);
|
||||
|
||||
CatalogUpdateIndexes(pgrel, tuple);
|
||||
CatalogTupleUpdate(pgrel, &tuple->t_self, tuple);
|
||||
|
||||
heap_freetuple(tuple);
|
||||
heap_close(pgrel, RowExclusiveLock);
|
||||
|
||||
@@ -278,9 +278,7 @@ CreateOpFamily(char *amname, char *opfname, Oid namespaceoid, Oid amoid)
|
||||
|
||||
tup = heap_form_tuple(rel->rd_att, values, nulls);
|
||||
|
||||
opfamilyoid = simple_heap_insert(rel, tup);
|
||||
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
opfamilyoid = CatalogTupleInsert(rel, tup);
|
||||
|
||||
heap_freetuple(tup);
|
||||
|
||||
@@ -654,9 +652,7 @@ DefineOpClass(CreateOpClassStmt *stmt)
|
||||
|
||||
tup = heap_form_tuple(rel->rd_att, values, nulls);
|
||||
|
||||
opclassoid = simple_heap_insert(rel, tup);
|
||||
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
opclassoid = CatalogTupleInsert(rel, tup);
|
||||
|
||||
heap_freetuple(tup);
|
||||
|
||||
@@ -1327,9 +1323,7 @@ storeOperators(List *opfamilyname, Oid amoid,
|
||||
|
||||
tup = heap_form_tuple(rel->rd_att, values, nulls);
|
||||
|
||||
entryoid = simple_heap_insert(rel, tup);
|
||||
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
entryoid = CatalogTupleInsert(rel, tup);
|
||||
|
||||
heap_freetuple(tup);
|
||||
|
||||
@@ -1438,9 +1432,7 @@ storeProcedures(List *opfamilyname, Oid amoid,
|
||||
|
||||
tup = heap_form_tuple(rel->rd_att, values, nulls);
|
||||
|
||||
entryoid = simple_heap_insert(rel, tup);
|
||||
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
entryoid = CatalogTupleInsert(rel, tup);
|
||||
|
||||
heap_freetuple(tup);
|
||||
|
||||
|
||||
@@ -518,8 +518,7 @@ AlterOperator(AlterOperatorStmt *stmt)
|
||||
tup = heap_modify_tuple(tup, RelationGetDescr(catalog),
|
||||
values, nulls, replaces);
|
||||
|
||||
simple_heap_update(catalog, &tup->t_self, tup);
|
||||
CatalogUpdateIndexes(catalog, tup);
|
||||
CatalogTupleUpdate(catalog, &tup->t_self, tup);
|
||||
|
||||
address = makeOperatorDependencies(tup, true);
|
||||
|
||||
|
||||
@@ -614,10 +614,7 @@ RemoveRoleFromObjectPolicy(Oid roleid, Oid classid, Oid policy_id)
|
||||
new_tuple = heap_modify_tuple(tuple,
|
||||
RelationGetDescr(pg_policy_rel),
|
||||
values, isnull, replaces);
|
||||
simple_heap_update(pg_policy_rel, &new_tuple->t_self, new_tuple);
|
||||
|
||||
/* Update Catalog Indexes */
|
||||
CatalogUpdateIndexes(pg_policy_rel, new_tuple);
|
||||
CatalogTupleUpdate(pg_policy_rel, &new_tuple->t_self, new_tuple);
|
||||
|
||||
/* Remove all old dependencies. */
|
||||
deleteDependencyRecordsFor(PolicyRelationId, policy_id, false);
|
||||
@@ -823,10 +820,7 @@ CreatePolicy(CreatePolicyStmt *stmt)
|
||||
policy_tuple = heap_form_tuple(RelationGetDescr(pg_policy_rel), values,
|
||||
isnull);
|
||||
|
||||
policy_id = simple_heap_insert(pg_policy_rel, policy_tuple);
|
||||
|
||||
/* Update Indexes */
|
||||
CatalogUpdateIndexes(pg_policy_rel, policy_tuple);
|
||||
policy_id = CatalogTupleInsert(pg_policy_rel, policy_tuple);
|
||||
|
||||
/* Record Dependencies */
|
||||
target.classId = RelationRelationId;
|
||||
@@ -1150,10 +1144,7 @@ AlterPolicy(AlterPolicyStmt *stmt)
|
||||
new_tuple = heap_modify_tuple(policy_tuple,
|
||||
RelationGetDescr(pg_policy_rel),
|
||||
values, isnull, replaces);
|
||||
simple_heap_update(pg_policy_rel, &new_tuple->t_self, new_tuple);
|
||||
|
||||
/* Update Catalog Indexes */
|
||||
CatalogUpdateIndexes(pg_policy_rel, new_tuple);
|
||||
CatalogTupleUpdate(pg_policy_rel, &new_tuple->t_self, new_tuple);
|
||||
|
||||
/* Update Dependencies. */
|
||||
deleteDependencyRecordsFor(PolicyRelationId, policy_id, false);
|
||||
@@ -1287,10 +1278,7 @@ rename_policy(RenameStmt *stmt)
|
||||
namestrcpy(&((Form_pg_policy) GETSTRUCT(policy_tuple))->polname,
|
||||
stmt->newname);
|
||||
|
||||
simple_heap_update(pg_policy_rel, &policy_tuple->t_self, policy_tuple);
|
||||
|
||||
/* keep system catalog indexes current */
|
||||
CatalogUpdateIndexes(pg_policy_rel, policy_tuple);
|
||||
CatalogTupleUpdate(pg_policy_rel, &policy_tuple->t_self, policy_tuple);
|
||||
|
||||
InvokeObjectPostAlterHook(PolicyRelationId,
|
||||
HeapTupleGetOid(policy_tuple), 0);
|
||||
|
||||
@@ -378,7 +378,7 @@ create_proc_lang(const char *languageName, bool replace,
|
||||
|
||||
/* Okay, do it... */
|
||||
tup = heap_modify_tuple(oldtup, tupDesc, values, nulls, replaces);
|
||||
simple_heap_update(rel, &tup->t_self, tup);
|
||||
CatalogTupleUpdate(rel, &tup->t_self, tup);
|
||||
|
||||
ReleaseSysCache(oldtup);
|
||||
is_update = true;
|
||||
@@ -387,13 +387,10 @@ create_proc_lang(const char *languageName, bool replace,
|
||||
{
|
||||
/* Creating a new language */
|
||||
tup = heap_form_tuple(tupDesc, values, nulls);
|
||||
simple_heap_insert(rel, tup);
|
||||
CatalogTupleInsert(rel, tup);
|
||||
is_update = false;
|
||||
}
|
||||
|
||||
/* Need to update indexes for either the insert or update case */
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
|
||||
/*
|
||||
* Create dependencies for the new language. If we are updating an
|
||||
* existing language, first delete any existing pg_depend entries.
|
||||
|
||||
@@ -215,8 +215,7 @@ CreatePublication(CreatePublicationStmt *stmt)
|
||||
tup = heap_form_tuple(RelationGetDescr(rel), values, nulls);
|
||||
|
||||
/* Insert tuple into catalog. */
|
||||
puboid = simple_heap_insert(rel, tup);
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
puboid = CatalogTupleInsert(rel, tup);
|
||||
heap_freetuple(tup);
|
||||
|
||||
recordDependencyOnOwner(PublicationRelationId, puboid, GetUserId());
|
||||
@@ -295,8 +294,7 @@ AlterPublicationOptions(AlterPublicationStmt *stmt, Relation rel,
|
||||
replaces);
|
||||
|
||||
/* Update the catalog. */
|
||||
simple_heap_update(rel, &tup->t_self, tup);
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
CatalogTupleUpdate(rel, &tup->t_self, tup);
|
||||
|
||||
CommandCounterIncrement();
|
||||
|
||||
@@ -686,8 +684,7 @@ AlterPublicationOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
|
||||
errhint("The owner of a publication must be a superuser.")));
|
||||
|
||||
form->pubowner = newOwnerId;
|
||||
simple_heap_update(rel, &tup->t_self, tup);
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
CatalogTupleUpdate(rel, &tup->t_self, tup);
|
||||
|
||||
/* Update owner dependency reference */
|
||||
changeDependencyOnOwner(PublicationRelationId,
|
||||
|
||||
@@ -281,8 +281,7 @@ RenameSchema(const char *oldname, const char *newname)
|
||||
|
||||
/* rename */
|
||||
namestrcpy(&(((Form_pg_namespace) GETSTRUCT(tup))->nspname), newname);
|
||||
simple_heap_update(rel, &tup->t_self, tup);
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
CatalogTupleUpdate(rel, &tup->t_self, tup);
|
||||
|
||||
InvokeObjectPostAlterHook(NamespaceRelationId, HeapTupleGetOid(tup), 0);
|
||||
|
||||
@@ -417,8 +416,7 @@ AlterSchemaOwner_internal(HeapTuple tup, Relation rel, Oid newOwnerId)
|
||||
|
||||
newtuple = heap_modify_tuple(tup, RelationGetDescr(rel), repl_val, repl_null, repl_repl);
|
||||
|
||||
simple_heap_update(rel, &newtuple->t_self, newtuple);
|
||||
CatalogUpdateIndexes(rel, newtuple);
|
||||
CatalogTupleUpdate(rel, &newtuple->t_self, newtuple);
|
||||
|
||||
heap_freetuple(newtuple);
|
||||
|
||||
|
||||
@@ -299,7 +299,7 @@ SetSharedSecurityLabel(const ObjectAddress *object,
|
||||
replaces[Anum_pg_shseclabel_label - 1] = true;
|
||||
newtup = heap_modify_tuple(oldtup, RelationGetDescr(pg_shseclabel),
|
||||
values, nulls, replaces);
|
||||
simple_heap_update(pg_shseclabel, &oldtup->t_self, newtup);
|
||||
CatalogTupleUpdate(pg_shseclabel, &oldtup->t_self, newtup);
|
||||
}
|
||||
}
|
||||
systable_endscan(scan);
|
||||
@@ -309,15 +309,11 @@ SetSharedSecurityLabel(const ObjectAddress *object,
|
||||
{
|
||||
newtup = heap_form_tuple(RelationGetDescr(pg_shseclabel),
|
||||
values, nulls);
|
||||
simple_heap_insert(pg_shseclabel, newtup);
|
||||
CatalogTupleInsert(pg_shseclabel, newtup);
|
||||
}
|
||||
|
||||
/* Update indexes, if necessary */
|
||||
if (newtup != NULL)
|
||||
{
|
||||
CatalogUpdateIndexes(pg_shseclabel, newtup);
|
||||
heap_freetuple(newtup);
|
||||
}
|
||||
|
||||
heap_close(pg_shseclabel, RowExclusiveLock);
|
||||
}
|
||||
@@ -390,7 +386,7 @@ SetSecurityLabel(const ObjectAddress *object,
|
||||
replaces[Anum_pg_seclabel_label - 1] = true;
|
||||
newtup = heap_modify_tuple(oldtup, RelationGetDescr(pg_seclabel),
|
||||
values, nulls, replaces);
|
||||
simple_heap_update(pg_seclabel, &oldtup->t_self, newtup);
|
||||
CatalogTupleUpdate(pg_seclabel, &oldtup->t_self, newtup);
|
||||
}
|
||||
}
|
||||
systable_endscan(scan);
|
||||
@@ -400,15 +396,12 @@ SetSecurityLabel(const ObjectAddress *object,
|
||||
{
|
||||
newtup = heap_form_tuple(RelationGetDescr(pg_seclabel),
|
||||
values, nulls);
|
||||
simple_heap_insert(pg_seclabel, newtup);
|
||||
CatalogTupleInsert(pg_seclabel, newtup);
|
||||
}
|
||||
|
||||
/* Update indexes, if necessary */
|
||||
if (newtup != NULL)
|
||||
{
|
||||
CatalogUpdateIndexes(pg_seclabel, newtup);
|
||||
heap_freetuple(newtup);
|
||||
}
|
||||
|
||||
heap_close(pg_seclabel, RowExclusiveLock);
|
||||
}
|
||||
|
||||
@@ -236,8 +236,7 @@ DefineSequence(ParseState *pstate, CreateSeqStmt *seq)
|
||||
pgs_values[Anum_pg_sequence_seqcache - 1] = Int64GetDatumFast(seqform.seqcache);
|
||||
|
||||
tuple = heap_form_tuple(tupDesc, pgs_values, pgs_nulls);
|
||||
simple_heap_insert(rel, tuple);
|
||||
CatalogUpdateIndexes(rel, tuple);
|
||||
CatalogTupleInsert(rel, tuple);
|
||||
|
||||
heap_freetuple(tuple);
|
||||
heap_close(rel, RowExclusiveLock);
|
||||
@@ -504,8 +503,7 @@ AlterSequence(ParseState *pstate, AlterSeqStmt *stmt)
|
||||
|
||||
relation_close(seqrel, NoLock);
|
||||
|
||||
simple_heap_update(rel, &tuple->t_self, tuple);
|
||||
CatalogUpdateIndexes(rel, tuple);
|
||||
CatalogTupleUpdate(rel, &tuple->t_self, tuple);
|
||||
heap_close(rel, RowExclusiveLock);
|
||||
|
||||
return address;
|
||||
|
||||
@@ -277,8 +277,7 @@ CreateSubscription(CreateSubscriptionStmt *stmt)
|
||||
tup = heap_form_tuple(RelationGetDescr(rel), values, nulls);
|
||||
|
||||
/* Insert tuple into catalog. */
|
||||
subid = simple_heap_insert(rel, tup);
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
subid = CatalogTupleInsert(rel, tup);
|
||||
heap_freetuple(tup);
|
||||
|
||||
recordDependencyOnOwner(SubscriptionRelationId, subid, owner);
|
||||
@@ -408,8 +407,7 @@ AlterSubscription(AlterSubscriptionStmt *stmt)
|
||||
replaces);
|
||||
|
||||
/* Update the catalog. */
|
||||
simple_heap_update(rel, &tup->t_self, tup);
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
CatalogTupleUpdate(rel, &tup->t_self, tup);
|
||||
|
||||
ObjectAddressSet(myself, SubscriptionRelationId, subid);
|
||||
|
||||
@@ -588,8 +586,7 @@ AlterSubscriptionOwner_internal(Relation rel, HeapTuple tup, Oid newOwnerId)
|
||||
errhint("The owner of an subscription must be a superuser.")));
|
||||
|
||||
form->subowner = newOwnerId;
|
||||
simple_heap_update(rel, &tup->t_self, tup);
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
CatalogTupleUpdate(rel, &tup->t_self, tup);
|
||||
|
||||
/* Update owner dependency reference */
|
||||
changeDependencyOnOwner(SubscriptionRelationId,
|
||||
|
||||
@@ -2308,9 +2308,7 @@ StoreCatalogInheritance1(Oid relationId, Oid parentOid,
|
||||
|
||||
tuple = heap_form_tuple(desc, values, nulls);
|
||||
|
||||
simple_heap_insert(inhRelation, tuple);
|
||||
|
||||
CatalogUpdateIndexes(inhRelation, tuple);
|
||||
CatalogTupleInsert(inhRelation, tuple);
|
||||
|
||||
heap_freetuple(tuple);
|
||||
|
||||
@@ -2398,10 +2396,7 @@ SetRelationHasSubclass(Oid relationId, bool relhassubclass)
|
||||
if (classtuple->relhassubclass != relhassubclass)
|
||||
{
|
||||
classtuple->relhassubclass = relhassubclass;
|
||||
simple_heap_update(relationRelation, &tuple->t_self, tuple);
|
||||
|
||||
/* keep the catalog indexes up to date */
|
||||
CatalogUpdateIndexes(relationRelation, tuple);
|
||||
CatalogTupleUpdate(relationRelation, &tuple->t_self, tuple);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2592,10 +2587,7 @@ renameatt_internal(Oid myrelid,
|
||||
/* apply the update */
|
||||
namestrcpy(&(attform->attname), newattname);
|
||||
|
||||
simple_heap_update(attrelation, &atttup->t_self, atttup);
|
||||
|
||||
/* keep system catalog indexes current */
|
||||
CatalogUpdateIndexes(attrelation, atttup);
|
||||
CatalogTupleUpdate(attrelation, &atttup->t_self, atttup);
|
||||
|
||||
InvokeObjectPostAlterHook(RelationRelationId, myrelid, attnum);
|
||||
|
||||
@@ -2902,10 +2894,7 @@ RenameRelationInternal(Oid myrelid, const char *newrelname, bool is_internal)
|
||||
*/
|
||||
namestrcpy(&(relform->relname), newrelname);
|
||||
|
||||
simple_heap_update(relrelation, &reltup->t_self, reltup);
|
||||
|
||||
/* keep the system catalog indexes current */
|
||||
CatalogUpdateIndexes(relrelation, reltup);
|
||||
CatalogTupleUpdate(relrelation, &reltup->t_self, reltup);
|
||||
|
||||
InvokeObjectPostAlterHookArg(RelationRelationId, myrelid, 0,
|
||||
InvalidOid, is_internal);
|
||||
@@ -5097,8 +5086,7 @@ ATExecAddColumn(List **wqueue, AlteredTableInfo *tab, Relation rel,
|
||||
|
||||
/* Bump the existing child att's inhcount */
|
||||
childatt->attinhcount++;
|
||||
simple_heap_update(attrdesc, &tuple->t_self, tuple);
|
||||
CatalogUpdateIndexes(attrdesc, tuple);
|
||||
CatalogTupleUpdate(attrdesc, &tuple->t_self, tuple);
|
||||
|
||||
heap_freetuple(tuple);
|
||||
|
||||
@@ -5191,10 +5179,7 @@ ATExecAddColumn(List **wqueue, AlteredTableInfo *tab, Relation rel,
|
||||
else
|
||||
((Form_pg_class) GETSTRUCT(reltup))->relnatts = newattnum;
|
||||
|
||||
simple_heap_update(pgclass, &reltup->t_self, reltup);
|
||||
|
||||
/* keep catalog indexes current */
|
||||
CatalogUpdateIndexes(pgclass, reltup);
|
||||
CatalogTupleUpdate(pgclass, &reltup->t_self, reltup);
|
||||
|
||||
heap_freetuple(reltup);
|
||||
|
||||
@@ -5630,10 +5615,7 @@ ATExecDropNotNull(Relation rel, const char *colName, LOCKMODE lockmode)
|
||||
{
|
||||
((Form_pg_attribute) GETSTRUCT(tuple))->attnotnull = FALSE;
|
||||
|
||||
simple_heap_update(attr_rel, &tuple->t_self, tuple);
|
||||
|
||||
/* keep the system catalog indexes current */
|
||||
CatalogUpdateIndexes(attr_rel, tuple);
|
||||
CatalogTupleUpdate(attr_rel, &tuple->t_self, tuple);
|
||||
|
||||
ObjectAddressSubSet(address, RelationRelationId,
|
||||
RelationGetRelid(rel), attnum);
|
||||
@@ -5708,10 +5690,7 @@ ATExecSetNotNull(AlteredTableInfo *tab, Relation rel,
|
||||
{
|
||||
((Form_pg_attribute) GETSTRUCT(tuple))->attnotnull = TRUE;
|
||||
|
||||
simple_heap_update(attr_rel, &tuple->t_self, tuple);
|
||||
|
||||
/* keep the system catalog indexes current */
|
||||
CatalogUpdateIndexes(attr_rel, tuple);
|
||||
CatalogTupleUpdate(attr_rel, &tuple->t_self, tuple);
|
||||
|
||||
/* Tell Phase 3 it needs to test the constraint */
|
||||
tab->new_notnull = true;
|
||||
@@ -5876,10 +5855,7 @@ ATExecSetStatistics(Relation rel, const char *colName, Node *newValue, LOCKMODE
|
||||
|
||||
attrtuple->attstattarget = newtarget;
|
||||
|
||||
simple_heap_update(attrelation, &tuple->t_self, tuple);
|
||||
|
||||
/* keep system catalog indexes current */
|
||||
CatalogUpdateIndexes(attrelation, tuple);
|
||||
CatalogTupleUpdate(attrelation, &tuple->t_self, tuple);
|
||||
|
||||
InvokeObjectPostAlterHook(RelationRelationId,
|
||||
RelationGetRelid(rel),
|
||||
@@ -5952,8 +5928,7 @@ ATExecSetOptions(Relation rel, const char *colName, Node *options,
|
||||
repl_val, repl_null, repl_repl);
|
||||
|
||||
/* Update system catalog. */
|
||||
simple_heap_update(attrelation, &newtuple->t_self, newtuple);
|
||||
CatalogUpdateIndexes(attrelation, newtuple);
|
||||
CatalogTupleUpdate(attrelation, &newtuple->t_self, newtuple);
|
||||
|
||||
InvokeObjectPostAlterHook(RelationRelationId,
|
||||
RelationGetRelid(rel),
|
||||
@@ -6036,10 +6011,7 @@ ATExecSetStorage(Relation rel, const char *colName, Node *newValue, LOCKMODE loc
|
||||
errmsg("column data type %s can only have storage PLAIN",
|
||||
format_type_be(attrtuple->atttypid))));
|
||||
|
||||
simple_heap_update(attrelation, &tuple->t_self, tuple);
|
||||
|
||||
/* keep system catalog indexes current */
|
||||
CatalogUpdateIndexes(attrelation, tuple);
|
||||
CatalogTupleUpdate(attrelation, &tuple->t_self, tuple);
|
||||
|
||||
InvokeObjectPostAlterHook(RelationRelationId,
|
||||
RelationGetRelid(rel),
|
||||
@@ -6277,10 +6249,7 @@ ATExecDropColumn(List **wqueue, Relation rel, const char *colName,
|
||||
/* Child column must survive my deletion */
|
||||
childatt->attinhcount--;
|
||||
|
||||
simple_heap_update(attr_rel, &tuple->t_self, tuple);
|
||||
|
||||
/* keep the system catalog indexes current */
|
||||
CatalogUpdateIndexes(attr_rel, tuple);
|
||||
CatalogTupleUpdate(attr_rel, &tuple->t_self, tuple);
|
||||
|
||||
/* Make update visible */
|
||||
CommandCounterIncrement();
|
||||
@@ -6296,10 +6265,7 @@ ATExecDropColumn(List **wqueue, Relation rel, const char *colName,
|
||||
childatt->attinhcount--;
|
||||
childatt->attislocal = true;
|
||||
|
||||
simple_heap_update(attr_rel, &tuple->t_self, tuple);
|
||||
|
||||
/* keep the system catalog indexes current */
|
||||
CatalogUpdateIndexes(attr_rel, tuple);
|
||||
CatalogTupleUpdate(attr_rel, &tuple->t_self, tuple);
|
||||
|
||||
/* Make update visible */
|
||||
CommandCounterIncrement();
|
||||
@@ -6343,10 +6309,7 @@ ATExecDropColumn(List **wqueue, Relation rel, const char *colName,
|
||||
tuple_class = (Form_pg_class) GETSTRUCT(tuple);
|
||||
|
||||
tuple_class->relhasoids = false;
|
||||
simple_heap_update(class_rel, &tuple->t_self, tuple);
|
||||
|
||||
/* Keep the catalog indexes up to date */
|
||||
CatalogUpdateIndexes(class_rel, tuple);
|
||||
CatalogTupleUpdate(class_rel, &tuple->t_self, tuple);
|
||||
|
||||
heap_close(class_rel, RowExclusiveLock);
|
||||
|
||||
@@ -7195,8 +7158,7 @@ ATExecAlterConstraint(Relation rel, AlterTableCmd *cmd,
|
||||
copy_con = (Form_pg_constraint) GETSTRUCT(copyTuple);
|
||||
copy_con->condeferrable = cmdcon->deferrable;
|
||||
copy_con->condeferred = cmdcon->initdeferred;
|
||||
simple_heap_update(conrel, ©Tuple->t_self, copyTuple);
|
||||
CatalogUpdateIndexes(conrel, copyTuple);
|
||||
CatalogTupleUpdate(conrel, ©Tuple->t_self, copyTuple);
|
||||
|
||||
InvokeObjectPostAlterHook(ConstraintRelationId,
|
||||
HeapTupleGetOid(contuple), 0);
|
||||
@@ -7249,8 +7211,7 @@ ATExecAlterConstraint(Relation rel, AlterTableCmd *cmd,
|
||||
|
||||
copy_tg->tgdeferrable = cmdcon->deferrable;
|
||||
copy_tg->tginitdeferred = cmdcon->initdeferred;
|
||||
simple_heap_update(tgrel, ©Tuple->t_self, copyTuple);
|
||||
CatalogUpdateIndexes(tgrel, copyTuple);
|
||||
CatalogTupleUpdate(tgrel, ©Tuple->t_self, copyTuple);
|
||||
|
||||
InvokeObjectPostAlterHook(TriggerRelationId,
|
||||
HeapTupleGetOid(tgtuple), 0);
|
||||
@@ -7436,8 +7397,7 @@ ATExecValidateConstraint(Relation rel, char *constrName, bool recurse,
|
||||
copyTuple = heap_copytuple(tuple);
|
||||
copy_con = (Form_pg_constraint) GETSTRUCT(copyTuple);
|
||||
copy_con->convalidated = true;
|
||||
simple_heap_update(conrel, ©Tuple->t_self, copyTuple);
|
||||
CatalogUpdateIndexes(conrel, copyTuple);
|
||||
CatalogTupleUpdate(conrel, ©Tuple->t_self, copyTuple);
|
||||
|
||||
InvokeObjectPostAlterHook(ConstraintRelationId,
|
||||
HeapTupleGetOid(tuple), 0);
|
||||
@@ -8339,8 +8299,7 @@ ATExecDropConstraint(Relation rel, const char *constrName,
|
||||
{
|
||||
/* Child constraint must survive my deletion */
|
||||
con->coninhcount--;
|
||||
simple_heap_update(conrel, ©_tuple->t_self, copy_tuple);
|
||||
CatalogUpdateIndexes(conrel, copy_tuple);
|
||||
CatalogTupleUpdate(conrel, ©_tuple->t_self, copy_tuple);
|
||||
|
||||
/* Make update visible */
|
||||
CommandCounterIncrement();
|
||||
@@ -8356,8 +8315,7 @@ ATExecDropConstraint(Relation rel, const char *constrName,
|
||||
con->coninhcount--;
|
||||
con->conislocal = true;
|
||||
|
||||
simple_heap_update(conrel, ©_tuple->t_self, copy_tuple);
|
||||
CatalogUpdateIndexes(conrel, copy_tuple);
|
||||
CatalogTupleUpdate(conrel, ©_tuple->t_self, copy_tuple);
|
||||
|
||||
/* Make update visible */
|
||||
CommandCounterIncrement();
|
||||
@@ -9003,10 +8961,7 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel,
|
||||
|
||||
ReleaseSysCache(typeTuple);
|
||||
|
||||
simple_heap_update(attrelation, &heapTup->t_self, heapTup);
|
||||
|
||||
/* keep system catalog indexes current */
|
||||
CatalogUpdateIndexes(attrelation, heapTup);
|
||||
CatalogTupleUpdate(attrelation, &heapTup->t_self, heapTup);
|
||||
|
||||
heap_close(attrelation, RowExclusiveLock);
|
||||
|
||||
@@ -9144,8 +9099,7 @@ ATExecAlterColumnGenericOptions(Relation rel,
|
||||
newtuple = heap_modify_tuple(tuple, RelationGetDescr(attrel),
|
||||
repl_val, repl_null, repl_repl);
|
||||
|
||||
simple_heap_update(attrel, &newtuple->t_self, newtuple);
|
||||
CatalogUpdateIndexes(attrel, newtuple);
|
||||
CatalogTupleUpdate(attrel, &newtuple->t_self, newtuple);
|
||||
|
||||
InvokeObjectPostAlterHook(RelationRelationId,
|
||||
RelationGetRelid(rel),
|
||||
@@ -9661,8 +9615,7 @@ ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing, LOCKMODE lock
|
||||
|
||||
newtuple = heap_modify_tuple(tuple, RelationGetDescr(class_rel), repl_val, repl_null, repl_repl);
|
||||
|
||||
simple_heap_update(class_rel, &newtuple->t_self, newtuple);
|
||||
CatalogUpdateIndexes(class_rel, newtuple);
|
||||
CatalogTupleUpdate(class_rel, &newtuple->t_self, newtuple);
|
||||
|
||||
heap_freetuple(newtuple);
|
||||
|
||||
@@ -9789,8 +9742,7 @@ change_owner_fix_column_acls(Oid relationOid, Oid oldOwnerId, Oid newOwnerId)
|
||||
RelationGetDescr(attRelation),
|
||||
repl_val, repl_null, repl_repl);
|
||||
|
||||
simple_heap_update(attRelation, &newtuple->t_self, newtuple);
|
||||
CatalogUpdateIndexes(attRelation, newtuple);
|
||||
CatalogTupleUpdate(attRelation, &newtuple->t_self, newtuple);
|
||||
|
||||
heap_freetuple(newtuple);
|
||||
}
|
||||
@@ -10067,9 +10019,7 @@ ATExecSetRelOptions(Relation rel, List *defList, AlterTableType operation,
|
||||
newtuple = heap_modify_tuple(tuple, RelationGetDescr(pgclass),
|
||||
repl_val, repl_null, repl_repl);
|
||||
|
||||
simple_heap_update(pgclass, &newtuple->t_self, newtuple);
|
||||
|
||||
CatalogUpdateIndexes(pgclass, newtuple);
|
||||
CatalogTupleUpdate(pgclass, &newtuple->t_self, newtuple);
|
||||
|
||||
InvokeObjectPostAlterHook(RelationRelationId, RelationGetRelid(rel), 0);
|
||||
|
||||
@@ -10126,9 +10076,7 @@ ATExecSetRelOptions(Relation rel, List *defList, AlterTableType operation,
|
||||
newtuple = heap_modify_tuple(tuple, RelationGetDescr(pgclass),
|
||||
repl_val, repl_null, repl_repl);
|
||||
|
||||
simple_heap_update(pgclass, &newtuple->t_self, newtuple);
|
||||
|
||||
CatalogUpdateIndexes(pgclass, newtuple);
|
||||
CatalogTupleUpdate(pgclass, &newtuple->t_self, newtuple);
|
||||
|
||||
InvokeObjectPostAlterHookArg(RelationRelationId,
|
||||
RelationGetRelid(toastrel), 0,
|
||||
@@ -10289,8 +10237,7 @@ ATExecSetTableSpace(Oid tableOid, Oid newTableSpace, LOCKMODE lockmode)
|
||||
/* update the pg_class row */
|
||||
rd_rel->reltablespace = (newTableSpace == MyDatabaseTableSpace) ? InvalidOid : newTableSpace;
|
||||
rd_rel->relfilenode = newrelfilenode;
|
||||
simple_heap_update(pg_class, &tuple->t_self, tuple);
|
||||
CatalogUpdateIndexes(pg_class, tuple);
|
||||
CatalogTupleUpdate(pg_class, &tuple->t_self, tuple);
|
||||
|
||||
InvokeObjectPostAlterHook(RelationRelationId, RelationGetRelid(rel), 0);
|
||||
|
||||
@@ -10940,8 +10887,7 @@ MergeAttributesIntoExisting(Relation child_rel, Relation parent_rel)
|
||||
childatt->attislocal = false;
|
||||
}
|
||||
|
||||
simple_heap_update(attrrel, &tuple->t_self, tuple);
|
||||
CatalogUpdateIndexes(attrrel, tuple);
|
||||
CatalogTupleUpdate(attrrel, &tuple->t_self, tuple);
|
||||
heap_freetuple(tuple);
|
||||
}
|
||||
else
|
||||
@@ -10980,8 +10926,7 @@ MergeAttributesIntoExisting(Relation child_rel, Relation parent_rel)
|
||||
childatt->attislocal = false;
|
||||
}
|
||||
|
||||
simple_heap_update(attrrel, &tuple->t_self, tuple);
|
||||
CatalogUpdateIndexes(attrrel, tuple);
|
||||
CatalogTupleUpdate(attrrel, &tuple->t_self, tuple);
|
||||
heap_freetuple(tuple);
|
||||
}
|
||||
else
|
||||
@@ -11118,8 +11063,7 @@ MergeConstraintsIntoExisting(Relation child_rel, Relation parent_rel)
|
||||
child_con->conislocal = false;
|
||||
}
|
||||
|
||||
simple_heap_update(catalog_relation, &child_copy->t_self, child_copy);
|
||||
CatalogUpdateIndexes(catalog_relation, child_copy);
|
||||
CatalogTupleUpdate(catalog_relation, &child_copy->t_self, child_copy);
|
||||
heap_freetuple(child_copy);
|
||||
|
||||
found = true;
|
||||
@@ -11289,8 +11233,7 @@ RemoveInheritance(Relation child_rel, Relation parent_rel)
|
||||
if (copy_att->attinhcount == 0)
|
||||
copy_att->attislocal = true;
|
||||
|
||||
simple_heap_update(catalogRelation, ©Tuple->t_self, copyTuple);
|
||||
CatalogUpdateIndexes(catalogRelation, copyTuple);
|
||||
CatalogTupleUpdate(catalogRelation, ©Tuple->t_self, copyTuple);
|
||||
heap_freetuple(copyTuple);
|
||||
}
|
||||
}
|
||||
@@ -11364,8 +11307,7 @@ RemoveInheritance(Relation child_rel, Relation parent_rel)
|
||||
if (copy_con->coninhcount == 0)
|
||||
copy_con->conislocal = true;
|
||||
|
||||
simple_heap_update(catalogRelation, ©Tuple->t_self, copyTuple);
|
||||
CatalogUpdateIndexes(catalogRelation, copyTuple);
|
||||
CatalogTupleUpdate(catalogRelation, ©Tuple->t_self, copyTuple);
|
||||
heap_freetuple(copyTuple);
|
||||
}
|
||||
}
|
||||
@@ -11565,8 +11507,7 @@ ATExecAddOf(Relation rel, const TypeName *ofTypename, LOCKMODE lockmode)
|
||||
if (!HeapTupleIsValid(classtuple))
|
||||
elog(ERROR, "cache lookup failed for relation %u", relid);
|
||||
((Form_pg_class) GETSTRUCT(classtuple))->reloftype = typeid;
|
||||
simple_heap_update(relationRelation, &classtuple->t_self, classtuple);
|
||||
CatalogUpdateIndexes(relationRelation, classtuple);
|
||||
CatalogTupleUpdate(relationRelation, &classtuple->t_self, classtuple);
|
||||
|
||||
InvokeObjectPostAlterHook(RelationRelationId, relid, 0);
|
||||
|
||||
@@ -11610,8 +11551,7 @@ ATExecDropOf(Relation rel, LOCKMODE lockmode)
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
elog(ERROR, "cache lookup failed for relation %u", relid);
|
||||
((Form_pg_class) GETSTRUCT(tuple))->reloftype = InvalidOid;
|
||||
simple_heap_update(relationRelation, &tuple->t_self, tuple);
|
||||
CatalogUpdateIndexes(relationRelation, tuple);
|
||||
CatalogTupleUpdate(relationRelation, &tuple->t_self, tuple);
|
||||
|
||||
InvokeObjectPostAlterHook(RelationRelationId, relid, 0);
|
||||
|
||||
@@ -11651,8 +11591,7 @@ relation_mark_replica_identity(Relation rel, char ri_type, Oid indexOid,
|
||||
if (pg_class_form->relreplident != ri_type)
|
||||
{
|
||||
pg_class_form->relreplident = ri_type;
|
||||
simple_heap_update(pg_class, &pg_class_tuple->t_self, pg_class_tuple);
|
||||
CatalogUpdateIndexes(pg_class, pg_class_tuple);
|
||||
CatalogTupleUpdate(pg_class, &pg_class_tuple->t_self, pg_class_tuple);
|
||||
}
|
||||
heap_close(pg_class, RowExclusiveLock);
|
||||
heap_freetuple(pg_class_tuple);
|
||||
@@ -11711,8 +11650,7 @@ relation_mark_replica_identity(Relation rel, char ri_type, Oid indexOid,
|
||||
|
||||
if (dirty)
|
||||
{
|
||||
simple_heap_update(pg_index, &pg_index_tuple->t_self, pg_index_tuple);
|
||||
CatalogUpdateIndexes(pg_index, pg_index_tuple);
|
||||
CatalogTupleUpdate(pg_index, &pg_index_tuple->t_self, pg_index_tuple);
|
||||
InvokeObjectPostAlterHookArg(IndexRelationId, thisIndexOid, 0,
|
||||
InvalidOid, is_internal);
|
||||
}
|
||||
@@ -11861,10 +11799,7 @@ ATExecEnableRowSecurity(Relation rel)
|
||||
elog(ERROR, "cache lookup failed for relation %u", relid);
|
||||
|
||||
((Form_pg_class) GETSTRUCT(tuple))->relrowsecurity = true;
|
||||
simple_heap_update(pg_class, &tuple->t_self, tuple);
|
||||
|
||||
/* keep catalog indexes current */
|
||||
CatalogUpdateIndexes(pg_class, tuple);
|
||||
CatalogTupleUpdate(pg_class, &tuple->t_self, tuple);
|
||||
|
||||
heap_close(pg_class, RowExclusiveLock);
|
||||
heap_freetuple(tuple);
|
||||
@@ -11888,10 +11823,7 @@ ATExecDisableRowSecurity(Relation rel)
|
||||
elog(ERROR, "cache lookup failed for relation %u", relid);
|
||||
|
||||
((Form_pg_class) GETSTRUCT(tuple))->relrowsecurity = false;
|
||||
simple_heap_update(pg_class, &tuple->t_self, tuple);
|
||||
|
||||
/* keep catalog indexes current */
|
||||
CatalogUpdateIndexes(pg_class, tuple);
|
||||
CatalogTupleUpdate(pg_class, &tuple->t_self, tuple);
|
||||
|
||||
heap_close(pg_class, RowExclusiveLock);
|
||||
heap_freetuple(tuple);
|
||||
@@ -11917,10 +11849,7 @@ ATExecForceNoForceRowSecurity(Relation rel, bool force_rls)
|
||||
elog(ERROR, "cache lookup failed for relation %u", relid);
|
||||
|
||||
((Form_pg_class) GETSTRUCT(tuple))->relforcerowsecurity = force_rls;
|
||||
simple_heap_update(pg_class, &tuple->t_self, tuple);
|
||||
|
||||
/* keep catalog indexes current */
|
||||
CatalogUpdateIndexes(pg_class, tuple);
|
||||
CatalogTupleUpdate(pg_class, &tuple->t_self, tuple);
|
||||
|
||||
heap_close(pg_class, RowExclusiveLock);
|
||||
heap_freetuple(tuple);
|
||||
@@ -11988,8 +11917,7 @@ ATExecGenericOptions(Relation rel, List *options)
|
||||
tuple = heap_modify_tuple(tuple, RelationGetDescr(ftrel),
|
||||
repl_val, repl_null, repl_repl);
|
||||
|
||||
simple_heap_update(ftrel, &tuple->t_self, tuple);
|
||||
CatalogUpdateIndexes(ftrel, tuple);
|
||||
CatalogTupleUpdate(ftrel, &tuple->t_self, tuple);
|
||||
|
||||
/*
|
||||
* Invalidate relcache so that all sessions will refresh any cached plans
|
||||
@@ -12284,8 +12212,7 @@ AlterRelationNamespaceInternal(Relation classRel, Oid relOid,
|
||||
/* classTup is a copy, so OK to scribble on */
|
||||
classForm->relnamespace = newNspOid;
|
||||
|
||||
simple_heap_update(classRel, &classTup->t_self, classTup);
|
||||
CatalogUpdateIndexes(classRel, classTup);
|
||||
CatalogTupleUpdate(classRel, &classTup->t_self, classTup);
|
||||
|
||||
/* Update dependency on schema if caller said so */
|
||||
if (hasDependEntry &&
|
||||
@@ -13520,8 +13447,7 @@ ATExecDetachPartition(Relation rel, RangeVar *name)
|
||||
new_val, new_null, new_repl);
|
||||
|
||||
((Form_pg_class) GETSTRUCT(newtuple))->relispartition = false;
|
||||
simple_heap_update(classRel, &newtuple->t_self, newtuple);
|
||||
CatalogUpdateIndexes(classRel, newtuple);
|
||||
CatalogTupleUpdate(classRel, &newtuple->t_self, newtuple);
|
||||
heap_freetuple(newtuple);
|
||||
heap_close(classRel, RowExclusiveLock);
|
||||
|
||||
|
||||
@@ -344,9 +344,7 @@ CreateTableSpace(CreateTableSpaceStmt *stmt)
|
||||
|
||||
tuple = heap_form_tuple(rel->rd_att, values, nulls);
|
||||
|
||||
tablespaceoid = simple_heap_insert(rel, tuple);
|
||||
|
||||
CatalogUpdateIndexes(rel, tuple);
|
||||
tablespaceoid = CatalogTupleInsert(rel, tuple);
|
||||
|
||||
heap_freetuple(tuple);
|
||||
|
||||
@@ -971,8 +969,7 @@ RenameTableSpace(const char *oldname, const char *newname)
|
||||
/* OK, update the entry */
|
||||
namestrcpy(&(newform->spcname), newname);
|
||||
|
||||
simple_heap_update(rel, &newtuple->t_self, newtuple);
|
||||
CatalogUpdateIndexes(rel, newtuple);
|
||||
CatalogTupleUpdate(rel, &newtuple->t_self, newtuple);
|
||||
|
||||
InvokeObjectPostAlterHook(TableSpaceRelationId, tspId, 0);
|
||||
|
||||
@@ -1044,8 +1041,7 @@ AlterTableSpaceOptions(AlterTableSpaceOptionsStmt *stmt)
|
||||
repl_null, repl_repl);
|
||||
|
||||
/* Update system catalog. */
|
||||
simple_heap_update(rel, &newtuple->t_self, newtuple);
|
||||
CatalogUpdateIndexes(rel, newtuple);
|
||||
CatalogTupleUpdate(rel, &newtuple->t_self, newtuple);
|
||||
|
||||
InvokeObjectPostAlterHook(TableSpaceRelationId, HeapTupleGetOid(tup), 0);
|
||||
|
||||
|
||||
@@ -773,9 +773,7 @@ CreateTrigger(CreateTrigStmt *stmt, const char *queryString,
|
||||
/*
|
||||
* Insert tuple into pg_trigger.
|
||||
*/
|
||||
simple_heap_insert(tgrel, tuple);
|
||||
|
||||
CatalogUpdateIndexes(tgrel, tuple);
|
||||
CatalogTupleInsert(tgrel, tuple);
|
||||
|
||||
heap_freetuple(tuple);
|
||||
heap_close(tgrel, RowExclusiveLock);
|
||||
@@ -802,9 +800,7 @@ CreateTrigger(CreateTrigStmt *stmt, const char *queryString,
|
||||
|
||||
((Form_pg_class) GETSTRUCT(tuple))->relhastriggers = true;
|
||||
|
||||
simple_heap_update(pgrel, &tuple->t_self, tuple);
|
||||
|
||||
CatalogUpdateIndexes(pgrel, tuple);
|
||||
CatalogTupleUpdate(pgrel, &tuple->t_self, tuple);
|
||||
|
||||
heap_freetuple(tuple);
|
||||
heap_close(pgrel, RowExclusiveLock);
|
||||
@@ -1444,10 +1440,7 @@ renametrig(RenameStmt *stmt)
|
||||
namestrcpy(&((Form_pg_trigger) GETSTRUCT(tuple))->tgname,
|
||||
stmt->newname);
|
||||
|
||||
simple_heap_update(tgrel, &tuple->t_self, tuple);
|
||||
|
||||
/* keep system catalog indexes current */
|
||||
CatalogUpdateIndexes(tgrel, tuple);
|
||||
CatalogTupleUpdate(tgrel, &tuple->t_self, tuple);
|
||||
|
||||
InvokeObjectPostAlterHook(TriggerRelationId,
|
||||
HeapTupleGetOid(tuple), 0);
|
||||
@@ -1560,10 +1553,7 @@ EnableDisableTrigger(Relation rel, const char *tgname,
|
||||
|
||||
newtrig->tgenabled = fires_when;
|
||||
|
||||
simple_heap_update(tgrel, &newtup->t_self, newtup);
|
||||
|
||||
/* Keep catalog indexes current */
|
||||
CatalogUpdateIndexes(tgrel, newtup);
|
||||
CatalogTupleUpdate(tgrel, &newtup->t_self, newtup);
|
||||
|
||||
heap_freetuple(newtup);
|
||||
|
||||
|
||||
@@ -271,9 +271,7 @@ DefineTSParser(List *names, List *parameters)
|
||||
|
||||
tup = heap_form_tuple(prsRel->rd_att, values, nulls);
|
||||
|
||||
prsOid = simple_heap_insert(prsRel, tup);
|
||||
|
||||
CatalogUpdateIndexes(prsRel, tup);
|
||||
prsOid = CatalogTupleInsert(prsRel, tup);
|
||||
|
||||
address = makeParserDependencies(tup);
|
||||
|
||||
@@ -482,9 +480,7 @@ DefineTSDictionary(List *names, List *parameters)
|
||||
|
||||
tup = heap_form_tuple(dictRel->rd_att, values, nulls);
|
||||
|
||||
dictOid = simple_heap_insert(dictRel, tup);
|
||||
|
||||
CatalogUpdateIndexes(dictRel, tup);
|
||||
dictOid = CatalogTupleInsert(dictRel, tup);
|
||||
|
||||
address = makeDictionaryDependencies(tup);
|
||||
|
||||
@@ -620,9 +616,7 @@ AlterTSDictionary(AlterTSDictionaryStmt *stmt)
|
||||
newtup = heap_modify_tuple(tup, RelationGetDescr(rel),
|
||||
repl_val, repl_null, repl_repl);
|
||||
|
||||
simple_heap_update(rel, &newtup->t_self, newtup);
|
||||
|
||||
CatalogUpdateIndexes(rel, newtup);
|
||||
CatalogTupleUpdate(rel, &newtup->t_self, newtup);
|
||||
|
||||
InvokeObjectPostAlterHook(TSDictionaryRelationId, dictId, 0);
|
||||
|
||||
@@ -806,9 +800,7 @@ DefineTSTemplate(List *names, List *parameters)
|
||||
|
||||
tup = heap_form_tuple(tmplRel->rd_att, values, nulls);
|
||||
|
||||
tmplOid = simple_heap_insert(tmplRel, tup);
|
||||
|
||||
CatalogUpdateIndexes(tmplRel, tup);
|
||||
tmplOid = CatalogTupleInsert(tmplRel, tup);
|
||||
|
||||
address = makeTSTemplateDependencies(tup);
|
||||
|
||||
@@ -1066,9 +1058,7 @@ DefineTSConfiguration(List *names, List *parameters, ObjectAddress *copied)
|
||||
|
||||
tup = heap_form_tuple(cfgRel->rd_att, values, nulls);
|
||||
|
||||
cfgOid = simple_heap_insert(cfgRel, tup);
|
||||
|
||||
CatalogUpdateIndexes(cfgRel, tup);
|
||||
cfgOid = CatalogTupleInsert(cfgRel, tup);
|
||||
|
||||
if (OidIsValid(sourceOid))
|
||||
{
|
||||
@@ -1106,9 +1096,7 @@ DefineTSConfiguration(List *names, List *parameters, ObjectAddress *copied)
|
||||
|
||||
newmaptup = heap_form_tuple(mapRel->rd_att, mapvalues, mapnulls);
|
||||
|
||||
simple_heap_insert(mapRel, newmaptup);
|
||||
|
||||
CatalogUpdateIndexes(mapRel, newmaptup);
|
||||
CatalogTupleInsert(mapRel, newmaptup);
|
||||
|
||||
heap_freetuple(newmaptup);
|
||||
}
|
||||
@@ -1409,9 +1397,7 @@ MakeConfigurationMapping(AlterTSConfigurationStmt *stmt,
|
||||
newtup = heap_modify_tuple(maptup,
|
||||
RelationGetDescr(relMap),
|
||||
repl_val, repl_null, repl_repl);
|
||||
simple_heap_update(relMap, &newtup->t_self, newtup);
|
||||
|
||||
CatalogUpdateIndexes(relMap, newtup);
|
||||
CatalogTupleUpdate(relMap, &newtup->t_self, newtup);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1436,8 +1422,7 @@ MakeConfigurationMapping(AlterTSConfigurationStmt *stmt,
|
||||
values[Anum_pg_ts_config_map_mapdict - 1] = ObjectIdGetDatum(dictIds[j]);
|
||||
|
||||
tup = heap_form_tuple(relMap->rd_att, values, nulls);
|
||||
simple_heap_insert(relMap, tup);
|
||||
CatalogUpdateIndexes(relMap, tup);
|
||||
CatalogTupleInsert(relMap, tup);
|
||||
|
||||
heap_freetuple(tup);
|
||||
}
|
||||
|
||||
@@ -2221,9 +2221,7 @@ AlterDomainDefault(List *names, Node *defaultRaw)
|
||||
new_record, new_record_nulls,
|
||||
new_record_repl);
|
||||
|
||||
simple_heap_update(rel, &tup->t_self, newtuple);
|
||||
|
||||
CatalogUpdateIndexes(rel, newtuple);
|
||||
CatalogTupleUpdate(rel, &tup->t_self, newtuple);
|
||||
|
||||
/* Rebuild dependencies */
|
||||
GenerateTypeDependencies(typTup->typnamespace,
|
||||
@@ -2360,9 +2358,7 @@ AlterDomainNotNull(List *names, bool notNull)
|
||||
*/
|
||||
typTup->typnotnull = notNull;
|
||||
|
||||
simple_heap_update(typrel, &tup->t_self, tup);
|
||||
|
||||
CatalogUpdateIndexes(typrel, tup);
|
||||
CatalogTupleUpdate(typrel, &tup->t_self, tup);
|
||||
|
||||
InvokeObjectPostAlterHook(TypeRelationId, domainoid, 0);
|
||||
|
||||
@@ -2662,8 +2658,7 @@ AlterDomainValidateConstraint(List *names, char *constrName)
|
||||
copyTuple = heap_copytuple(tuple);
|
||||
copy_con = (Form_pg_constraint) GETSTRUCT(copyTuple);
|
||||
copy_con->convalidated = true;
|
||||
simple_heap_update(conrel, ©Tuple->t_self, copyTuple);
|
||||
CatalogUpdateIndexes(conrel, copyTuple);
|
||||
CatalogTupleUpdate(conrel, ©Tuple->t_self, copyTuple);
|
||||
|
||||
InvokeObjectPostAlterHook(ConstraintRelationId,
|
||||
HeapTupleGetOid(copyTuple), 0);
|
||||
@@ -3404,9 +3399,7 @@ AlterTypeOwnerInternal(Oid typeOid, Oid newOwnerId)
|
||||
tup = heap_modify_tuple(tup, RelationGetDescr(rel), repl_val, repl_null,
|
||||
repl_repl);
|
||||
|
||||
simple_heap_update(rel, &tup->t_self, tup);
|
||||
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
CatalogTupleUpdate(rel, &tup->t_self, tup);
|
||||
|
||||
/* If it has an array type, update that too */
|
||||
if (OidIsValid(typTup->typarray))
|
||||
@@ -3566,8 +3559,7 @@ AlterTypeNamespaceInternal(Oid typeOid, Oid nspOid,
|
||||
/* tup is a copy, so we can scribble directly on it */
|
||||
typform->typnamespace = nspOid;
|
||||
|
||||
simple_heap_update(rel, &tup->t_self, tup);
|
||||
CatalogUpdateIndexes(rel, tup);
|
||||
CatalogTupleUpdate(rel, &tup->t_self, tup);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -433,8 +433,7 @@ CreateRole(ParseState *pstate, CreateRoleStmt *stmt)
|
||||
/*
|
||||
* Insert new record in the pg_authid table
|
||||
*/
|
||||
roleid = simple_heap_insert(pg_authid_rel, tuple);
|
||||
CatalogUpdateIndexes(pg_authid_rel, tuple);
|
||||
roleid = CatalogTupleInsert(pg_authid_rel, tuple);
|
||||
|
||||
/*
|
||||
* Advance command counter so we can see new record; else tests in
|
||||
@@ -838,10 +837,7 @@ AlterRole(AlterRoleStmt *stmt)
|
||||
|
||||
new_tuple = heap_modify_tuple(tuple, pg_authid_dsc, new_record,
|
||||
new_record_nulls, new_record_repl);
|
||||
simple_heap_update(pg_authid_rel, &tuple->t_self, new_tuple);
|
||||
|
||||
/* Update indexes */
|
||||
CatalogUpdateIndexes(pg_authid_rel, new_tuple);
|
||||
CatalogTupleUpdate(pg_authid_rel, &tuple->t_self, new_tuple);
|
||||
|
||||
InvokeObjectPostAlterHook(AuthIdRelationId, roleid, 0);
|
||||
|
||||
@@ -1243,9 +1239,7 @@ RenameRole(const char *oldname, const char *newname)
|
||||
}
|
||||
|
||||
newtuple = heap_modify_tuple(oldtuple, dsc, repl_val, repl_null, repl_repl);
|
||||
simple_heap_update(rel, &oldtuple->t_self, newtuple);
|
||||
|
||||
CatalogUpdateIndexes(rel, newtuple);
|
||||
CatalogTupleUpdate(rel, &oldtuple->t_self, newtuple);
|
||||
|
||||
InvokeObjectPostAlterHook(AuthIdRelationId, roleid, 0);
|
||||
|
||||
@@ -1530,16 +1524,14 @@ AddRoleMems(const char *rolename, Oid roleid,
|
||||
tuple = heap_modify_tuple(authmem_tuple, pg_authmem_dsc,
|
||||
new_record,
|
||||
new_record_nulls, new_record_repl);
|
||||
simple_heap_update(pg_authmem_rel, &tuple->t_self, tuple);
|
||||
CatalogUpdateIndexes(pg_authmem_rel, tuple);
|
||||
CatalogTupleUpdate(pg_authmem_rel, &tuple->t_self, tuple);
|
||||
ReleaseSysCache(authmem_tuple);
|
||||
}
|
||||
else
|
||||
{
|
||||
tuple = heap_form_tuple(pg_authmem_dsc,
|
||||
new_record, new_record_nulls);
|
||||
simple_heap_insert(pg_authmem_rel, tuple);
|
||||
CatalogUpdateIndexes(pg_authmem_rel, tuple);
|
||||
CatalogTupleInsert(pg_authmem_rel, tuple);
|
||||
}
|
||||
|
||||
/* CCI after each change, in case there are duplicates in list */
|
||||
@@ -1647,8 +1639,7 @@ DelRoleMems(const char *rolename, Oid roleid,
|
||||
tuple = heap_modify_tuple(authmem_tuple, pg_authmem_dsc,
|
||||
new_record,
|
||||
new_record_nulls, new_record_repl);
|
||||
simple_heap_update(pg_authmem_rel, &tuple->t_self, tuple);
|
||||
CatalogUpdateIndexes(pg_authmem_rel, tuple);
|
||||
CatalogTupleUpdate(pg_authmem_rel, &tuple->t_self, tuple);
|
||||
}
|
||||
|
||||
ReleaseSysCache(authmem_tuple);
|
||||
|
||||
Reference in New Issue
Block a user