Re: Question about duplicate JSONTYPE_JSON check - Mailing list pgsql-hackers

From Amit Langote
Subject Re: Question about duplicate JSONTYPE_JSON check
Date
Msg-id CA+HiwqE_8N8XLhQHEwLdjCUBdQeu=xhS1v=jAEANsd=tZ1=vcg@mail.gmail.com
Whole thread Raw
In response to Re: Question about duplicate JSONTYPE_JSON check  (Tender Wang <tndrwang@gmail.com>)
Responses Re: Question about duplicate JSONTYPE_JSON check
List 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



pgsql-hackers by date:

Previous
From: David Rowley
Date:
Subject: Re: Query ID Calculation Fix for DISTINCT / ORDER BY and LIMIT / OFFSET
Next
From: Tom Lane
Date:
Subject: Re: per backend WAL statistics