aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/mcxtfuncs.c
diff options
context:
space:
mode:
authorNathan Bossart <nathan@postgresql.org>2024-07-24 11:30:33 -0500
committerNathan Bossart <nathan@postgresql.org>2024-07-24 11:30:33 -0500
commit364509a2e7f92785407348ec702e39729fda6cf8 (patch)
tree0631df7a0ad4e35229f59609f05e1a5b0bb329aa /src/backend/utils/adt/mcxtfuncs.c
parent9f21482fe189c3b6193e9a7c3c50518a8a805165 (diff)
downloadpostgresql-364509a2e7f92785407348ec702e39729fda6cf8.tar.gz
postgresql-364509a2e7f92785407348ec702e39729fda6cf8.zip
pg_upgrade: Retrieve subscription count more efficiently.
Presently, pg_upgrade obtains the number of subscriptions in the to-be-upgraded cluster by first querying pg_subscription in every database for the number of subscriptions in only that database. Then, in count_old_cluster_subscriptions(), it adds all the values collected in the first step. This is expensive, especially when there are many databases. Fortunately, there is a better way to retrieve the subscription count. Since pg_subscription is a shared catalog, we only need to connect to a single database and query it once. This commit modifies pg_upgrade to use that approach, which also allows us to trim several lines of code. In passing, move the call to get_db_subscription_count(), which has been renamed to get_subscription_count(), from get_db_rel_and_slot_infos() to the dedicated >= v17 section in check_and_dump_old_cluster(). We may be able to make similar improvements to get_old_cluster_logical_slot_infos(), but that is left as a future exercise. Reviewed-by: Michael Paquier, Amit Kapila Discussion: https://postgr.es/m/ZprQJv_TxccN3tkr%40nathan Backpatch-through: 17
Diffstat (limited to 'src/backend/utils/adt/mcxtfuncs.c')
0 files changed, 0 insertions, 0 deletions