diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/replication/slotfuncs.c | 14 | ||||
-rw-r--r-- | src/include/catalog/pg_proc.h | 4 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/backend/replication/slotfuncs.c b/src/backend/replication/slotfuncs.c index 761c0f536fb..5acd2bae19c 100644 --- a/src/backend/replication/slotfuncs.c +++ b/src/backend/replication/slotfuncs.c @@ -56,7 +56,7 @@ pg_create_physical_replication_slot(PG_FUNCTION_ARGS) /* acquire replication slot, this will check for conflicting names*/ ReplicationSlotCreate(NameStr(*name), false); - values[0] = CStringGetTextDatum(NameStr(MyReplicationSlot->data.name)); + values[0] = NameGetDatum(&MyReplicationSlot->data.name); nulls[0] = false; nulls[1] = true; @@ -141,7 +141,8 @@ pg_get_replication_slots(PG_FUNCTION_ARGS) XLogRecPtr restart_lsn; bool active; Oid database; - const char *slot_name; + NameData slot_name; + int i; SpinLockAcquire(&slot->mutex); @@ -155,7 +156,7 @@ pg_get_replication_slots(PG_FUNCTION_ARGS) xmin = slot->data.xmin; database = slot->data.database; restart_lsn = slot->data.restart_lsn; - slot_name = pstrdup(NameStr(slot->data.name)); + namecpy(&slot_name, &slot->data.name); active = slot->active; } @@ -164,12 +165,15 @@ pg_get_replication_slots(PG_FUNCTION_ARGS) memset(nulls, 0, sizeof(nulls)); i = 0; - values[i++] = CStringGetTextDatum(slot_name); + values[i++] = NameGetDatum(&slot_name); if (database == InvalidOid) values[i++] = CStringGetTextDatum("physical"); else values[i++] = CStringGetTextDatum("logical"); - values[i++] = database; + if (database == InvalidOid) + nulls[i++] = true; + else + values[i++] = database; values[i++] = BoolGetDatum(active); if (xmin != InvalidTransactionId) values[i++] = TransactionIdGetDatum(xmin); diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h index e33670ce8e0..7a11721ba44 100644 --- a/src/include/catalog/pg_proc.h +++ b/src/include/catalog/pg_proc.h @@ -4800,11 +4800,11 @@ DATA(insert OID = 3473 ( spg_range_quad_leaf_consistent PGNSP PGUID 12 1 0 0 0 DESCR("SP-GiST support for quad tree over range"); /* replication slots */ -DATA(insert OID = 3779 ( pg_create_physical_replication_slot PGNSP PGUID 12 1 0 0 0 f f f f f f v 1 0 2249 "19" "{19,25,3220}" "{i,o,o}" "{slotname,slotname,xlog_position}" _null_ pg_create_physical_replication_slot _null_ _null_ _null_ )); +DATA(insert OID = 3779 ( pg_create_physical_replication_slot PGNSP PGUID 12 1 0 0 0 f f f f f f v 1 0 2249 "19" "{19,19,3220}" "{i,o,o}" "{slotname,slotname,xlog_position}" _null_ pg_create_physical_replication_slot _null_ _null_ _null_ )); DESCR("create a physical replication slot"); DATA(insert OID = 3780 ( pg_drop_replication_slot PGNSP PGUID 12 1 0 0 0 f f f f f f v 1 0 2278 "19" _null_ _null_ _null_ _null_ pg_drop_replication_slot _null_ _null_ _null_ )); DESCR("drop a replication slot"); -DATA(insert OID = 3781 ( pg_get_replication_slots PGNSP PGUID 12 1 10 0 0 f f f f f t s 0 0 2249 "" "{25,25,26,16,28,3220}" "{o,o,o,o,o,o}" "{slot_name,slot_type,datoid,active,xmin,restart_lsn}" _null_ pg_get_replication_slots _null_ _null_ _null_ )); +DATA(insert OID = 3781 ( pg_get_replication_slots PGNSP PGUID 12 1 10 0 0 f f f f f t s 0 0 2249 "" "{19,25,26,16,28,3220}" "{o,o,o,o,o,o}" "{slot_name,slot_type,datoid,active,xmin,restart_lsn}" _null_ pg_get_replication_slots _null_ _null_ _null_ )); DESCR("information about replication slots currently in use"); /* event triggers */ |