pgsql: Throw error when assigning jsonb scalar instead of a composite o - Mailing list pgsql-committers

From Alexander Korotkov
Subject pgsql: Throw error when assigning jsonb scalar instead of a composite o
Date
Msg-id E1l6Jjn-0000kt-81@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Throw error when assigning jsonb scalar instead of a composite object

During the jsonb subscripting assignment, the provided path might assume an
object or an array where the source jsonb has a scalar value.  Initial
subscripting assignment logic will skip such an update operation with no
message shown.  This commit makes it throw an error to indicate this type
of situation.

Discussion: https://postgr.es/m/CA%2Bq6zcV8qvGcDXurwwgUbwACV86Th7G80pnubg42e-p9gsSf%3Dg%40mail.gmail.com
Discussion: https://postgr.es/m/CA%2Bq6zcX3mdxGCgdThzuySwH-ApyHHM-G4oB1R0fn0j2hZqqkLQ%40mail.gmail.com
Discussion: https://postgr.es/m/CA%2Bq6zcVDuGBv%3DM0FqBYX8DPebS3F_0KQ6OVFobGJPM507_SZ_w%40mail.gmail.com
Discussion: https://postgr.es/m/CA%2Bq6zcVovR%2BXY4mfk-7oNk-rF91gH0PebnNfuUjuuDsyHjOcVA%40mail.gmail.com
Author: Dmitry Dolgov
Reviewed-by: Tom Lane, Arthur Zakirov, Pavel Stehule, Dian M Fay
Reviewed-by: Andrew Dunstan, Chapman Flack, Merlin Moncure, Peter Geoghegan
Reviewed-by: Alvaro Herrera, Jim Nasby, Josh Berkus, Victor Wagner
Reviewed-by: Aleksander Alekseev, Robert Haas, Oleg Bartunov

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/aa6e46daf5304e8d9e66fefc1a5bd77622ec6402

Modified Files
--------------
doc/src/sgml/json.sgml              | 39 +++++++++++++++++++++++++++++--------
src/backend/utils/adt/jsonfuncs.c   | 29 +++++++++++++++++++++++++++
src/test/regress/expected/jsonb.out | 27 +++++++++++++++++++++++++
src/test/regress/sql/jsonb.sql      | 17 ++++++++++++++++
4 files changed, 104 insertions(+), 8 deletions(-)


pgsql-committers by date:

Previous
From: Peter Geoghegan
Date:
Subject: pgsql: Remove unused _bt_delitems_delete() argument.
Next
From: Heikki Linnakangas
Date:
Subject: Re: pgsql: Implementation of subscripting for jsonb