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 |
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 |