GetSubscription(): use per-object memory context. Constructing a Subcription object uses a number of small or temporary allocations. Use a per-object memory context for easy cleanup.
Get rid of FreeSubscription() which did not free all the allocations anyway. Also get rid of the PG_TRY()/PG_CATCH() logic in ForeignServerConnectionString() which were used to avoid leaks during GetSubscription(). Co-authored-by: Álvaro Herrera <[email protected]> Suggested-by: Andres Freund <[email protected]> Reviewed-by: Amit Kapila <[email protected]> Discussion: https://postgr.es/m/xvdjrdqnpap3uq7owbaox3r7p5gf7sv62aaqf2ju3vb6yglatr%40kvvwhoudrlxq Discussion: https://postgr.es/m/CAA4eK1K=WjZ1maBCmj=5zdo66awpork5zbxvkeds0xdccb6...@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/f16f5d608ca6830f452a3b1e9f72afc6851cab38 Modified Files -------------- src/backend/catalog/pg_subscription.c | 24 +++++------- src/backend/foreign/foreign.c | 66 +++++++++----------------------- src/backend/replication/logical/worker.c | 36 ++++++++--------- src/include/catalog/pg_subscription.h | 3 +- 4 files changed, 48 insertions(+), 81 deletions(-)
