postgresql/src/backend/utils
Alexander Korotkov 81fcc72e66 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
2021-01-31 23:51:01 +03:00
..
adt Filling array gaps during jsonb subscripting 2021-01-31 23:51:01 +03:00
cache Improve performance of repeated CALLs within plpgsql procedures. 2021-01-25 22:28:29 -05:00
error Add pg_stat_database counters for sessions and session time 2021-01-17 13:52:31 +01:00
fmgr Fix broken ruleutils support for function TRANSFORM clauses. 2021-01-25 13:03:43 -05:00
hash Update copyright for 2021 2021-01-02 13:06:25 -05:00
init Reduce the default value of vacuum_cost_page_miss. 2021-01-27 15:11:13 -08:00
mb Add direct conversion routines between EUC_TW and Big5. 2021-01-28 14:53:03 +02:00
misc Reduce the default value of vacuum_cost_page_miss. 2021-01-27 15:11:13 -08:00
mmgr Improve performance of repeated CALLs within plpgsql procedures. 2021-01-25 22:28:29 -05:00
resowner Improve performance of repeated CALLs within plpgsql procedures. 2021-01-25 22:28:29 -05:00
sort Update copyright for 2021 2021-01-02 13:06:25 -05:00
time Revive "snapshot too old" with wal_level=minimal and SET TABLESPACE. 2021-01-30 00:12:18 -08:00
.gitignore Rearrange makefile rules for running Gen_fmgrtab.pl. 2018-05-03 17:54:18 -04:00
errcodes.txt Rethink SQLSTATE code for ERRCODE_IDLE_SESSION_TIMEOUT. 2021-01-11 14:53:42 -05:00
Gen_dummy_probes.pl Update copyright for 2021 2021-01-02 13:06:25 -05:00
Gen_dummy_probes.sed Update copyright for 2021 2021-01-02 13:06:25 -05:00
Gen_fmgrtab.pl Update copyright for 2021 2021-01-02 13:06:25 -05:00
generate-errcodes.pl Update copyright for 2021 2021-01-02 13:06:25 -05:00
Makefile Update copyright for 2021 2021-01-02 13:06:25 -05:00
probes.d Update copyright for 2021 2021-01-02 13:06:25 -05:00