From fbf7c91973861a9d7041dfe4c33b2cde5463411b Mon Sep 17 00:00:00 2001
From: Hou Zhijie <houzj.fnst@cn.fujitsu.com>
Date: Wed, 28 Aug 2024 11:51:35 +0800
Subject: [PATCH] Rename the conflict types for origin differ cases

This commit renames conflict types 'update_differ' and 'delete_differ' to
'update_origin_differs' and 'delete_origin_differs' to make them easier to
understand.

---
 doc/src/sgml/logical-replication.sgml      |  6 +++---
 src/backend/replication/logical/conflict.c | 12 ++++++------
 src/backend/replication/logical/worker.c   |  6 +++---
 src/include/replication/conflict.h         |  4 ++--
 src/test/subscription/t/013_partition.pl   |  2 +-
 src/test/subscription/t/030_origin.pl      |  4 ++--
 6 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/doc/src/sgml/logical-replication.sgml b/doc/src/sgml/logical-replication.sgml
index bee7e02983..89b41011dd 100644
--- a/doc/src/sgml/logical-replication.sgml
+++ b/doc/src/sgml/logical-replication.sgml
@@ -1602,7 +1602,7 @@ test_sub=# SELECT * FROM t1 ORDER BY id;
      </listitem>
     </varlistentry>
     <varlistentry>
-     <term><literal>update_differ</literal></term>
+     <term><literal>update_origin_differs</literal></term>
      <listitem>
       <para>
        Updating a row that was previously modified by another origin.
@@ -1640,7 +1640,7 @@ test_sub=# SELECT * FROM t1 ORDER BY id;
      </listitem>
     </varlistentry>
     <varlistentry>
-     <term><literal>delete_differ</literal></term>
+     <term><literal>delete_origin_differs</literal></term>
      <listitem>
       <para>
        Deleting a row that was previously modified by another origin. Note that
@@ -1726,7 +1726,7 @@ DETAIL:  <replaceable class="parameter">detailed_explanation</replaceable>.
         <para>
          The <literal>existing local tuple</literal> section includes the local
          tuple if its origin differs from the remote tuple for
-         <literal>update_differ</literal> or <literal>delete_differ</literal>
+         <literal>update_origin_differs</literal> or <literal>delete_origin_differs</literal>
          conflicts, or if the key value conflicts with the remote tuple for
          <literal>insert_exists</literal> or <literal>update_exists</literal>
          conflicts.
diff --git a/src/backend/replication/logical/conflict.c b/src/backend/replication/logical/conflict.c
index 0bc7959980..dde3b4d9c8 100644
--- a/src/backend/replication/logical/conflict.c
+++ b/src/backend/replication/logical/conflict.c
@@ -24,10 +24,10 @@
 
 static const char *const ConflictTypeNames[] = {
 	[CT_INSERT_EXISTS] = "insert_exists",
-	[CT_UPDATE_DIFFER] = "update_differ",
+	[CT_UPDATE_ORIGIN_DIFFER] = "update_origin_differs",
 	[CT_UPDATE_EXISTS] = "update_exists",
 	[CT_UPDATE_MISSING] = "update_missing",
-	[CT_DELETE_DIFFER] = "delete_differ",
+	[CT_DELETE_ORIGIN_DIFFER] = "delete_origin_differs",
 	[CT_DELETE_MISSING] = "delete_missing"
 };
 
@@ -167,9 +167,9 @@ errcode_apply_conflict(ConflictType type)
 		case CT_INSERT_EXISTS:
 		case CT_UPDATE_EXISTS:
 			return errcode(ERRCODE_UNIQUE_VIOLATION);
-		case CT_UPDATE_DIFFER:
+		case CT_UPDATE_ORIGIN_DIFFER:
 		case CT_UPDATE_MISSING:
-		case CT_DELETE_DIFFER:
+		case CT_DELETE_ORIGIN_DIFFER:
 		case CT_DELETE_MISSING:
 			return errcode(ERRCODE_T_R_SERIALIZATION_FAILURE);
 	}
