diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2008-03-10 03:37:59 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2008-03-10 03:37:59 +0000 |
commit | bfce56eea45b1369b7bb2150a150d1ac109f5073 (patch) | |
tree | 6f7a3075d688b170ce7068ae61cf8ddb6fda7343 /src/backend/executor/nodeLimit.c | |
parent | 2abf130a4efc0eb59f428e0fd2b4b300d372254a (diff) | |
download | postgresql-bfce56eea45b1369b7bb2150a150d1ac109f5073.tar.gz postgresql-bfce56eea45b1369b7bb2150a150d1ac109f5073.zip |
Throw an error for negative LIMIT or OFFSET values, instead of silently
treating them as zero. Simon Riggs
Diffstat (limited to 'src/backend/executor/nodeLimit.c')
-rw-r--r-- | src/backend/executor/nodeLimit.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/backend/executor/nodeLimit.c b/src/backend/executor/nodeLimit.c index 1755268211e..58bac59d59a 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; } } |