pgsql: pageinspect: Fix relcache leak in gist_page_items().

From: Heikki Linnakangas <heikki(dot)linnakangas(at)iki(dot)fi>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: pageinspect: Fix relcache leak in gist_page_items().
Date: 2021-01-17 22:47:32
Message-ID: E1l1GpY-0003Rk-38@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

pageinspect: Fix relcache leak in gist_page_items().

The gist_page_items() function opened the index relation on first call and
closed it on the last call. But there's no guarantee that the function is
run to completion, leading to a relcache leak and warning at the end of
the transaction. To fix, refactor the function to return all the rows in
one call, as a tuplestore.

Reported-by: Tom Lane
Discussion: https://www.postgresql.org/message-id/234863.1610916631%40sss.pgh.pa.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/04eb75e783ba49ca2e0e75088d6590b64be8ed4d

Modified Files
--------------
contrib/pageinspect/gistfuncs.c | 170 +++++++++++++++++-----------------------
1 file changed, 74 insertions(+), 96 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Michael Paquier 2021-01-18 05:05:54 pgsql: Refactor option handling of CLUSTER, REINDEX and VACUUM
Previous Message Tomas Vondra 2021-01-17 21:30:49 pgsql: Set PD_ALL_VISIBLE and visibility map bits in COPY FREEZE