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

Reply via email to