diff options
author | Peter Eisentraut | 2009-03-04 10:55:00 +0000 |
---|---|---|
committer | Peter Eisentraut | 2009-03-04 10:55:00 +0000 |
commit | 72431744d7bfb861dd9012934dff281f2175f11d (patch) | |
tree | c38b5e0365290eb678882deee1416afd7e67d2f8 | |
parent | e0dd110ed2531ff2e69546804a03de4df9f5e37a (diff) |
Add new SQL:2008 error codes for invalid LIMIT and OFFSET values. Remove
unused nonstandard error code that was perhaps intended for this but never
used.
-rw-r--r-- | doc/src/sgml/errcodes.sgml | 18 | ||||
-rw-r--r-- | src/backend/executor/nodeLimit.c | 4 | ||||
-rw-r--r-- | src/include/utils/errcodes.h | 3 | ||||
-rw-r--r-- | src/pl/plpgsql/src/plerrcodes.h | 10 |
4 files changed, 23 insertions, 12 deletions
diff --git a/doc/src/sgml/errcodes.sgml b/doc/src/sgml/errcodes.sgml index ae8b61ff44..9f9f91a619 100644 --- a/doc/src/sgml/errcodes.sgml +++ b/doc/src/sgml/errcodes.sgml @@ -445,12 +445,6 @@ </row> <row> -<entry><literal>22020</literal></entry> -<entry>INVALID LIMIT VALUE</entry> -<entry>invalid_limit_value</entry> -</row> - -<row> <entry><literal>22023</literal></entry> <entry>INVALID PARAMETER VALUE</entry> <entry>invalid_parameter_value</entry> @@ -463,6 +457,18 @@ </row> <row> +<entry><literal>2201W</literal></entry> +<entry>INVALID ROW COUNT IN LIMIT CLAUSE</entry> +<entry>invalid_row_count_in_limit_clause</entry> +</row> + +<row> +<entry><literal>2201X</literal></entry> +<entry>INVALID ROW COUNT IN RESULT OFFSET CLAUSE</entry> +<entry>invalid_row_count_in_result_offset_clause</entry> +</row> + +<row> <entry><literal>22009</literal></entry> <entry>INVALID TIME ZONE DISPLACEMENT VALUE</entry> <entry>invalid_time_zone_displacement_value</entry> diff --git a/src/backend/executor/nodeLimit.c b/src/backend/executor/nodeLimit.c index 2c732a535f..82501c0a34 100644 --- a/src/backend/executor/nodeLimit.c +++ b/src/backend/executor/nodeLimit.c @@ -247,7 +247,7 @@ recompute_limits(LimitState *node) node->offset = DatumGetInt64(val); if (node->offset < 0) ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + (errcode(ERRCODE_INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE), errmsg("OFFSET must not be negative"))); } } @@ -274,7 +274,7 @@ recompute_limits(LimitState *node) node->count = DatumGetInt64(val); if (node->count < 0) ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + (errcode(ERRCODE_INVALID_ROW_COUNT_IN_LIMIT_CLAUSE), errmsg("LIMIT must not be negative"))); node->noCount = false; } diff --git a/src/include/utils/errcodes.h b/src/include/utils/errcodes.h index 1598011b1f..44018cdfd6 100644 --- a/src/include/utils/errcodes.h +++ b/src/include/utils/errcodes.h @@ -133,9 +133,10 @@ #define ERRCODE_INVALID_ESCAPE_SEQUENCE MAKE_SQLSTATE('2','2', '0','2','5') #define ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER MAKE_SQLSTATE('2','2', 'P','0','6') #define ERRCODE_INVALID_INDICATOR_PARAMETER_VALUE MAKE_SQLSTATE('2','2', '0','1','0') -#define ERRCODE_INVALID_LIMIT_VALUE MAKE_SQLSTATE('2','2', '0','2','0') #define ERRCODE_INVALID_PARAMETER_VALUE MAKE_SQLSTATE('2','2', '0','2','3') #define ERRCODE_INVALID_REGULAR_EXPRESSION MAKE_SQLSTATE('2','2', '0','1','B') +#define ERRCODE_INVALID_ROW_COUNT_IN_LIMIT_CLAUSE MAKE_SQLSTATE('2', '2', '0', '1', 'W') +#define ERRCODE_INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE MAKE_SQLSTATE('2', '2', '0', '1', 'X') #define ERRCODE_INVALID_TIME_ZONE_DISPLACEMENT_VALUE MAKE_SQLSTATE('2','2', '0','0','9') #define ERRCODE_INVALID_USE_OF_ESCAPE_CHARACTER MAKE_SQLSTATE('2','2', '0','0','C') #define ERRCODE_MOST_SPECIFIC_TYPE_MISMATCH MAKE_SQLSTATE('2','2', '0','0','G') diff --git a/src/pl/plpgsql/src/plerrcodes.h b/src/pl/plpgsql/src/plerrcodes.h index 92482bf145..65be3920ff 100644 --- a/src/pl/plpgsql/src/plerrcodes.h +++ b/src/pl/plpgsql/src/plerrcodes.h @@ -176,15 +176,19 @@ }, { - "invalid_limit_value", ERRCODE_INVALID_LIMIT_VALUE + "invalid_parameter_value", ERRCODE_INVALID_PARAMETER_VALUE }, { - "invalid_parameter_value", ERRCODE_INVALID_PARAMETER_VALUE + "invalid_regular_expression", ERRCODE_INVALID_REGULAR_EXPRESSION }, { - "invalid_regular_expression", ERRCODE_INVALID_REGULAR_EXPRESSION + "invalid_row_count_in_limit_clause", ERRCODE_INVALID_ROW_COUNT_IN_LIMIT_CLAUSE +}, + +{ + "invalid_row_count_in_result_offset_clause", ERRCODE_INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE }, { |