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


Reply via email to