git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 93db6cb)
Make GetSlotInvalidationCause() return RS_INVAL_NONE on unexpected input
2024年2月22日 10:59:58 +0000 (19:59 +0900)
2024年2月22日 10:59:58 +0000 (19:59 +0900)
943f7ae1c869 has changed GetSlotInvalidationCause() so as it would
return the last element of SlotInvalidationCauses[] when an incorrect
conflict reason name is given by a caller, but this should return
RS_INVAL_NONE in such cases, even if such a state should never be
reached in practice.

Per gripe from Peter Smith.

Reviewed-by: Bharath Rupireddy
Discussion: https://postgr.es/m/CAHut+PtsrSWxczpGkSaSVtJo+BXrvJ3Hwp5gES14bbL-G+HL7A@mail.gmail.com


diff --git a/src/backend/replication/slot.c b/src/backend/replication/slot.c
index 033b4ce0971a11b9aa942cbc9da915f04df8af50..0f173f63a28ca8e4be2fe5484ee812a873d73c00 100644 (file)
--- a/src/backend/replication/slot.c
+++ b/src/backend/replication/slot.c
@@ -2327,6 +2327,7 @@ ReplicationSlotInvalidationCause
GetSlotInvalidationCause(const char *conflict_reason)
{
ReplicationSlotInvalidationCause cause;
+ ReplicationSlotInvalidationCause result = RS_INVAL_NONE;
bool found PG_USED_FOR_ASSERTS_ONLY = false;
Assert(conflict_reason);
@@ -2336,10 +2337,11 @@ GetSlotInvalidationCause(const char *conflict_reason)
if (strcmp(SlotInvalidationCauses[cause], conflict_reason) == 0)
{
found = true;
+ result = cause;
break;
}
}
Assert(found);
- return cause;
+ return result;
}
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /