On Wed, Mar 12, 2025 at 10:00 AM Tender Wang <tndrw...@gmail.com> wrote: > Maciek Sakrejda <mac...@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