diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/utils/adt/json.c | 5 | ||||
-rw-r--r-- | src/backend/utils/adt/jsonb.c | 5 | ||||
-rw-r--r-- | src/test/regress/expected/json.out | 9 | ||||
-rw-r--r-- | src/test/regress/expected/jsonb.out | 9 | ||||
-rw-r--r-- | src/test/regress/sql/json.sql | 6 | ||||
-rw-r--r-- | src/test/regress/sql/jsonb.sql | 6 |
6 files changed, 36 insertions, 4 deletions
diff --git a/src/backend/utils/adt/json.c b/src/backend/utils/adt/json.c index 628e9de6166..0ed6a10a443 100644 --- a/src/backend/utils/adt/json.c +++ b/src/backend/utils/adt/json.c @@ -1397,9 +1397,10 @@ json_categorize_type(Oid typoid, default: /* Check for arrays and composites */ - if (OidIsValid(get_element_type(typoid))) + if (OidIsValid(get_element_type(typoid)) || typoid == ANYARRAYOID + || typoid == RECORDARRAYOID) *tcategory = JSONTYPE_ARRAY; - else if (type_is_rowtype(typoid)) + else if (type_is_rowtype(typoid)) /* includes RECORDOID */ *tcategory = JSONTYPE_COMPOSITE; else { diff --git a/src/backend/utils/adt/jsonb.c b/src/backend/utils/adt/jsonb.c index b9bf18ffe5d..5b6178badf9 100644 --- a/src/backend/utils/adt/jsonb.c +++ b/src/backend/utils/adt/jsonb.c @@ -644,9 +644,10 @@ jsonb_categorize_type(Oid typoid, default: /* Check for arrays and composites */ - if (OidIsValid(get_element_type(typoid))) + if (OidIsValid(get_element_type(typoid)) || typoid == ANYARRAYOID + || typoid == RECORDARRAYOID) *tcategory = JSONBTYPE_ARRAY; - else if (type_is_rowtype(typoid)) + else if (type_is_rowtype(typoid)) /* includes RECORDOID */ *tcategory = JSONBTYPE_COMPOSITE; else { diff --git a/src/test/regress/expected/json.out b/src/test/regress/expected/json.out index efcdc4141e3..1bb87689fbe 100644 --- a/src/test/regress/expected/json.out +++ b/src/test/regress/expected/json.out @@ -383,6 +383,15 @@ SELECT row_to_json(row((select array_agg(x) as d from generate_series(5,10) x)), {"f1":[5,6,7,8,9,10]} (1 row) +-- anyarray column +select to_json(histogram_bounds) histogram_bounds +from pg_stats +where attname = 'tmplname' and tablename = 'pg_pltemplate'; + histogram_bounds +--------------------------------------------------------------------------------------- + ["plperl","plperlu","plpgsql","plpython2u","plpython3u","plpythonu","pltcl","pltclu"] +(1 row) + -- to_json, timestamps select to_json(timestamp '2014-05-28 12:22:35.614298'); to_json diff --git a/src/test/regress/expected/jsonb.out b/src/test/regress/expected/jsonb.out index ba9b1d711e5..8ec4150bc28 100644 --- a/src/test/regress/expected/jsonb.out +++ b/src/test/regress/expected/jsonb.out @@ -279,6 +279,15 @@ SELECT array_to_json(ARRAY [jsonb '{"a":1}', jsonb '{"b":[2,3]}']); [{"a": 1},{"b": [2, 3]}] (1 row) +-- anyarray column +select to_jsonb(histogram_bounds) histogram_bounds +from pg_stats +where attname = 'tmplname' and tablename = 'pg_pltemplate'; + histogram_bounds +---------------------------------------------------------------------------------------------- + ["plperl", "plperlu", "plpgsql", "plpython2u", "plpython3u", "plpythonu", "pltcl", "pltclu"] +(1 row) + -- to_jsonb, timestamps select to_jsonb(timestamp '2014-05-28 12:22:35.614298'); to_jsonb diff --git a/src/test/regress/sql/json.sql b/src/test/regress/sql/json.sql index 603288bd1a1..5e61922fbf1 100644 --- a/src/test/regress/sql/json.sql +++ b/src/test/regress/sql/json.sql @@ -102,6 +102,12 @@ FROM rows q; SELECT row_to_json(row((select array_agg(x) as d from generate_series(5,10) x)),false); +-- anyarray column + +select to_json(histogram_bounds) histogram_bounds +from pg_stats +where attname = 'tmplname' and tablename = 'pg_pltemplate'; + -- to_json, timestamps select to_json(timestamp '2014-05-28 12:22:35.614298'); diff --git a/src/test/regress/sql/jsonb.sql b/src/test/regress/sql/jsonb.sql index eb65a381970..e2eaca0e272 100644 --- a/src/test/regress/sql/jsonb.sql +++ b/src/test/regress/sql/jsonb.sql @@ -62,6 +62,12 @@ SELECT ' '::jsonb; -- ERROR, no value -- make sure jsonb is passed through json generators without being escaped SELECT array_to_json(ARRAY [jsonb '{"a":1}', jsonb '{"b":[2,3]}']); +-- anyarray column + +select to_jsonb(histogram_bounds) histogram_bounds +from pg_stats +where attname = 'tmplname' and tablename = 'pg_pltemplate'; + -- to_jsonb, timestamps select to_jsonb(timestamp '2014-05-28 12:22:35.614298'); |