public inbox for [email protected]
help / color / mirror / Atom feedFrom: Amit Langote <[email protected]>
To: Chao Li <[email protected]>
Cc: SATYANARAYANA NARLAPURAM <[email protected]>
Cc: PostgreSQL Hackers <[email protected]>
Subject: Re: pg_overexplain produces invalid JSON with RANGE_TABLE option
Date: Thu, 16 Apr 2026 12:08:19 +0900
Message-ID: <CA+HiwqEzH2ndNf+Ss5aeS8QZ1mSENuY_1FNUe5NyOcF-h-R5vw@mail.gmail.com> (raw)
In-Reply-To: <[email protected]>
References: <CAHg+QDdDrdqMr98a_OBYDYmK3RaT7XwCEShZfvDYKZpZTfOEjQ@mail.gmail.com>
<CA+HiwqFMboUmHtoGjpLfNAWKitjA4T=jnfca9QrYvoBWrrmY0g@mail.gmail.com>
<[email protected]>
Hi,
On Thu, Apr 16, 2026 at 10:22 AM Chao Li <[email protected]> wrote:
> > On Apr 16, 2026, at 08:06, Amit Langote <[email protected]> wrote:
> > On Thu, Apr 16, 2026 at 6:36 AM SATYANARAYANA NARLAPURAM
> > <[email protected]> wrote:
> >>
> >> Hi Hackers,
> >>
> >> It appears that pg_overexplain produces invalid JSON output when
> >> EXPLAIN (FORMAT JSON, RANGE_TABLE) is used. The "Unprunable RTIs" and
> >> "Result RTIs" properties are emitted as key:value pairs directly inside
> >> the "Range Table" JSON array, which is structurally invalid.
> >
> > Thanks for the report and the patch. That makes sense.
> >
> >> Attempted to fix this by moving ExplainCloseGroup() before the two overexplain_bitmapset()
> >> calls, so the properties are emitted as siblings of "Range Table" in the parent object rather
> >> than inside the array.
> >>
> >> Attached a patch to address this which also includes a test.
> >
> > I have added a commit message. Will commit shortly to master and v18.
>
> Hi Amit, as the commit message mentions YAML format as well, but I don’t find a test case in pg_overexplain.sql, would it make sense to also add a test case for YAML. I tried to add one, see the attached diff file.
Thanks, but I think the JSON test is sufficient here. The fix is in
format-agnostic code (the ordering of ExplainCloseGroup relative to
the bitmapset calls), so any regression that affects YAML would show
up in the JSON test too. Generally, we should avoid adding test cases
that only duplicate existing coverage (though I'm sure I've been
guilty of it myself), as this increases the maintenance burden on
expected-output files without catching anything new.
--
Thanks, Amit Langote
view thread (5+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected]
Subject: Re: pg_overexplain produces invalid JSON with RANGE_TABLE option
In-Reply-To: <CA+HiwqEzH2ndNf+Ss5aeS8QZ1mSENuY_1FNUe5NyOcF-h-R5vw@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox