diff options
Diffstat (limited to 'src/bin/pg_basebackup/pg_recvlogical.c')
-rw-r--r-- | src/bin/pg_basebackup/pg_recvlogical.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/bin/pg_basebackup/pg_recvlogical.c b/src/bin/pg_basebackup/pg_recvlogical.c index b9ea23e1426..a3447753119 100644 --- a/src/bin/pg_basebackup/pg_recvlogical.c +++ b/src/bin/pg_basebackup/pg_recvlogical.c @@ -944,13 +944,16 @@ main(int argc, char **argv) #endif /* - * Run IDENTIFY_SYSTEM to make sure we connected using a database specific - * replication connection. + * Run IDENTIFY_SYSTEM to check the connection type for each action. + * --create-slot and --start actions require a database-specific + * replication connection because they handle logical replication slots. + * --drop-slot can remove replication slots from any replication + * connection without this restriction. */ if (!RunIdentifySystem(conn, NULL, NULL, NULL, &db_name)) exit(1); - if (db_name == NULL) + if (!do_drop_slot && db_name == NULL) pg_fatal("could not establish database-specific replication connection"); /* |