summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2008-03-10 03:37:59 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2008-03-10 03:37:59 +0000
commitbfce56eea45b1369b7bb2150a150d1ac109f5073 (patch)
tree6f7a3075d688b170ce7068ae61cf8ddb6fda7343
parent2abf130a4efc0eb59f428e0fd2b4b300d372254a (diff)
downloadpostgresql-bfce56eea45b1369b7bb2150a150d1ac109f5073.tar.gz
Throw an error for negative LIMIT or OFFSET values, instead of silently
treating them as zero. Simon Riggs
-rw-r--r--src/backend/executor/nodeLimit.c10
1 files changed, 7 insertions, 3 deletions
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;
}
}