From: Tom Lane Date: Mon, 6 Aug 2001 18:05:07 +0000 (+0000) Subject: Evaluate LIMIT/OFFSET expressions with ExecEvalExprSwitchContext, not X-Git-Tag: REL7_2_BETA1~757 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7d6fbe15a2597b6f1b46e9f067c4649645e5e516;p=postgresql Evaluate LIMIT/OFFSET expressions with ExecEvalExprSwitchContext, not ExecEvalExpr, to avoid possible memory leak. --- diff --git a/src/backend/executor/nodeLimit.c b/src/backend/executor/nodeLimit.c index 394f411ec4..da0e669776 100644 --- a/src/backend/executor/nodeLimit.c +++ b/src/backend/executor/nodeLimit.c @@ -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,10 +164,11 @@ recompute_limits(Limit *node) if (node->limitOffset) { - limitstate->offset = DatumGetInt32(ExecEvalExpr(node->limitOffset, - econtext, - &isNull, - NULL)); + limitstate->offset = + DatumGetInt32(ExecEvalExprSwitchContext(node->limitOffset, + econtext, + &isNull, + NULL)); /* Interpret NULL offset as no offset */ if (isNull) limitstate->offset = 0; @@ -182,10 +183,11 @@ recompute_limits(Limit *node) if (node->limitCount) { - limitstate->count = DatumGetInt32(ExecEvalExpr(node->limitCount, - econtext, - &isNull, - NULL)); + limitstate->count = + DatumGetInt32(ExecEvalExprSwitchContext(node->limitCount, + econtext, + &isNull, + NULL)); /* Interpret NULL count as no count (LIMIT ALL) */ if (isNull) limitstate->noCount = true;