summaryrefslogtreecommitdiffstats
path: root/yql/essentials/parser/pg_wrapper/postgresql/src/backend/commands/alter.c
diff options
context:
space:
mode:
authorvvvv <[email protected]>2025-10-24 14:59:50 +0300
committervvvv <[email protected]>2025-10-24 15:29:24 +0300
commit5b0d18921f2a509d8363c40a5ca208dfed026287 (patch)
treed1369c696d3a9e9a65b68d9208e198269a48cfbc /yql/essentials/parser/pg_wrapper/postgresql/src/backend/commands/alter.c
parente7fbdb6e81ae4a296e710b133de7a2a04b31bbc4 (diff)
YQL-20567 upgrade PG up to 16.10 & fix instructions
init commit_hash:81aba13295273281d19d2d332a48ff1c44977447
Diffstat (limited to 'yql/essentials/parser/pg_wrapper/postgresql/src/backend/commands/alter.c')
-rw-r--r--yql/essentials/parser/pg_wrapper/postgresql/src/backend/commands/alter.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/yql/essentials/parser/pg_wrapper/postgresql/src/backend/commands/alter.c b/yql/essentials/parser/pg_wrapper/postgresql/src/backend/commands/alter.c
index cbe02853b04..85f11a1ec61 100644
--- a/yql/essentials/parser/pg_wrapper/postgresql/src/backend/commands/alter.c
+++ b/yql/essentials/parser/pg_wrapper/postgresql/src/backend/commands/alter.c
@@ -62,6 +62,7 @@
#include "parser/parse_func.h"
#include "replication/logicalworker.h"
#include "rewrite/rewriteDefine.h"
+#include "storage/lmgr.h"
#include "tcop/utility.h"
#include "utils/builtins.h"
#include "utils/fmgroids.h"
@@ -975,7 +976,9 @@ AlterObjectOwner_internal(Relation rel, Oid objectId, Oid new_ownerId)
Oid old_ownerId;
Oid namespaceId = InvalidOid;
- oldtup = get_catalog_object_by_oid(rel, Anum_oid, objectId);
+ /* Search tuple and lock it. */
+ oldtup =
+ get_catalog_object_by_oid_extended(rel, Anum_oid, objectId, true);
if (oldtup == NULL)
elog(ERROR, "cache lookup failed for object %u of catalog \"%s\"",
objectId, RelationGetRelationName(rel));
@@ -1074,6 +1077,8 @@ AlterObjectOwner_internal(Relation rel, Oid objectId, Oid new_ownerId)
/* Perform actual update */
CatalogTupleUpdate(rel, &newtup->t_self, newtup);
+ UnlockTuple(rel, &oldtup->t_self, InplaceUpdateTupleLock);
+
/*
* Update owner dependency reference. When working on a large object,
* we have to translate back to the OID conventionally used for LOs'
@@ -1091,6 +1096,8 @@ AlterObjectOwner_internal(Relation rel, Oid objectId, Oid new_ownerId)
}
else
{
+ UnlockTuple(rel, &oldtup->t_self, InplaceUpdateTupleLock);
+
/*
* No need to change anything. But when working on a large object, we
* have to translate back to the OID conventionally used for LOs'