From: Tom Lane Date: Mon, 10 Mar 2008 03:37:59 +0000 (+0000) Subject: Throw an error for negative LIMIT or OFFSET values, instead of silently X-Git-Tag: REL8_4_BETA1~1855 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bfce56eea45b1369b7bb2150a150d1ac109f5073;p=postgresql Throw an error for negative LIMIT or OFFSET values, instead of silently treating them as zero. Simon Riggs --- diff --git a/src/backend/executor/nodeLimit.c b/src/backend/executor/nodeLimit.c index 1755268211..58bac59d59 100644 --- a/src/backend/executor/nodeLimit.c +++ b/src/backend/executor/nodeLimit.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/executor/nodeLimit.c,v 1.33 2008/01/01 19:45:49 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/executor/nodeLimit.c,v 1.34 2008/03/10 03:37:59 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -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; } }