strangely worded message

Started by Alvaro Herreraabout 1 year ago3 messages
#1Alvaro Herrera
alvherre@alvh.no-ip.org

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/

#2Amit Langote
amitlangote09@gmail.com
In reply to: Alvaro Herrera (#1)
Re: strangely worded message

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 %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.

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

#3Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Amit Langote (#2)
Re: strangely worded message

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"