Return nulls instead of InvalidTransactionId/InvalidXLogRecPtr in pg_replication_slots
authorAndres Freund <[email protected]>
Wed, 29 Jan 2014 16:04:12 +0000 (17:04 +0100)
committerAndres Freund <[email protected]>
Wed, 29 Jan 2014 16:04:12 +0000 (17:04 +0100)
src/backend/replication/slotfuncs.c

index dba06a10611458ba8636d933031639a8449533ab..aa44826d0965382e49c80771d08ced62474d5fe9 100644 (file)
@@ -175,8 +175,14 @@ pg_get_replication_slots(PG_FUNCTION_ARGS)
                        values[i++] = CStringGetTextDatum("logical");
                values[i++] = database;
                values[i++] = BoolGetDatum(active);
-               values[i++] = TransactionIdGetDatum(data_xmin);
-               values[i++] = CStringGetTextDatum(restart_lsn_s);
+               if (data_xmin != InvalidTransactionId)
+                       values[i++] = TransactionIdGetDatum(data_xmin);
+               else
+                       nulls[i++] = true;
+               if (restart_lsn != InvalidTransactionId)
+                       values[i++] = CStringGetTextDatum(restart_lsn_s);
+               else
+                       nulls[i++] = true;
 
                tuplestore_putvalues(tupstore, tupdesc, values, nulls);
        }