Re: SQL/JSON revisited

From: vignesh C <vignesh21(at)gmail(dot)com>
To: Amit Langote <amitlangote09(at)gmail(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Andrew Dunstan <andrew(at)dunslane(dot)net>, e(dot)indrupskaya(at)postgrespro(dot)ru
Subject: Re: SQL/JSON revisited
Date: 2023-01-27 14:27:10
Message-ID: CALDaNm1b8NZgxSESw2u5GNcDbMNGnXujN7f-XxUL506hXert5g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, 17 Jan 2023 at 19:01, Amit Langote <amitlangote09(at)gmail(dot)com> wrote:
>
> On Wed, Dec 28, 2022 at 4:28 PM Amit Langote <amitlangote09(at)gmail(dot)com> wrote:
> >
> > Hi,
> >
> > Rebased the SQL/JSON patches over the latest HEAD. I've decided to
> > keep the same division of code into individual commits as that
> > mentioned in the revert commit 2f2b18bd3f, squashing fixup commits in
> > that list into the appropriate feature commits.
> >
> > The main difference from the patches as they were committed into v15
> > is that JsonExpr evaluation no longer needs to use sub-transactions,
> > thanks to the work done recently to handle type errors softly. I've
> > made the new code pass an ErrorSaveContext into the type-conversion
> > related functions as needed and also added an ExecEvalExprSafe() to
> > evaluate sub-expressions of JsonExpr that might contain expressions
> > that call type-conversion functions, such as CoerceViaIO contained in
> > JsonCoercion nodes. ExecExprEvalSafe() is based on one of the patches
> > that Nikita Glukhov had submitted in a previous discussion about
> > redesigning SQL/JSON expression evaluation [1]. Though, I think that
> > new interface will become unnecessary after I have finished rebasing
> > my patches to remove subsidiary ExprStates of JsonExprState that we
> > had also discussed back in [2].
>
> And I've just finished doing that. In the attached updated 0004,
> which adds the JsonExpr node, its evaluation code is now broken into
> ExprEvalSteps to handle the subsidiary JsonCoercion and JsonBehavior
> expression nodes that previously used ExprState for recursive
> evaluation. Andres didn't like the latter as previously discussed at
> [1].
>
> I've also attached the patch that Elena has proposed as the patch
> 0011. I haven't managed to review it yet, though once I do, I'll
> merge it into the main documentation patch 0009. Thanks Elena.

The patch does not apply on top of HEAD as in [1], please post a rebased patch:
=== Applying patches on top of PostgreSQL commit ID
37e267335068059ac9bd4ec5d06b493afb4b73e8 ===
=== applying patch ./v2-0001-Common-SQL-JSON-clauses.patch
....
can't find file to patch at input line 717
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git a/src/backend/utils/misc/queryjumble.c
b/src/backend/utils/misc/queryjumble.c
|index 328995a7dc..2361845a62 100644
|--- a/src/backend/utils/misc/queryjumble.c
|+++ b/src/backend/utils/misc/queryjumble.c
--------------------------
No file to patch. Skipping patch.
1 out of 1 hunk ignored

[1] - http://cfbot.cputube.org/patch_41_4086.log

Regards,
Vignesh

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Maxim Orlov 2023-01-27 14:30:11 Re: old_snapshot_threshold bottleneck on replica
Previous Message Nitin Jadhav 2023-01-27 14:25:04 Re: Inconsistency in reporting checkpointer stats