Justin Pryzby <pryzby@telsasoft.com> wrote:
> I had trouble testing this at first:
>
> postgres=# REPACK (CONCURRENTLY) users;
> ERROR: 42501: permission denied to use replication slots
> DETAIL: Only roles with the REPLICATION attribute may use replication slots.
> CONTEXT: REPACK decoding worker
> LOCATION: CheckSlotPermissions, slot.c:1697
>
> That's surprising, since it was run as a superuser.
>
> It turns out that repack runs as the owner of the table, and the table
> *owner* needs to have REPLICATION -- regardless of who runs the command.
>
> I imagine people have been testing with one user, that both owns the
> table and invokes REPACK. Maybe this just needs to be clarified in the
> documentation/error message?
It was discussed earlier [1] and the concerns about possibly excessive
resource consumptions were addressed by [2]. So I think it the fix was just
forgotten. Attached here.
[1] https://www.postgresql.org/message-id/202603161220.7nv6whwu33hi@alvherre.pgsql
[2] https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=e76d8c749c3152657711ed733f0aea61c0e36a91
--
Antonin Houska
Web: https://www.cybertec-postgresql.com