Throw error when assigning jsonb scalar instead of a composite object
Alexander Korotkov <akorotkov@postgresql.org>
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
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/json.sgml | modified | +31 −8 |
| src/backend/utils/adt/jsonfuncs.c | modified | +29 −0 |
| src/test/regress/expected/jsonb.out | modified | +27 −0 |
| src/test/regress/sql/jsonb.sql | modified | +17 −0 |
Documentation touched
Discussion
- jsonb array-style subscripting 22 messages · 2015-08-17 → 2015-08-20
- [PATCH] Generic type subscription 34 messages · 2016-09-09 → 2017-02-05
- [PATCH] Generic type subscripting 276 messages · 2017-02-28 → 2021-02-01
- jsonb array-style subscription 12 messages · 2016-01-18 → 2016-03-21