Add a non-strict version of jsonb_set

Enterprise / PostgreSQL - Andrew Dunstan [dunslane.net] - 17 January 2020 01:22 EST

jsonb_set_lax() is the same as jsonb_set, except that it takes and extra argument that specifies what to do if the value argument is NULL. The default is 'use_json_null'. Other possibilities are 'raise_exception', 'return_target' and 'delete_key', all these behaviours having been suggested as reasonable by various users.

Discussion: https://postgr.es/m/375873e2-c957-3a8d-64f9-26c43c2b16e7@2ndQuadrant.com

Reviewed by: Pavel Stehule

a83586b554 Add a non-strict version of jsonb_set
doc/src/sgml/func.sgml | 23 +++++++++++++
src/backend/catalog/system_views.sql | 9 +++++
src/backend/utils/adt/jsonfuncs.c | 64 ++++++++++++++++++++++++++++++++++++
src/include/catalog/pg_proc.dat | 3 ++
src/test/regress/expected/jsonb.out | 57 ++++++++++++++++++++++++++++++++
src/test/regress/sql/jsonb.sql | 20 +++++++++++
6 files changed, 176 insertions(+)

Upstream: git.postgresql.org


  • Share