diff options
Diffstat (limited to 'src/backend/replication/slotfuncs.c')
-rw-r--r-- | src/backend/replication/slotfuncs.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/backend/replication/slotfuncs.c b/src/backend/replication/slotfuncs.c index 47e104782c9..cad35dce7fc 100644 --- a/src/backend/replication/slotfuncs.c +++ b/src/backend/replication/slotfuncs.c @@ -406,10 +406,24 @@ pg_get_replication_slots(PG_FUNCTION_ARGS) nulls[i++] = true; else { - if (slot_contents.data.invalidated != RS_INVAL_NONE) - values[i++] = BoolGetDatum(true); - else - values[i++] = BoolGetDatum(false); + switch (slot_contents.data.invalidated) + { + case RS_INVAL_NONE: + nulls[i++] = true; + break; + + case RS_INVAL_WAL_REMOVED: + values[i++] = CStringGetTextDatum("wal_removed"); + break; + + case RS_INVAL_HORIZON: + values[i++] = CStringGetTextDatum("rows_removed"); + break; + + case RS_INVAL_WAL_LEVEL: + values[i++] = CStringGetTextDatum("wal_level_insufficient"); + break; + } } Assert(i == PG_GET_REPLICATION_SLOTS_COLS); |