Thread: pgsql: New json functions.
New json functions. json_build_array() and json_build_object allow for the construction of arbitrarily complex json trees. json_object() turns a one or two dimensional array, or two separate arrays, into a json_object of name/value pairs, similarly to the hstore() function. json_object_agg() aggregates its two arguments into a single json object as name value pairs. Catalog version bumped. Andrew Dunstan, reviewed by Marko Tiikkaja. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/105639900bf83fd3e3eb5b49f49b4d74d6347b9b Modified Files -------------- doc/src/sgml/func.sgml | 158 ++++++++++ src/backend/utils/adt/json.c | 577 ++++++++++++++++++++++++++++++++-- src/backend/utils/adt/jsonfuncs.c | 176 ++++++++--- src/include/catalog/catversion.h | 2 +- src/include/catalog/pg_aggregate.h | 1 + src/include/catalog/pg_proc.h | 22 ++ src/include/utils/json.h | 13 + src/test/regress/expected/json.out | 126 ++++++++ src/test/regress/expected/json_1.out | 126 ++++++++ src/test/regress/sql/json.sql | 87 +++++ 10 files changed, 1219 insertions(+), 69 deletions(-)
*sigh* forgot to mention that json_to_record() is also included. It turns a json argument into whatever record type is expected by the call. On 01/28/2014 05:55 PM, Andrew Dunstan wrote: > New json functions. > > json_build_array() and json_build_object allow for the construction of > arbitrarily complex json trees. json_object() turns a one or two > dimensional array, or two separate arrays, into a json_object of > name/value pairs, similarly to the hstore() function. > json_object_agg() aggregates its two arguments into a single json object > as name value pairs. > > Catalog version bumped. > > Andrew Dunstan, reviewed by Marko Tiikkaja. > > Branch > ------ > master > > Details > ------- > http://git.postgresql.org/pg/commitdiff/105639900bf83fd3e3eb5b49f49b4d74d6347b9b > > Modified Files > -------------- > doc/src/sgml/func.sgml | 158 ++++++++++ > src/backend/utils/adt/json.c | 577 ++++++++++++++++++++++++++++++++-- > src/backend/utils/adt/jsonfuncs.c | 176 ++++++++--- > src/include/catalog/catversion.h | 2 +- > src/include/catalog/pg_aggregate.h | 1 + > src/include/catalog/pg_proc.h | 22 ++ > src/include/utils/json.h | 13 + > src/test/regress/expected/json.out | 126 ++++++++ > src/test/regress/expected/json_1.out | 126 ++++++++ > src/test/regress/sql/json.sql | 87 +++++ > 10 files changed, 1219 insertions(+), 69 deletions(-) > >
On 28 January 2014 22:55, Andrew Dunstan <andrew@dunslane.net> wrote: > New json functions. > > json_build_array() and json_build_object allow for the construction of > arbitrarily complex json trees. json_object() turns a one or two > dimensional array, or two separate arrays, into a json_object of > name/value pairs, similarly to the hstore() function. > json_object_agg() aggregates its two arguments into a single json object > as name value pairs. A typo: s/agument/argument/ Also, these are changes that probably aren't essential, but makes some sentences clearer: s/heterogeneously typed/heterogeneously-typed/ s/two argument form/two-argument form/ s/one argument form/one-argument form/ s/type coercion/type-coercion/ -- Thom
On 01/28/2014 06:14 PM, Thom Brown wrote: > On 28 January 2014 22:55, Andrew Dunstan <andrew@dunslane.net> wrote: >> New json functions. >> >> json_build_array() and json_build_object allow for the construction of >> arbitrarily complex json trees. json_object() turns a one or two >> dimensional array, or two separate arrays, into a json_object of >> name/value pairs, similarly to the hstore() function. >> json_object_agg() aggregates its two arguments into a single json object >> as name value pairs. > A typo: > > s/agument/argument/ > > > Also, these are changes that probably aren't essential, but makes some > sentences clearer: > > s/heterogeneously typed/heterogeneously-typed/ > > s/two argument form/two-argument form/ > > s/one argument form/one-argument form/ > > s/type coercion/type-coercion/ > Thanks, will fix. cheers andrew