From b681ca7635c4082c76f069d4d1dc2ca61975ca59 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Mon, 18 Jul 2022 14:26:43 +0200 Subject: [PATCH] Add another SQL/JSON error code A code comment said that the standard does not define a number for ERRCODE_SQL_JSON_ITEM_CANNOT_BE_CAST_TO_TARGET_TYPE, but this was fixed in a later draft version of the standard, so use that number now. --- src/backend/executor/execExprInterp.c | 8 +------- src/backend/utils/errcodes.txt | 1 + 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/backend/executor/execExprInterp.c b/src/backend/executor/execExprInterp.c index 9fcb6be414..723770fda0 100644 --- a/src/backend/executor/execExprInterp.c +++ b/src/backend/executor/execExprInterp.c @@ -4980,13 +4980,7 @@ ExecEvalJsonExpr(ExprEvalStep *op, ExprContext *econtext, * type simply does not exist. */ ereport(ERROR, - - /* - * XXX Standard says about a separate error code - * ERRCODE_SQL_JSON_ITEM_CANNOT_BE_CAST_TO_TARGET_TYPE but - * does not define its number. - */ - (errcode(ERRCODE_SQL_JSON_SCALAR_REQUIRED), + (errcode(ERRCODE_SQL_JSON_ITEM_CANNOT_BE_CAST_TO_TARGET_TYPE), errmsg("SQL/JSON item cannot be cast to target type"))); } else if (!jcstate->estate) diff --git a/src/backend/utils/errcodes.txt b/src/backend/utils/errcodes.txt index a4e1a46644..62418a051a 100644 --- a/src/backend/utils/errcodes.txt +++ b/src/backend/utils/errcodes.txt @@ -222,6 +222,7 @@ Section: Class 22 - Data Exception 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 +2203G E ERRCODE_SQL_JSON_ITEM_CANNOT_BE_CAST_TO_TARGET_TYPE sql_json_item_cannot_be_cast_to_target_type Section: Class 23 - Integrity Constraint Violation