Thread: strangely worded message

strangely worded message

From
Alvaro Herrera
Date:
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/



Re: strangely worded message

From
Amit Langote
Date:
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