diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 5fd7f1e..2bbd59c 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -4642,7 +4642,7 @@ l3:
 		xwait = HeapTupleHeaderGetRawXmax(tuple->t_data);
 		infomask = tuple->t_data->t_infomask;
 		infomask2 = tuple->t_data->t_infomask2;
-		ItemPointerCopy(&tuple->t_data->t_ctid, &t_ctid);
+		t_ctid = tuple->t_data->t_ctid;
 
 		LockBuffer(*buffer, BUFFER_LOCK_UNLOCK);
 
@@ -5671,14 +5671,14 @@ heap_lock_updated_tuple_rec(Relation rel, ItemPointer tid, TransactionId xid,
 	Buffer		vmbuffer = InvalidBuffer;
 	BlockNumber block;
 
-	ItemPointerCopy(tid, &tupid);
+	tupid = *tid;
 
 	for (;;)
 	{
 		new_infomask = 0;
 		new_xmax = InvalidTransactionId;
 		block = ItemPointerGetBlockNumber(&tupid);
-		ItemPointerCopy(&tupid, &(mytup.t_self));
+		mytup.t_self = tupid;
 
 		if (!heap_fetch(rel, SnapshotAny, &mytup, &buf, false, NULL))
 		{
@@ -5916,7 +5916,7 @@ l4:
 
 		/* tail recursion */
 		priorXmax = HeapTupleHeaderGetUpdateXid(mytup.t_data);
-		ItemPointerCopy(&(mytup.t_data->t_ctid), &tupid);
+		tupid = mytup.t_data->t_ctid;
 		UnlockReleaseBuffer(buf);
 		if (vmbuffer != InvalidBuffer)
 			ReleaseBuffer(vmbuffer);
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index b3e89a4..19b3d80 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -3792,7 +3792,7 @@ AfterTriggerExecute(AfterTriggerEvent event,
 		default:
 			if (ItemPointerIsValid(&(event->ate_ctid1)))
 			{
-				ItemPointerCopy(&(event->ate_ctid1), &(tuple1.t_self));
+				tuple1.t_self = event->ate_ctid1;
 				if (!heap_fetch(rel, SnapshotAny, &tuple1, &buffer1, false, NULL))
 					elog(ERROR, "failed to fetch tuple1 for AFTER trigger");
 				LocTriggerData.tg_trigtuple = &tuple1;
@@ -3809,7 +3809,7 @@ AfterTriggerExecute(AfterTriggerEvent event,
 				AFTER_TRIGGER_2CTID &&
 				ItemPointerIsValid(&(event->ate_ctid2)))
 			{
-				ItemPointerCopy(&(event->ate_ctid2), &(tuple2.t_self));
+				tuple2.t_self = event->ate_ctid2;
 				if (!heap_fetch(rel, SnapshotAny, &tuple2, &buffer2, false, NULL))
 					elog(ERROR, "failed to fetch tuple2 for AFTER trigger");
 				LocTriggerData.tg_newtuple = &tuple2;
@@ -5152,7 +5152,7 @@ AfterTriggerSaveEvent(EState *estate, ResultRelInfo *relinfo,
 			{
 				Assert(oldtup == NULL);
 				Assert(newtup != NULL);
-				ItemPointerCopy(&(newtup->t_self), &(new_event.ate_ctid1));
+				new_event.ate_ctid1 = newtup->t_self;
 				ItemPointerSetInvalid(&(new_event.ate_ctid2));
 			}
 			else
@@ -5169,7 +5169,7 @@ AfterTriggerSaveEvent(EState *estate, ResultRelInfo *relinfo,
 			{
 				Assert(oldtup != NULL);
 				Assert(newtup == NULL);
-				ItemPointerCopy(&(oldtup->t_self), &(new_event.ate_ctid1));
+				new_event.ate_ctid1 = oldtup->t_self;
 				ItemPointerSetInvalid(&(new_event.ate_ctid2));
 			}
 			else
@@ -5186,8 +5186,8 @@ AfterTriggerSaveEvent(EState *estate, ResultRelInfo *relinfo,
 			{
 				Assert(oldtup != NULL);
 				Assert(newtup != NULL);
-				ItemPointerCopy(&(oldtup->t_self), &(new_event.ate_ctid1));
-				ItemPointerCopy(&(newtup->t_self), &(new_event.ate_ctid2));
+				new_event.ate_ctid1 = oldtup->t_self;
+				new_event.ate_ctid2 = newtup->t_self;
 			}
 			else
 			{
diff --git a/src/backend/executor/execReplication.c b/src/backend/executor/execReplication.c
index a8bd583..7ea8e44 100644
--- a/src/backend/executor/execReplication.c
+++ b/src/backend/executor/execReplication.c
@@ -170,7 +170,7 @@ retry:
 		HTSU_Result res;
 		HeapTupleData locktup;
 
-		ItemPointerCopy(&outslot->tts_tuple->t_self, &locktup.t_self);
+		locktup.t_self = outslot->tts_tuple->t_self;
 
 		PushActiveSnapshot(GetLatestSnapshot());
 
@@ -317,7 +317,7 @@ retry:
 		HTSU_Result res;
 		HeapTupleData locktup;
 
-		ItemPointerCopy(&outslot->tts_tuple->t_self, &locktup.t_self);
+		locktup.t_self = outslot->tts_tuple->t_self;
 
 		PushActiveSnapshot(GetLatestSnapshot());
 
diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c
index d805ef4..3a5d8fc 100644
--- a/src/backend/replication/logical/reorderbuffer.c
+++ b/src/backend/replication/logical/reorderbuffer.c
@@ -1233,8 +1233,7 @@ ReorderBufferBuildTupleCidHash(ReorderBuffer *rb, ReorderBufferTXN *txn)
 
 		key.relnode = change->data.tuplecid.node;
 
-		ItemPointerCopy(&change->data.tuplecid.tid,
-						&key.tid);
+		key.tid = change->data.tuplecid.tid;
 
 		ent = (ReorderBufferTupleCidEnt *)
 			hash_search(txn->tuplecid_hash,
@@ -3106,9 +3105,7 @@ ApplyLogicalMappingFile(HTAB *tuplecid_data, Oid relid, const char *fname)
 							(int32) sizeof(LogicalRewriteMappingData))));
 
 		key.relnode = map.old_node;
-		ItemPointerCopy(&map.old_tid,
-						&key.tid);
-
+		key.tid = map.old_tid;
 
 		ent = (ReorderBufferTupleCidEnt *)
 			hash_search(tuplecid_data,
@@ -3121,8 +3118,7 @@ ApplyLogicalMappingFile(HTAB *tuplecid_data, Oid relid, const char *fname)
 			continue;
 
 		key.relnode = map.new_node;
-		ItemPointerCopy(&map.new_tid,
-						&key.tid);
+		key.tid = map.new_tid;
 
 		new_ent = (ReorderBufferTupleCidEnt *)
 			hash_search(tuplecid_data,
@@ -3297,8 +3293,7 @@ ResolveCminCmaxDuringDecoding(HTAB *tuplecid_data,
 	Assert(forkno == MAIN_FORKNUM);
 	Assert(blockno == ItemPointerGetBlockNumber(&htup->t_self));
 
-	ItemPointerCopy(&htup->t_self,
-					&key.tid);
+	key.tid = htup->t_self;
 
 restart:
 	ent = (ReorderBufferTupleCidEnt *)
diff --git a/src/backend/utils/adt/tid.c b/src/backend/utils/adt/tid.c
index a3b372f..1eda80d 100644
--- a/src/backend/utils/adt/tid.c
+++ b/src/backend/utils/adt/tid.c
@@ -354,7 +354,7 @@ currtid_byreloid(PG_FUNCTION_ARGS)
 	if (rel->rd_rel->relkind == RELKIND_VIEW)
 		return currtid_for_view(rel, tid);
 
-	ItemPointerCopy(tid, result);
+	*result = *tid;
 
 	snapshot = RegisterSnapshot(GetLatestSnapshot());
 	heap_get_latest_tid(rel, snapshot, result);
@@ -389,7 +389,7 @@ currtid_byrelname(PG_FUNCTION_ARGS)
 		return currtid_for_view(rel, tid);
 
 	result = (ItemPointer) palloc(sizeof(ItemPointerData));
-	ItemPointerCopy(tid, result);
+	*result = *tid;
 
 	snapshot = RegisterSnapshot(GetLatestSnapshot());
 	heap_get_latest_tid(rel, snapshot, result);
