Re: Question about duplicate JSONTYPE_JSON check
Tender Wang <tndrwang@gmail.com>
From: Tender Wang <tndrwang@gmail.com>
To: Maciek Sakrejda <maciek@pganalyze.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Amit Langote <amitlangote09@gmail.com>
Date: 2025-03-12T01:00:22Z
Lists: pgsql-hackers
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 <amitlangote09@gmail.com> please check out this. -- Thanks, Tender Wang
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