From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Avoid leaking memory while evaluating arguments for a table func |
Date: | 2014-06-20 02:14:41 |
Message-ID: | E1WxoLh-0002zk-JC@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Avoid leaking memory while evaluating arguments for a table function.
ExecMakeTableFunctionResult evaluated the arguments for a function-in-FROM
in the query-lifespan memory context. This is insignificant in simple
cases where the function relation is scanned only once; but if the function
is in a sub-SELECT or is on the inside of a nested loop, any memory
consumed during argument evaluation can add up quickly. (The potential for
trouble here had been foreseen long ago, per existing comments; but we'd
not previously seen a complaint from the field about it.) To fix, create
an additional temporary context just for this purpose.
Per an example from MauMau. Back-patch to all active branches.
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/45b0f357235236dd3198f8abcca277adc0d7459a
Modified Files
--------------
src/backend/executor/execQual.c | 15 +++++++++++----
src/backend/executor/nodeFunctionscan.c | 16 ++++++++++++++++
src/include/executor/executor.h | 1 +
src/include/nodes/execnodes.h | 2 ++
4 files changed, 30 insertions(+), 4 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2014-06-20 02:21:06 | Re: pgsql: Let installcheck-world pass against a server requiring a passwor |
Previous Message | Noah Misch | 2014-06-20 01:49:31 | pgsql: Fix contrib/pg_upgrade/test.sh for $PWD containing spaces. |