Re: transformJsonFuncExpr pathspec cache lookup failed

Kirill Reshke <reshkekirill@gmail.com>

From: Kirill Reshke <reshkekirill@gmail.com>
To: Amit Langote <amitlangote09@gmail.com>
Cc: jian he <jian.universality@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2025-11-26T11:56:52Z
Lists: pgsql-hackers
On Wed, 26 Nov 2025 at 10:32, Amit Langote <amitlangote09@gmail.com> wrote:
>
> Hi,
>
> On Wed, Nov 19, 2025 at 11:55 AM jian he <jian.universality@gmail.com> wrote:
> > On Fri, Nov 7, 2025 at 2:26 PM Kirill Reshke <reshkekirill@gmail.com> wrote:
> > >
> > > Hi!
> > > I tried your fix and this indeed fixes an issue. Two minor comments:
> > >
> > > First,
> > > in the `src/backend/parser/parse_expr.c` fil there are multiple
> > > examples of working with `coerce_to_target_type`, they all share
> > > different coding practice:
> > >
> > > ```
> > > coerced_expr = coerce_to_target_type(.., expr, ..)
> > >
> > > if (coerced_expr == NULL)
> > >      ereport();
> > >
> > >
> > > expr = coerced_expr;
> > > ```
> > >
> > > Instead of
> > > ```
> > > expr = coerce_to_target_type(.., expr, ..)
> > >
> > > if (expr == NULL)
> > >      ereport();
> > > ```
> > >
> > > Let's be consistent?
> > >
> >
> > IMHO,
> > > coerced_expr = coerce_to_target_type(.., expr, ..)
> > is better than
> > > expr = coerce_to_target_type(.., expr, ..)
> >
> > I changed accordingly.
>
> I agree, though I prefer a different name for that coerced_* variable.
> Also, let’s define the _type and _loc variables inside the error
> block.  Updated patch attached.
>
> Please feel free to post a patch for the 2nd issue.
>
> --
> Thanks, Amit Langote

v2 lgtm

-- 
Best regards,
Kirill Reshke



Commits

  1. Fix error reporting for SQL/JSON path type mismatches