aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/replication/syncrep.c9
-rw-r--r--src/test/recovery/t/007_sync_rep.pl2
2 files changed, 9 insertions, 2 deletions
diff --git a/src/backend/replication/syncrep.c b/src/backend/replication/syncrep.c
index 25c67aaac72..554f7832096 100644
--- a/src/backend/replication/syncrep.c
+++ b/src/backend/replication/syncrep.c
@@ -951,7 +951,14 @@ SyncRepGetStandbyPriority(void)
standby_name += strlen(standby_name) + 1;
}
- return (found ? priority : 0);
+ if (!found)
+ return 0;
+
+ /*
+ * In quorum-based sync replication, all the standbys in the list
+ * have the same priority, one.
+ */
+ return (SyncRepConfig->syncrep_method == SYNC_REP_PRIORITY) ? priority : 1;
}
/*
diff --git a/src/test/recovery/t/007_sync_rep.pl b/src/test/recovery/t/007_sync_rep.pl
index e11b4289d52..e56bbb9d86f 100644
--- a/src/test/recovery/t/007_sync_rep.pl
+++ b/src/test/recovery/t/007_sync_rep.pl
@@ -186,7 +186,7 @@ standby4|0|async),
# for sync standbys in a quorum-based sync replication.
test_sync_state(
$node_master, qq(standby1|1|quorum
-standby2|2|quorum
+standby2|1|quorum
standby4|0|async),
'2 quorum and 1 async',
'ANY 2(standby1, standby2)');