Make SQL/JSON error code names match SQL standard
authorPeter Eisentraut
Thu, 22 Aug 2019 08:17:30 +0000 (10:17 +0200)
committerPeter Eisentraut
Thu, 22 Aug 2019 08:45:38 +0000 (10:45 +0200)
There were some minor differences that didn't seem necessary.

Discussion: https://www.postgresql.org/message-id/flat/86b67eef-bb26-c97d-3e35-64f1fbd4f9fe%402ndquadrant.com

src/backend/utils/adt/jsonpath_exec.c
src/backend/utils/errcodes.txt

index 72bc5eab6cb09374fb49138b5d3b6c33b2286457..21106e1da866f7af8d4ca5ae4f85e9863643d6bd 100644 (file)
@@ -337,7 +337,7 @@ jsonb_path_match(PG_FUNCTION_ARGS)
 
    if (!silent)
        ereport(ERROR,
-               (errcode(ERRCODE_SINGLETON_JSON_ITEM_REQUIRED),
+               (errcode(ERRCODE_SINGLETON_SQL_JSON_ITEM_REQUIRED),
                 errmsg("single boolean result is expected")));
 
    PG_RETURN_NULL();
@@ -602,7 +602,7 @@ executeItemOptUnwrapTarget(JsonPathExecContext *cxt, JsonPathItem *jsp,
                        return jperError;
 
                    ereport(ERROR,
-                           (errcode(ERRCODE_JSON_MEMBER_NOT_FOUND), \
+                           (errcode(ERRCODE_SQL_JSON_MEMBER_NOT_FOUND), \
                             errmsg("JSON object does not contain key \"%s\"",
                                    pnstrdup(key.val.string.val,
                                             key.val.string.len))));
@@ -614,7 +614,7 @@ executeItemOptUnwrapTarget(JsonPathExecContext *cxt, JsonPathItem *jsp,
            {
                Assert(found);
                RETURN_ERROR(ereport(ERROR,
-                                    (errcode(ERRCODE_JSON_MEMBER_NOT_FOUND),
+                                    (errcode(ERRCODE_SQL_JSON_MEMBER_NOT_FOUND),
                                      errmsg("jsonpath member accessor can only be applied to an object"))));
            }
            break;
@@ -643,7 +643,7 @@ executeItemOptUnwrapTarget(JsonPathExecContext *cxt, JsonPathItem *jsp,
                res = executeNextItem(cxt, jsp, NULL, jb, found, true);
            else if (!jspIgnoreStructuralErrors(cxt))
                RETURN_ERROR(ereport(ERROR,
-                                    (errcode(ERRCODE_JSON_ARRAY_NOT_FOUND),
+                                    (errcode(ERRCODE_SQL_JSON_ARRAY_NOT_FOUND),
                                      errmsg("jsonpath wildcard array accessor can only be applied to an array"))));
            break;
 
@@ -691,7 +691,7 @@ executeItemOptUnwrapTarget(JsonPathExecContext *cxt, JsonPathItem *jsp,
                         index_from > index_to ||
                         index_to >= size))
                        RETURN_ERROR(ereport(ERROR,
-                                            (errcode(ERRCODE_INVALID_JSON_SUBSCRIPT),
+                                            (errcode(ERRCODE_INVALID_SQL_JSON_SUBSCRIPT),
                                              errmsg("jsonpath array subscript is out of bounds"))));
 
                    if (index_from < 0)
@@ -748,7 +748,7 @@ executeItemOptUnwrapTarget(JsonPathExecContext *cxt, JsonPathItem *jsp,
            else if (!jspIgnoreStructuralErrors(cxt))
            {
                RETURN_ERROR(ereport(ERROR,
-                                    (errcode(ERRCODE_JSON_ARRAY_NOT_FOUND),
+                                    (errcode(ERRCODE_SQL_JSON_ARRAY_NOT_FOUND),
                                      errmsg("jsonpath array accessor can only be applied to an array"))));
            }
            break;
@@ -802,7 +802,7 @@ executeItemOptUnwrapTarget(JsonPathExecContext *cxt, JsonPathItem *jsp,
            {
                Assert(found);
                RETURN_ERROR(ereport(ERROR,
-                                    (errcode(ERRCODE_JSON_OBJECT_NOT_FOUND),
+                                    (errcode(ERRCODE_SQL_JSON_OBJECT_NOT_FOUND),
                                      errmsg("jsonpath wildcard member accessor can only be applied to an object"))));
            }
            break;
@@ -932,7 +932,7 @@ executeItemOptUnwrapTarget(JsonPathExecContext *cxt, JsonPathItem *jsp,
                    {
                        if (!jspIgnoreStructuralErrors(cxt))
                            RETURN_ERROR(ereport(ERROR,
-                                                (errcode(ERRCODE_JSON_ARRAY_NOT_FOUND),
+                                                (errcode(ERRCODE_SQL_JSON_ARRAY_NOT_FOUND),
                                                  errmsg("jsonpath item method .%s() can only be applied to an array",
                                                         jspOperationName(jsp->type)))));
                        break;
@@ -986,7 +986,7 @@ executeItemOptUnwrapTarget(JsonPathExecContext *cxt, JsonPathItem *jsp,
 
                    if (have_error)
                        RETURN_ERROR(ereport(ERROR,
-                                            (errcode(ERRCODE_NON_NUMERIC_JSON_ITEM),
+                                            (errcode(ERRCODE_NON_NUMERIC_SQL_JSON_ITEM),
                                              errmsg("jsonpath item method .%s() can only be applied to a numeric value",
                                                     jspOperationName(jsp->type)))));
                    res = jperOk;
@@ -1007,7 +1007,7 @@ executeItemOptUnwrapTarget(JsonPathExecContext *cxt, JsonPathItem *jsp,
 
                    if (have_error || isinf(val))
                        RETURN_ERROR(ereport(ERROR,
-                                            (errcode(ERRCODE_NON_NUMERIC_JSON_ITEM),
+                                            (errcode(ERRCODE_NON_NUMERIC_SQL_JSON_ITEM),
                                              errmsg("jsonpath item method .%s() can only be applied to a numeric value",
                                                     jspOperationName(jsp->type)))));
 
@@ -1020,7 +1020,7 @@ executeItemOptUnwrapTarget(JsonPathExecContext *cxt, JsonPathItem *jsp,
 
                if (res == jperNotFound)
                    RETURN_ERROR(ereport(ERROR,
-                                        (errcode(ERRCODE_NON_NUMERIC_JSON_ITEM),
+                                        (errcode(ERRCODE_NON_NUMERIC_SQL_JSON_ITEM),
                                          errmsg("jsonpath item method .%s() can only be applied to a string or numeric value",
                                                 jspOperationName(jsp->type)))));
 
@@ -1504,14 +1504,14 @@ executeBinaryArithmExpr(JsonPathExecContext *cxt, JsonPathItem *jsp,
    if (JsonValueListLength(&lseq) != 1 ||
        !(lval = getScalar(JsonValueListHead(&lseq), jbvNumeric)))
        RETURN_ERROR(ereport(ERROR,
-                            (errcode(ERRCODE_SINGLETON_JSON_ITEM_REQUIRED),
+                            (errcode(ERRCODE_SINGLETON_SQL_JSON_ITEM_REQUIRED),
                              errmsg("left operand of jsonpath operator %s is not a single numeric value",
                                     jspOperationName(jsp->type)))));
 
    if (JsonValueListLength(&rseq) != 1 ||
        !(rval = getScalar(JsonValueListHead(&rseq), jbvNumeric)))
        RETURN_ERROR(ereport(ERROR,
-                            (errcode(ERRCODE_SINGLETON_JSON_ITEM_REQUIRED),
+                            (errcode(ERRCODE_SINGLETON_SQL_JSON_ITEM_REQUIRED),
                              errmsg("right operand of jsonpath operator %s is not a single numeric value",
                                     jspOperationName(jsp->type)))));
 
@@ -1579,7 +1579,7 @@ executeUnaryArithmExpr(JsonPathExecContext *cxt, JsonPathItem *jsp,
                continue;       /* skip non-numerics processing */
 
            RETURN_ERROR(ereport(ERROR,
-                                (errcode(ERRCODE_JSON_NUMBER_NOT_FOUND),
+                                (errcode(ERRCODE_SQL_JSON_NUMBER_NOT_FOUND),
                                  errmsg("operand of unary jsonpath operator %s is not a numeric value",
                                         jspOperationName(jsp->type)))));
        }
@@ -1701,7 +1701,7 @@ executeNumericItemMethod(JsonPathExecContext *cxt, JsonPathItem *jsp,
 
    if (!(jb = getScalar(jb, jbvNumeric)))
        RETURN_ERROR(ereport(ERROR,
-                            (errcode(ERRCODE_NON_NUMERIC_JSON_ITEM),
+                            (errcode(ERRCODE_NON_NUMERIC_SQL_JSON_ITEM),
                              errmsg("jsonpath item method .%s() can only be applied to a numeric value",
                                     jspOperationName(jsp->type)))));
 
@@ -1760,7 +1760,7 @@ executeKeyValueMethod(JsonPathExecContext *cxt, JsonPathItem *jsp,
 
    if (JsonbType(jb) != jbvObject || jb->type != jbvBinary)
        RETURN_ERROR(ereport(ERROR,
-                            (errcode(ERRCODE_JSON_OBJECT_NOT_FOUND),
+                            (errcode(ERRCODE_SQL_JSON_OBJECT_NOT_FOUND),
                              errmsg("jsonpath item method .%s() can only be applied to an object",
                                     jspOperationName(jsp->type)))));
 
@@ -2190,7 +2190,7 @@ getArrayIndex(JsonPathExecContext *cxt, JsonPathItem *jsp, JsonbValue *jb,
    if (JsonValueListLength(&found) != 1 ||
        !(jbv = getScalar(JsonValueListHead(&found), jbvNumeric)))
        RETURN_ERROR(ereport(ERROR,
-                            (errcode(ERRCODE_INVALID_JSON_SUBSCRIPT),
+                            (errcode(ERRCODE_INVALID_SQL_JSON_SUBSCRIPT),
                              errmsg("jsonpath array subscript is not a single numeric value"))));
 
    numeric_index = DirectFunctionCall2(numeric_trunc,
@@ -2202,7 +2202,7 @@ getArrayIndex(JsonPathExecContext *cxt, JsonPathItem *jsp, JsonbValue *jb,
 
    if (have_error)
        RETURN_ERROR(ereport(ERROR,
-                            (errcode(ERRCODE_INVALID_JSON_SUBSCRIPT),
+                            (errcode(ERRCODE_INVALID_SQL_JSON_SUBSCRIPT),
                              errmsg("jsonpath array subscript is out of integer range"))));
 
    return jperOk;
index 16f5ca233a912683dd421bf8848ee2a5467dd2ba..867e98b690ba2533afb94a02aa11c48f3e305bd6 100644 (file)
@@ -208,19 +208,19 @@ Section: Class 22 - Data Exception
 2200T    E    ERRCODE_INVALID_XML_PROCESSING_INSTRUCTION                     invalid_xml_processing_instruction
 22030    E    ERRCODE_DUPLICATE_JSON_OBJECT_KEY_VALUE                        duplicate_json_object_key_value
 22032    E    ERRCODE_INVALID_JSON_TEXT                                      invalid_json_text
-22033    E    ERRCODE_INVALID_JSON_SUBSCRIPT                                 invalid_json_subscript
-22034    E    ERRCODE_MORE_THAN_ONE_JSON_ITEM                                more_than_one_json_item
-22035    E    ERRCODE_NO_JSON_ITEM                                           no_json_item
-22036    E    ERRCODE_NON_NUMERIC_JSON_ITEM                                  non_numeric_json_item
-22037    E    ERRCODE_NON_UNIQUE_KEYS_IN_JSON_OBJECT                         non_unique_keys_in_json_object
-22038    E    ERRCODE_SINGLETON_JSON_ITEM_REQUIRED                           singleton_json_item_required
-22039    E    ERRCODE_JSON_ARRAY_NOT_FOUND                                   json_array_not_found
-2203A    E    ERRCODE_JSON_MEMBER_NOT_FOUND                                  json_member_not_found
-2203B    E    ERRCODE_JSON_NUMBER_NOT_FOUND                                  json_number_not_found
-2203C    E    ERRCODE_JSON_OBJECT_NOT_FOUND                                  object_not_found
-2203F    E    ERRCODE_JSON_SCALAR_REQUIRED                                   json_scalar_required
+22033    E    ERRCODE_INVALID_SQL_JSON_SUBSCRIPT                             invalid_sql_json_subscript
+22034    E    ERRCODE_MORE_THAN_ONE_SQL_JSON_ITEM                            more_than_one_sql_json_item
+22035    E    ERRCODE_NO_SQL_JSON_ITEM                                       no_sql_json_item
+22036    E    ERRCODE_NON_NUMERIC_SQL_JSON_ITEM                              non_numeric_sql_json_item
+22037    E    ERRCODE_NON_UNIQUE_KEYS_IN_A_JSON_OBJECT                       non_unique_keys_in_a_json_object
+22038    E    ERRCODE_SINGLETON_SQL_JSON_ITEM_REQUIRED                       singleton_sql_json_item_required
+22039    E    ERRCODE_SQL_JSON_ARRAY_NOT_FOUND                               sql_json_array_not_found
+2203A    E    ERRCODE_SQL_JSON_MEMBER_NOT_FOUND                              sql_json_member_not_found
+2203B    E    ERRCODE_SQL_JSON_NUMBER_NOT_FOUND                              sql_json_number_not_found
+2203C    E    ERRCODE_SQL_JSON_OBJECT_NOT_FOUND                              sql_json_object_not_found
 2203D    E    ERRCODE_TOO_MANY_JSON_ARRAY_ELEMENTS                           too_many_json_array_elements
 2203E    E    ERRCODE_TOO_MANY_JSON_OBJECT_MEMBERS                           too_many_json_object_members
+2203F    E    ERRCODE_SQL_JSON_SCALAR_REQUIRED                               sql_json_scalar_required
 
 Section: Class 23 - Integrity Constraint Violation