Re: ON ERROR in json_query and the like

Поиск
Список
Период
Сортировка
От Amit Langote
Тема Re: ON ERROR in json_query and the like
Дата
Msg-id CA+HiwqG-Yq3EU=PXYbQXaqg-0KoHNtuRPh2oaUj+5xE_P2Jp_w@mail.gmail.com
обсуждение исходный текст
Ответ на Re: ON ERROR in json_query and the like  ("David G. Johnston" <david.g.johnston@gmail.com>)
Ответы Re: ON ERROR in json_query and the like
Re: ON ERROR in json_query and the like
Список pgsql-hackers
On Fri, Jun 21, 2024 at 1:11 AM David G. Johnston
<david.g.johnston@gmail.com> wrote:
> On Thu, Jun 20, 2024 at 2:19 AM Amit Langote <amitlangote09@gmail.com> wrote:
>> On Mon, Jun 17, 2024 at 10:07 PM Markus Winand <markus.winand@winand.at> wrote:
>> > > On 17.06.2024, at 08:20, Amit Langote <amitlangote09@gmail.com> wrote:
>> > > Agree that the documentation needs to be clear about this. I'll update
>> > > my patch at [1] to add a note next to table 9.16.3. SQL/JSON Query
>> > > Functions.
>> >
>> > Considering another branch of this thread [1] I think the
>> > "Supported Features” appendix of the docs should mention that as well.
>> >
>> > The way I see it is that the standards defines two overloaded
>> > JSON_QUERY functions, of which PostgreSQL will support only one.
>> > In case of valid JSON, the implied CAST makes it look as though
>> > the second variant of these function was supported as well but that
>> > illusion totally falls apart once the JSON is not valid anymore.
>> >
>> > I think it affects the following feature IDs:
>> >
>> >   - T821, Basic SQL/JSON query operators
>> >      For JSON_VALUE, JSON_TABLE and JSON_EXISTS
>> >   - T828, JSON_QUERY
>> >
>> > Also, how hard would it be to add the functions that accept
>> > character strings? Is there, besides the effort, any thing else
>> > against it? I’m asking because I believe once released it might
>> > never be changed — for backward compatibility.
>>
>> Hmm, I'm starting to think that adding the implied cast to json wasn't
>> such a great idea after all, because it might mislead the users to
>> think that JSON parsing is transparent (respects ON ERROR), which is
>> what you are saying, IIUC.
>>
>
> Actually, the implied cast is exactly the correct thing to do here - the issue is that we aren't using the newly
addedsoft errors infrastructure [1] to catch the result of that cast and instead produce whatever output on error tells
usto produce.  This seems to be in the realm of doability so we should try in the interest of being standard
conforming.

Soft error handling *was* used for catching cast errors in the very
early versions of this patch (long before I got involved and the
infrastructure you mention got added).  It was taken out after Pavel
said [1] that he didn't like producing NULL instead of throwing an
error.  Not sure if Pavel's around but it would be good to know why he
didn't like it at the time.

I can look into making that work again, but that is not going to make beta2.

>  I'd even argue to make this an open item unless and until the attempt is agreed upon to have failed (or it succeeds
ofcourse). 

OK, adding an open item.

--
Thanks, Amit Langote
[1] https://www.postgresql.org/message-id/CAFj8pRCnzO2cnHi5ebXciV%3DtuGVvAQOW9uPU%2BDQV1GkL31R%3D-g%40mail.gmail.com



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Peter Geoghegan
Дата:
Сообщение: Re: Vacuum ERRORs out considering freezing dead tuples from before OldestXmin
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: SQL/JSON query functions context_item doc entry and type requirement