Re: Cast jsonb to numeric, int, float, bool - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Cast jsonb to numeric, int, float, bool
Date
Msg-id 2087.1525792633@sss.pgh.pa.us
Whole thread Raw
In response to Re: Cast jsonb to numeric, int, float, bool  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Cast jsonb to numeric, int, float, bool  (Teodor Sigaev <teodor@sigaev.ru>)
List pgsql-hackers
I wrote:
> 1) Does this really pass muster from the translatability standpoint?
> I doubt it.

After further thought about that, it seems that what we typically don't
try to translate is SQL-standard type names, that is, error messages
along the line of "blah blah blah type %s" are considered fine.  So
the problem here is that you factorized the error reporting poorly.
I think you want the callers to look like

     if (!JsonbExtractScalar(&in->root, &v) || v.type != jbvNumeric)
        cannotCastJsonbValue(v.type, "double precision");

where the subroutine contains the whole ereport() call, and its lookup
table entries are e.g.

    gettext_noop("cannot cast jsonb string to type %s")

            regards, tom lane


pgsql-hackers by date:

Previous
From: Ildar Musin
Date:
Subject: Re: MAP syntax for arrays
Next
From: Alvaro Herrera
Date:
Subject: Re: MAP syntax for arrays