From 94b5cf033cc7ba6ac962d1d13c475d84f6a179fe Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 10 Mar 2008 03:37:59 +0000 Subject: [PATCH] Throw an error for negative LIMIT or OFFSET values, instead of silently treating them as zero. Simon Riggs --- src/backend/executor/nodeLimit.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/backend/executor/nodeLimit.c b/src/backend/executor/nodeLimit.c index 0ef5e8593e..f748ec6e91 100644 --- a/src/backend/executor/nodeLimit.c +++ b/src/backend/executor/nodeLimit.c @@ -246,7 +246,9 @@ recompute_limits(LimitState *node) { node->offset = DatumGetInt64(val); if (node->offset < 0) - node->offset = 0; + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("OFFSET must not be negative"))); } } else @@ -271,7 +273,9 @@ recompute_limits(LimitState *node) { node->count = DatumGetInt64(val); if (node->count < 0) - node->count = 0; + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("LIMIT must not be negative"))); node->noCount = false; } } -- 2.39.5