Always check foreign-server USAGE when resolving subscription conninfo.

Previously, this was skipped in some cases to avoid raising errors
when conninfo wasn't even needed. That was wrong in cases where
conninfo was needed.

Now that we only build conninfo when needed, always perform the USAGE
check.

Addresses finding 7 in report from linked discussion.

Co-authored-by: Shlok Kyal <[email protected]>
Reported-by: Noah Misch <[email protected]>
Reviewed-by: Shlok Kyal <[email protected]>
Reviewed-by: Hayato Kuroda (Fujitsu) <[email protected]>
Reviewed-by: Amit Kapila <[email protected]>
Discussion: https://postgr.es/m/20260710195902.4f.noahmisch%40microsoft.com
Backpatch-through: 19

Branch
------
REL_19_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/5ba18183c4ca34beeedf7023d1f260ba1f5e9f87

Modified Files
--------------
src/backend/catalog/pg_subscription.c      | 23 ++++++++++-------------
src/backend/commands/subscriptioncmds.c    |  9 +--------
src/backend/replication/logical/worker.c   |  4 ++--
src/include/catalog/pg_subscription.h      |  2 +-
src/test/regress/expected/subscription.out |  3 +++
src/test/regress/sql/subscription.sql      |  3 +++
6 files changed, 20 insertions(+), 24 deletions(-)

Reply via email to