@@ -237,7 +237,7 @@ errdetail_apply_conflict(EState *estate, ResultRelInfo *relinfo,
 
 			break;
 
-		case CT_UPDATE_DIFFER:
+		case CT_UPDATE_ORIGIN_DIFFER:
 			if (localorigin == InvalidRepOriginId)
 				appendStringInfo(&err_detail, _("Updating the row that was modified locally in transaction %u at %s."),
 								 localxmin, timestamptz_to_str(localts));
@@ -256,7 +256,7 @@ errdetail_apply_conflict(EState *estate, ResultRelInfo *relinfo,
 			appendStringInfo(&err_detail, _("Could not find the row to be updated."));
 			break;
 
-		case CT_DELETE_DIFFER:
+		case CT_DELETE_ORIGIN_DIFFER:
 			if (localorigin == InvalidRepOriginId)
 				appendStringInfo(&err_detail, _("Deleting the row that was modified locally in transaction %u at %s."),
 								 localxmin, timestamptz_to_str(localts));
diff --git a/src/backend/replication/logical/worker.c b/src/backend/replication/logical/worker.c
index 38c2895307..adedd25331 100644
--- a/src/backend/replication/logical/worker.c
+++ b/src/backend/replication/logical/worker.c
@@ -2702,7 +2702,7 @@ apply_handle_update_internal(ApplyExecutionData *edata,
 			newslot = table_slot_create(localrel, &estate->es_tupleTable);
 			slot_store_data(newslot, relmapentry, newtup);
 
-			ReportApplyConflict(estate, relinfo, LOG, CT_UPDATE_DIFFER,
+			ReportApplyConflict(estate, relinfo, LOG, CT_UPDATE_ORIGIN_DIFFER,
 								remoteslot, localslot, newslot,
 								InvalidOid, localxmin, localorigin, localts);
 		}
@@ -2868,7 +2868,7 @@ apply_handle_delete_internal(ApplyExecutionData *edata,
 		 */
 		if (GetTupleTransactionInfo(localslot, &localxmin, &localorigin, &localts) &&
 			localorigin != replorigin_session_origin)
-			ReportApplyConflict(estate, relinfo, LOG, CT_DELETE_DIFFER,
+			ReportApplyConflict(estate, relinfo, LOG, CT_DELETE_ORIGIN_DIFFER,
 								remoteslot, localslot, NULL,
 								InvalidOid, localxmin, localorigin, localts);
 
@@ -3097,7 +3097,7 @@ apply_handle_tuple_routing(ApplyExecutionData *edata,
 					newslot = table_slot_create(partrel, &estate->es_tupleTable);
 					slot_store_data(newslot, part_entry, newtup);
 
-					ReportApplyConflict(estate, partrelinfo, LOG, CT_UPDATE_DIFFER,
+					ReportApplyConflict(estate, partrelinfo, LOG, CT_UPDATE_ORIGIN_DIFFER,
 										remoteslot_part, localslot, newslot,
 										InvalidOid, localxmin, localorigin,
 										localts);
diff --git a/src/include/replication/conflict.h b/src/include/replication/conflict.h
index 02cb84da7e..b37c7d2ca0 100644
--- a/src/include/replication/conflict.h
+++ b/src/include/replication/conflict.h
@@ -21,7 +21,7 @@ typedef enum
 	CT_INSERT_EXISTS,
 
 	/* The row to be updated was modified by a different origin */
-	CT_UPDATE_DIFFER,
+	CT_UPDATE_ORIGIN_DIFFER,
 
 	/* The updated row value violates unique constraint */
 	CT_UPDATE_EXISTS,
@@ -30,7 +30,7 @@ typedef enum
 	CT_UPDATE_MISSING,
 
 	/* The row to be deleted was modified by a different origin */
-	CT_DELETE_DIFFER,
+	CT_DELETE_ORIGIN_DIFFER,
 
 	/* The row to be deleted is missing */
 	CT_DELETE_MISSING,
diff --git a/src/test/subscription/t/013_partition.pl b/src/test/subscription/t/013_partition.pl
index cf91542ed0..f2ecb37b6b 100644
--- a/src/test/subscription/t/013_partition.pl
+++ b/src/test/subscription/t/013_partition.pl
@@ -799,7 +799,7 @@ $node_publisher->wait_for_catchup('sub_viaroot');
 
 $logfile = slurp_file($node_subscriber1->logfile(), $log_location);
 ok( $logfile =~
-	  qr/conflict detected on relation "public.tab2_1": conflict=update_differ.*\n.*DETAIL:.* Updating the row that was modified locally in transaction [0-9]+ at .*\n.*Existing local tuple \(yyy, null, 3\); remote tuple \(pub_tab2, quux, 3\); replica identity \(a\)=\(3\)/,
+	  qr/conflict detected on relation "public.tab2_1": conflict=update_origin_differs.*\n.*DETAIL:.* Updating the row that was modified locally in transaction [0-9]+ at .*\n.*Existing local tuple \(yyy, null, 3\); remote tuple \(pub_tab2, quux, 3\); replica identity \(a\)=\(3\)/,
 	'updating a tuple that was modified by a different origin');
 
 # The remaining tests no longer test conflict detection.
diff --git a/src/test/subscription/t/030_origin.pl b/src/test/subscription/t/030_origin.pl
index 01536a13e7..adfae1a56e 100644
--- a/src/test/subscription/t/030_origin.pl
+++ b/src/test/subscription/t/030_origin.pl
@@ -163,7 +163,7 @@ is($result, qq(32), 'The node_A data replicated to node_B');
 $node_C->safe_psql('postgres', "UPDATE tab SET a = 33 WHERE a = 32;");
 
 $node_B->wait_for_log(
-	qr/conflict detected on relation "public.tab": conflict=update_differ.*\n.*DETAIL:.* Updating the row that was modified by a different origin ".*" in transaction [0-9]+ at .*\n.*Existing local tuple \(32\); remote tuple \(33\); replica identity \(a\)=\(32\)/
+	qr/conflict detected on relation "public.tab": conflict=update_origin_differs.*\n.*DETAIL:.* Updating the row that was modified by a different origin ".*" in transaction [0-9]+ at .*\n.*Existing local tuple \(32\); remote tuple \(33\); replica identity \(a\)=\(32\)/
 );
 
 $node_B->safe_psql('postgres', "DELETE FROM tab;");
@@ -179,7 +179,7 @@ is($result, qq(33), 'The node_A data replicated to node_B');
 $node_C->safe_psql('postgres', "DELETE FROM tab WHERE a = 33;");
 
 $node_B->wait_for_log(
-	qr/conflict detected on relation "public.tab": conflict=delete_differ.*\n.*DETAIL:.* Deleting the row that was modified by a different origin ".*" in transaction [0-9]+ at .*\n.*Existing local tuple \(33\); replica identity \(a\)=\(33\)/
+	qr/conflict detected on relation "public.tab": conflict=delete_origin_differs.*\n.*DETAIL:.* Deleting the row that was modified by a different origin ".*" in transaction [0-9]+ at .*\n.*Existing local tuple \(33\); replica identity \(a\)=\(33\)/
 );
 
 # The remaining tests no longer test conflict detection.
-- 
2.30.0.windows.2

