strangely worded message
Hello
The following message introduced by commit 03734a7fed7d appears in two
places:
if (returning->typid != JSONOID && returning->typid != JSONBOID)
ereport(ERROR,
(errcode(ERRCODE_DATATYPE_MISMATCH),
errmsg("cannot use RETURNING type %s in %s",
format_type_be(returning->typid), fname),
parser_errposition(pstate, output->typeName->location)));
where fname is either JSON(), JSON_SCALAR(), JSON_SERIALIZE(). The
wording seems a bit off to me. What about the following?
ERROR: cannot use type %s in RETURNING clause of %s
DETAIL: Only types json and jsonb are allowed in the RETURNING clause.
Other ideas I considered:
ERROR: cannot use RETURNING %s in %s
ERROR: cannot use "RETURNING %s" in %s
DETAIL: The type can be json or jsonb in RETURNING.
DETAIL: The RETURNING clause allows types json or jsonb.
DETAIL: Types json and jsonb are allowed in RETURNING.
Thanks
--
Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/
Hi Alvaro,
On Sat, Dec 14, 2024 at 9:43 PM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
Hello
The following message introduced by commit 03734a7fed7d appears in two
places:if (returning->typid != JSONOID && returning->typid != JSONBOID)
ereport(ERROR,
(errcode(ERRCODE_DATATYPE_MISMATCH),
errmsg("cannot use RETURNING type %s in %s",
format_type_be(returning->typid), fname),
parser_errposition(pstate, output->typeName->location)));where fname is either JSON(), JSON_SCALAR(), JSON_SERIALIZE(). The
wording seems a bit off to me.
Yeah, I agree.
What about the following?
ERROR: cannot use type %s in RETURNING clause of %s
DETAIL: Only types json and jsonb are allowed in the RETURNING clause.
+1
Other ideas I considered:
ERROR: cannot use RETURNING %s in %s
ERROR: cannot use "RETURNING %s" in %sDETAIL: The type can be json or jsonb in RETURNING.
DETAIL: The RETURNING clause allows types json or jsonb.
DETAIL: Types json and jsonb are allowed in RETURNING.
I think I'd go with the one you chose.
Are you planning to push a fix yourself or would you like me to?
--
Thanks, Amit Langote
Hi Amit,
On 2024-Dec-16, Amit Langote wrote:
ERROR: cannot use type %s in RETURNING clause of %s
DETAIL: Only types json and jsonb are allowed in the RETURNING clause.
I think I'd go with the one you chose.
Actually I noticed that the one in JSON_SERIALIZE() already has a
different hint, "Try returning a string type or bytea.", so I made the
other ones mimic that (and made it a hint rather than detail).
Are you planning to push a fix yourself or would you like me to?
I just pushed it to both master and 17.
Thanks for looking!
--
Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/
"Si quieres ser creativo, aprende el arte de perder el tiempo"