Add new SQL:2008 error codes for invalid LIMIT and OFFSET values. Remove
authorPeter Eisentraut <peter_e@gmx.net>
Wed, 4 Mar 2009 10:55:00 +0000 (10:55 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Wed, 4 Mar 2009 10:55:00 +0000 (10:55 +0000)
unused nonstandard error code that was perhaps intended for this but never
used.

doc/src/sgml/errcodes.sgml
src/backend/executor/nodeLimit.c
src/include/utils/errcodes.h
src/pl/plpgsql/src/plerrcodes.h

index ae8b61ff44336f744fe6f2f612b442f1c760ce6f..9f9f91a6191d590a0ce588cb5479270daf8fc033 100644 (file)
 <entry>invalid_indicator_parameter_value</entry>
 </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_regular_expression</entry>
 </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>
index 2c732a535f9dab9ee42a37dc7edab38ab9f7974b..82501c0a343eae10745b02f6335d78a56488fe8a 100644 (file)
@@ -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;
                }
index 1598011b1f34b96ed8d4a869f075118ba88e42a1..44018cdfd66764e4d3a5aa8f120568ef5fa7c70a 100644 (file)
 #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')
index 92482bf145ed7f239699585c6d04eb989ff903bb..65be3920ff227013f97ff130b3fb685aab742c7d 100644 (file)
 },
 
 {
-       "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
 },
 
 {