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 <amitlangot...@gmail.com> please check out this. -- Thanks, Tender Wang