Re: remaining sql/json patches

From: Amit Langote <amitlangote09(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: Erik Rijkers <er(at)xs4all(dot)nl>, jian he <jian(dot)universality(at)gmail(dot)com>, 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: 2023-12-08 10:34:29
Message-ID: CA+HiwqEMgKuh2XTSw6hoORPk8EcE67t4CKBLRKJVo+Sy0aV40w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Dec 8, 2023 at 3:42 AM Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> wrote:
> I noticed that JSON_TABLE uses an explicit FORMAT JSON in one of the
> rules, instead of using json_format_clause_opt like everywhere else. I
> wondered why, and noticed that it's because it wants to set coltype
> JTC_FORMATTED when the clause is present but JTC_REGULAR otherwise.
> This seemed a little odd, but I thought to split json_format_clause_opt
> in two productions, one without the empty rule (json_format_clause) and
> another with it. This is not a groundbreaking improvement, but it seems
> more natural, and it helps contain the FORMAT stuff a little better.
>
> I also noticed while at it that we can do away not only with the
> json_encoding_clause_opt clause, but also with makeJsonEncoding().
>
> The attach patch does it. This is not derived from the patches you're
> currently working on; it's more of a revise of the previous SQL/JSON
> code I committed in 7081ac46ace8.
>
> It goes before your 0003 and has a couple of easily resolved conflicts
> with both 0003 and 0004; then in 0004 you have to edit the JSON_TABLE
> rule that has FORMAT_LA and replace that with json_format_clause.

Thanks. I've adapted that as the attached 0004.

I started thinking that some changes to
src/backend/utils/adt/jsonpath_exec.c made by SQL/JSON query functions
patch belong in a separate refactoring patch, which I've attached as
patch 0003. They are the changes related to how jsonpath executor
takes and extracts "variables".

--
Thanks, Amit Langote
EDB: http://www.enterprisedb.com

Attachment Content-Type Size
v31-0004-Simplify-productions-for-FORMAT-JSON-ENCODING-na.patch application/octet-stream 5.0 KB
v31-0007-JSON_TABLE-don-t-assign-precedence-to-NESTED-PAT.patch application/octet-stream 4.7 KB
v31-0006-JSON_TABLE.patch application/octet-stream 176.4 KB
v31-0003-Refactor-code-used-by-jsonpath-executor-to-fetch.patch application/octet-stream 8.4 KB
v31-0005-SQL-JSON-query-functions.patch application/octet-stream 188.6 KB
v31-0001-Add-soft-error-handling-to-some-expression-nodes.patch application/octet-stream 9.5 KB
v31-0002-Add-soft-error-handling-to-populate_record_field.patch application/octet-stream 24.0 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alexander Korotkov 2023-12-08 10:39:03 Re: [HACKERS] make async slave to wait for lsn to be replayed
Previous Message Japin Li 2023-12-08 10:29:17 Re: Transaction timeout