Re: pgsql: SQL/JSON: Fix issues with DEFAULT .. ON ERROR / EMPTY

From: Amit Langote <amitlangote09(at)gmail(dot)com>
To: Amit Langote <amitlan(at)postgresql(dot)org>
Cc: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: SQL/JSON: Fix issues with DEFAULT .. ON ERROR / EMPTY
Date: 2024-04-18 08:15:50
Message-ID: CA+HiwqEjkbDxqqD3VJamc6R9+B102H7=SFYYOM7gKrxzJO35TQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

On Thu, Apr 18, 2024 at 3:51 PM Amit Langote <amitlan(at)postgresql(dot)org> wrote:
> SQL/JSON: Fix issues with DEFAULT .. ON ERROR / EMPTY
>
> SQL/JSON query functions allow specifying an expression to return
> when either of ON ERROR or ON EMPTY condition occurs when evaluating
> the JSON path expression. The parser (transformJsonBehavior()) checks
> that the specified expression is one of the supported expressions, but
> there are two issues with how the check is done that are fixed in this
> commit:
>
> * No check for some expressions related to coercion, such as
> CoerceViaIO, that may appear in the transformed user-specified
> expressions that include cast(s)
>
> * An unsupported expression may be masked by a coercion-related
> expression, which must be flagged by checking the latter's
> argument expression recursively
>
> Author: Jian He <jian(dot)universality(at)gmail(dot)com>
> Author: Amit Langote <amitlangote09(at)gmail(dot)com>
> Reported-by: Jian He <jian(dot)universality(at)gmail(dot)com>
> Discussion: https://postgr.es/m/CACJufxEqhqsfrg_p7EMyo5zak3d767iFDL8vz_4%3DZBHpOtrghw@mail.gmail.com
> Discussion: https://postgr.es/m/CACJufxGOerH1QJknm1noh-Kz5FqU4p7QfeZSeVT2tN_4SLXYNg@mail.gmail.com
>
> Branch
> ------
> master
>
> Details
> -------
> https://git.postgresql.org/pg/commitdiff/c0fc0751862d4e9b7ca9d51f2cd79344690ec873
>
> Modified Files
> --------------
> src/backend/parser/parse_expr.c | 37 ++++++++++++++-
> src/test/regress/expected/sqljson_jsontable.out | 32 +++++++++++++
> src/test/regress/expected/sqljson_queryfuncs.out | 57 ++++++++++++++++++++++++
> src/test/regress/sql/sqljson_jsontable.sql | 16 +++++++
> src/test/regress/sql/sqljson_queryfuncs.sql | 27 +++++++++++
> 5 files changed, 167 insertions(+), 2 deletions(-)

Noticed failures on canebrake and urutu that seem to have to do with
using the same DOMAIN name in nearby test files causing a clash.

Will push a fix shortly.

--
Thanks, Amit Langote

In response to

Browse pgsql-committers by date

  From Date Subject
Next Message Amit Langote 2024-04-18 08:31:47 pgsql: Fix object name clash in recently introduced test
Previous Message Amit Langote 2024-04-18 06:51:26 pgsql: SQL/JSON: Miscellaneous fixes and improvements