From: | jian he <jian(dot)universality(at)gmail(dot)com> |
---|---|
To: | Amit Langote <amitlangote09(at)gmail(dot)com> |
Cc: | Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, Himanshu Upadhyaya <upadhyaya(dot)himanshu(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Erik Rijkers <er(at)xs4all(dot)nl>, Andres Freund <andres(at)anarazel(dot)de>, Andrew Dunstan <andrew(at)dunslane(dot)net>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: remaining sql/json patches |
Date: | 2024-03-07 13:46:40 |
Message-ID: | CACJufxGew-Y0nyBbBeaaFAndjjdu_b4WVSao_dtVM+-EUCVWyA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, Mar 7, 2024 at 8:06 PM Amit Langote <amitlangote09(at)gmail(dot)com> wrote:
>
>
> Indeed.
>
> This boils down to the difference in the cast expression chosen to
> convert the source value to int in the two cases.
>
> The case where the source value has no quotes, the chosen cast
> expression is a FuncExpr for function numeric_int4(), which has no way
> to suppress errors. When the source value has quotes, the cast
> expression is a CoerceViaIO expression, which can suppress the error.
> The default behavior is to suppress the error and return NULL, so the
> correct behavior is when the source value has quotes.
>
> I think we'll need either:
>
> * fix the code in 0001 to avoid getting numeric_int4() in this case,
> and generally cast functions that don't have soft-error handling
> support, in favor of using IO coercion.
> * fix FuncExpr (like CoerceViaIO) to respect SQL/JSON's request to
> suppress errors and fix downstream functions like numeric_int4() to
> comply by handling errors softly.
>
> I'm inclined to go with the 1st option as we already have the
> infrastructure in place -- input functions can all handle errors
> softly.
not sure this is the right way.
but attached patches solved this problem.
Also, can you share the previous memory-hogging bug issue
when you are free, I want to know which part I am missing.....
Attachment | Content-Type | Size |
---|---|---|
v42-0001-minor-refactor-SQL-JSON-query-functions-based.no-cfbot | application/octet-stream | 2.9 KB |
v42-0002-minor-refactor-JOSN_TABLE-functions-based-on-.no-cfbot | application/octet-stream | 1.9 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tomas Vondra | 2024-03-07 14:04:07 | Re: remaining sql/json patches |
Previous Message | Dean Rasheed | 2024-03-07 13:42:07 | Re: Dump-restore loosing 'attnotnull' bit for DEFERRABLE PRIMARY KEY column(s). |