Re: Extract numeric filed in JSONB more effectively - Mailing list pgsql-hackers

From Dmitry Dolgov
Subject Re: Extract numeric filed in JSONB more effectively
Date
Msg-id l6mh4jmhbmdxgoqbpcjuxa5x27age7h5xtrqzpe5sjg7sjmrsa@4g7wv4zw5o5i
Whole thread
In response to Re: Extract numeric filed in JSONB more effectively  (Haibo Yan <tristan.yim@gmail.com>)
Responses Re: Extract numeric filed in JSONB more effectively
List pgsql-hackers
> On Fri, Apr 03, 2026 at 09:42:20AM -0700, Haibo Yan wrote:

Thanks for picking it up, the patch looks good.

> One small thing: the UI looks a bit odd on my side. It does not seem to have picked my attachment, and is instead
showingyour older attachment there. But cfbot appears to have picked up mine, so I think it may just be a UI issue.
 

It takes some time, as far as I can see currently the correct patch is shown.

> +        /*
> +         * Identify the inner extraction expression.  It may appear as
> +         * either a FuncExpr or an OpExpr; accept both forms.
> +         */
> +        if (IsA(arg, FuncExpr))
> +        {
> +            FuncExpr   *inner = (FuncExpr *) arg;
> +
> +            inner_funcid = inner->funcid;
> +            inner_args = inner->args;
> +            location = inner->location;
> +        }
> +        else if (IsA(arg, OpExpr))
> +        {
> +            OpExpr       *inner = (OpExpr *) arg;
> +
> +            inner_funcid = inner->opfuncid;
> +            inner_args = inner->args;
> +            location = inner->location;
> +        }
> +        else
> +            PG_RETURN_POINTER(NULL);

It may also appear as a SubscriptingRef expression if we use subscription over
jsonb.

    SELECT test_json['field7']::bool FROM test_jsonb WHERE json_type = 'object';

Seems to be worth handling this case as well, since it doesn't lead to an
interface explosion.



pgsql-hackers by date:

Previous
From: Hüseyin Demir
Date:
Subject: Re: client_connection_check_interval default value
Next
From: Ashutosh Sharma
Date:
Subject: Re: synchronized_standby_slots behavior inconsistent with quorum-based synchronous replication