Unify JSON categorize type API and export for external use
authorAmit Langote <amitlan@postgresql.org>
Thu, 20 Jul 2023 07:19:56 +0000 (16:19 +0900)
committerAmit Langote <amitlan@postgresql.org>
Thu, 20 Jul 2023 07:19:56 +0000 (16:19 +0900)
commit3c152a27b06313fe27bd47079658f928e291986b
treedcaec379d19f32b4aa8279c685ce4847f80cdae0
parent2a990abd79acea4717cc8f982a28f35b6b347ddb
Unify JSON categorize type API and export for external use

This essentially removes the JsonbTypeCategory enum and
jsonb_categorize_type() and integrates any jsonb-specific logic that
was in jsonb_categorize_type() into json_categorize_type(), now
moved to jsonfuncs.c.  The remaining JsonTypeCategory enum and
json_categorize_type() cover the needs of the callers in both json.c
and jsonb.c.  json_categorize_type() has grown a new parameter named
is_jsonb for callers to engage the jsonb-specific behavior of
json_categorize_type().

One notable change in the now exported API of json_categorize_type()
is that it now always returns *outfuncoid even though a caller may
have no need currently to see one.

This is in preparation of later commits to implement additional
SQL/JSON functions.

Co-authored-by: Álvaro Herrera <alvherre@alvh.no-ip.org>
Reviewed-by: Álvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://postgr.es/m/CA+HiwqE4XTdfb1nW=Ojoy_tQSRhYt-q_kb6i5d4xcKyrLC1Nbg@mail.gmail.com
src/backend/utils/adt/json.c
src/backend/utils/adt/jsonb.c
src/backend/utils/adt/jsonfuncs.c
src/include/utils/jsonfuncs.h
src/tools/pgindent/typedefs.list