Re: Question about duplicate JSONTYPE_JSON check
Amit Langote <amitlangote09@gmail.com>
From: Amit Langote <amitlangote09@gmail.com>
To: Tender Wang <tndrwang@gmail.com>
Cc: Maciek Sakrejda <maciek@pganalyze.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-03-12T03:07:08Z
Lists: pgsql-hackers
On Wed, Mar 12, 2025 at 10:00 AM Tender Wang <tndrwang@gmail.com> wrote: > Maciek Sakrejda <maciek@pganalyze.com> 于2025年3月11日周二 08:12写道: >> While exploring the jsonb code, I noticed that in >> datum_to_jsonb_internal, the tcategory checks compares against >> JSONTYPE_JSON twice. There's no reason for that, right? > > Yeah, the second JSONTYPE_JSON seems redundant. >> >> Ok, so, to try to answer my own question, I went looking at the >> history, and this comes from "Unify JSON categorize type API and >> export for external use" [0]. Specifically, the change was >> >> - (tcategory == JSONBTYPE_ARRAY || >> - tcategory == JSONBTYPE_COMPOSITE || >> - tcategory == JSONBTYPE_JSON || >> - tcategory == JSONBTYPE_JSONB || >> - tcategory == JSONBTYPE_JSONCAST)) >> + (tcategory == JSONTYPE_ARRAY || >> + tcategory == JSONTYPE_COMPOSITE || >> + tcategory == JSONTYPE_JSON || >> + tcategory == JSONTYPE_JSONB || >> + tcategory == JSONTYPE_JSON)) >> >> So "JSONBTYPE_JSONCAST" turned into "JSONTYPE_JSON". Should that have >> been "JSONTYPE_CAST" (that seems to be the corresponding value in the >> new enum) instead? > > The below else branch has code if (tcategory == JSONTYPE_CAST). I guess here the > second JSONTYPE_JSON may just be removed. > @Amit Langote please check out this. Looks like a copy-paste bug on my part. Will fix, thanks for the report. -- Thanks, Amit Langote
Commits
-
Fix copy-paste error in datum_to_jsonb_internal()
- 8b2392ae3d5b 17.5 landed
- d4f79865d420 18.0 landed
-
Unify JSON categorize type API and export for external use
- 3c152a27b063 17.0 cited