> Could we reject the pgrepack plugin at slot creation instead, in > pg_create_logical_replication_slot() and the CREATE_REPLICATION_SLOT > command, so misuse gets a clear "reserved for REPACK (CONCURRENTLY)" > error up front, before any decoding? REPACK creates its slot directly via > ReplicationSlotCreate(), so it's unaffected, and the begin-callback check > with magic guard can stay as the internal safety net. > Happy to be told this isn't worth special-casing :)
Another possible approach: restrict the use of the plugin to the REPACK decoding worker.
cool ... that's cleaner, incorporated these changes and added test ,errcode.