Thread

  1. Re: transformJsonFuncExpr pathspec cache lookup failed

    amit <amitlangote09@gmail.com> — 2025-11-27T03:16:22Z

    On Wed, Nov 26, 2025 at 8:57 PM Kirill Reshke <reshkekirill@gmail.com> wrote:
    > On Wed, 26 Nov 2025 at 10:32, Amit Langote <amitlangote09@gmail.com> wrote:
    > > 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.
    >
    > v2 lgtm
    
    Pushed after moving the _type, _loc variable declarations outside
    after all, because I had missed that they are passed to
    coerce_to_target_type() as well in Jian's patch.
    
    -- 
    Thanks, Amit Langote