• Andrew Gierth's avatar
    Avoid query-lifetime memory leaks in XMLTABLE (bug #15321) · 07172d5a
    Andrew Gierth authored
    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
    07172d5a
execnodes.h 79.9 KB