aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2022-07-11 11:20:52 +0900
committerMichael Paquier <michael@paquier.xyz>2022-07-11 11:20:52 +0900
commit834fce52f941cd228beca2067dca82f6e33a4d98 (patch)
treeb814456a818a9c46710c922cdf09cd3a63769951 /src
parentb2b6c1be0569548893a80f15c74084243fb8d8a1 (diff)
downloadpostgresql-834fce52f941cd228beca2067dca82f6e33a4d98.tar.gz
postgresql-834fce52f941cd228beca2067dca82f6e33a4d98.zip
Improve error message with JSON_SERIALIZE()
The error message introduced in 3c633f3 can share the same format string with an existing message used for JSON(), reducing the translation effort. Author: Kyotaro Horiguchi Discussion: https://postgr.es/m/20220708.154135.2123613118233840495.horikyota.ntt@gmail.com Backpatch-through: 15
Diffstat (limited to 'src')
-rw-r--r--src/backend/parser/parse_expr.c5
-rw-r--r--src/test/regress/expected/sqljson.out2
2 files changed, 4 insertions, 3 deletions
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c
index efcf1cd5abc..1dbdba93daa 100644
--- a/src/backend/parser/parse_expr.c
+++ b/src/backend/parser/parse_expr.c
@@ -4587,8 +4587,9 @@ transformJsonSerializeExpr(ParseState *pstate, JsonSerializeExpr *expr)
if (typcategory != TYPCATEGORY_STRING)
ereport(ERROR,
(errcode(ERRCODE_DATATYPE_MISMATCH),
- errmsg("cannot use RETURNING type %s in JSON_SERIALIZE",
- format_type_be(returning->typid)),
+ errmsg("cannot use RETURNING type %s in %s",
+ format_type_be(returning->typid),
+ "JSON_SERIALIZE()"),
errhint("Try returning a string type or bytea")));
}
}
diff --git a/src/test/regress/expected/sqljson.out b/src/test/regress/expected/sqljson.out
index be27bce9d32..aae4ba49390 100644
--- a/src/test/regress/expected/sqljson.out
+++ b/src/test/regress/expected/sqljson.out
@@ -316,7 +316,7 @@ SELECT pg_typeof(JSON_SERIALIZE(NULL));
-- only string types or bytea allowed
SELECT JSON_SERIALIZE('{ "a" : 1 } ' RETURNING jsonb);
-ERROR: cannot use RETURNING type jsonb in JSON_SERIALIZE
+ERROR: cannot use RETURNING type jsonb in JSON_SERIALIZE()
HINT: Try returning a string type or bytea
EXPLAIN (VERBOSE, COSTS OFF) SELECT JSON_SERIALIZE('{}');
QUERY PLAN