Evaluate LIMIT/OFFSET expressions with ExecEvalExprSwitchContext, not

ExecEvalExpr, to avoid possible memory leak.
This commit is contained in:
Tom Lane 2001-08-06 18:05:07 +00:00
parent 5558e15ce5
commit 7d6fbe15a2

View File

@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/executor/nodeLimit.c,v 1.6 2001/03/23 04:49:53 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/executor/nodeLimit.c,v 1.7 2001/08/06 18:05:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -164,7 +164,8 @@ recompute_limits(Limit *node)
if (node->limitOffset)
{
limitstate->offset = DatumGetInt32(ExecEvalExpr(node->limitOffset,
limitstate->offset =
DatumGetInt32(ExecEvalExprSwitchContext(node->limitOffset,
econtext,
&isNull,
NULL));
@ -182,7 +183,8 @@ recompute_limits(Limit *node)
if (node->limitCount)
{
limitstate->count = DatumGetInt32(ExecEvalExpr(node->limitCount,
limitstate->count =
DatumGetInt32(ExecEvalExprSwitchContext(node->limitCount,
econtext,
&isNull,
NULL));