aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/nodeFunctionscan.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2007-01-28 16:15:58 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2007-01-28 16:15:58 +0000
commit8a114e0031706ae9a1d239702ddb457ecabd25fa (patch)
tree4ce6ee8e9b5ec5371ef7c1101d306acd596f8b3f /src/backend/executor/nodeFunctionscan.c
parente96164dd712c13cda07912feb31c9792ad2e93ca (diff)
downloadpostgresql-8a114e0031706ae9a1d239702ddb457ecabd25fa.tar.gz
postgresql-8a114e0031706ae9a1d239702ddb457ecabd25fa.zip
Fix up plpgsql's "simple expression" evaluation mechanism so that it behaves
safely in the presence of subtransactions. To ensure that any ExprContext shutdown callbacks are called at the right times, we have to have a separate EState for each level of subtransaction. Per "TupleDesc reference leak" bug report from Stefan Kaltenbrunner. Although I'm convinced the code is wrong as far back as 8.0, it doesn't seem that there are any ways for the problem to really manifest before 8.2: AFAICS, 8.0 and 8.1 only use the ExprContextCallback mechanism to handle set-returning functions, which cannot usefully be executed in a "simple expression" anyway. Hence, no backpatch before 8.2 --- the risk of unforeseen breakage seems to outweigh the chance of fixing something.
Diffstat (limited to 'src/backend/executor/nodeFunctionscan.c')
0 files changed, 0 insertions, 0 deletions