Re: More new SQL/JSON item methods

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: Jeevan Chalke <jeevan(dot)chalke(at)enterprisedb(dot)com>, Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: More new SQL/JSON item methods
Date: 2024-01-03 21:04:52
Message-ID: fa454906-7539-4070-b51a-2e7dcfb6b741@eisentraut.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 03.01.24 13:01, Peter Eisentraut wrote:
> On 07.12.23 14:24, Jeevan Chalke wrote:
>> We have the same issue with integer conversion and need a fix.
>>
>> Unfortunately, I was using int8in() for the conversion of numeric
>> values. We should be using numeric_int8() instead. However, there is
>> no opt_error version of the same.
>>
>> So, I have introduced a numeric_int8_opt_error() version just like we
>> have one for int4, i.e. numeric_int4_opt_error(), to suppress the
>> error. These changes are in the 0001 patch. (All other patch numbers
>> are now increased by 1)
>>
>> I have used this new function to fix this reported issue and used
>> numeric_int4_opt_error() for integer conversion.
>
> I have committed the 0001 and 0002 patches for now.
>
> The remaining patches look reasonable to me, but I haven't reviewed them
> in detail.

The 0002 patch had to be reverted, because we can't change the order of
the enum values in JsonPathItemType. I have instead committed a
different patch that adjusts the various switch cases to observe the
current order of the enum. That also means that the remaining patches
that add new item methods need to add the new enum values at the end and
adjust the rest of their code accordingly.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Pavel Luzanov 2024-01-03 21:22:45 Re: Things I don't like about \du's "Attributes" column
Previous Message Nathan Bossart 2024-01-03 19:55:19 Re: Add new for_each macros for iterating over a List that do not require ListCell pointer