pgsql: Avoid query-lifetime memory leaks in XMLTABLE (bug #15321) - Mailing list pgsql-committers

From Andrew Gierth
Subject pgsql: Avoid query-lifetime memory leaks in XMLTABLE (bug #15321)
Date
Msg-id E1fp1Ks-0004tz-5T@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Avoid query-lifetime memory leaks in XMLTABLE (bug #15321)

Multiple calls to XMLTABLE in a query (e.g. laterally applying it to a
table with an xml column, an important use-case) were leaking large
amounts of memory into the per-query context, blowing up memory usage.

Repair by reorganizing memory context usage in nodeTableFuncscan; use
the usual per-tuple context for row-by-row evaluations instead of
perValueCxt, and use the explicitly created context -- renamed from
perValueCxt to perTableCxt -- for arguments and state for each
individual table-generation operation.

Backpatch to PG10 where this code was introduced.

Original report by IRC user begriffs; analysis and patch by me.
Reviewed by Tom Lane and Pavel Stehule.

Discussion: https://postgr.es/m/153394403528.10284.7530399040974170549@wrigleys.postgresql.org

Branch
------
REL_11_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/78f70e07e2cf42b95c9f0adb57e37cf6c1274ec3

Modified Files
--------------
src/backend/executor/nodeTableFuncscan.c | 29 ++++++++++++++++++++++++-----
src/include/nodes/execnodes.h            |  2 +-
2 files changed, 25 insertions(+), 6 deletions(-)


pgsql-committers by date:

Previous
From: Thomas Munro
Date:
Subject: Re: pgsql: Fix bogus loop logic in 013_crash_restart test'spump_until subr
Next
From: Amit Kapila
Date:
Subject: pgsql: Prohibit shutting down resources if there is a possibility ofba