aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/jsonbsubs.c
diff options
context:
space:
mode:
authorAlexander Korotkov <akorotkov@postgresql.org>2021-01-31 23:51:01 +0300
committerAlexander Korotkov <akorotkov@postgresql.org>2021-01-31 23:51:01 +0300
commit81fcc72e66222357f9bccce3eeda62eb2cb29849 (patch)
treee75d796379677c30799a25215ac64ee2fbf44710 /src/backend/utils/adt/jsonbsubs.c
parent676887a3b0b8e3c0348ac3f82ab0d16e9a24bd43 (diff)
downloadpostgresql-81fcc72e66222357f9bccce3eeda62eb2cb29849.tar.gz
postgresql-81fcc72e66222357f9bccce3eeda62eb2cb29849.zip
Filling array gaps during jsonb subscripting
This commit introduces two new flags for jsonb assignment: * JB_PATH_FILL_GAPS: Appending array elements on the specified position, gaps are filled with nulls (similar to the JavaScript behavior). This mode also instructs to create the whole path in a jsonb object if some part of the path (more than just the last element) is not present. * JB_PATH_CONSISTENT_POSITION: Assigning keeps array positions consistent by preventing prepending of elements. Both flags are used only in jsonb subscripting assignment. Initially proposed by Nikita Glukhov based on polymorphic subscripting patch, but transformed into an independent change. 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
Diffstat (limited to 'src/backend/utils/adt/jsonbsubs.c')
0 files changed, 0 insertions, 0 deletions