1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-03 01:21:48 +03:00
Alexander Korotkov 676887a3b0 Implementation of subscripting for jsonb
Subscripting for jsonb does not support slices, does not have a limit for the
number of subscripts, and an assignment expects a replace value to have jsonb
type.  There is also one functional difference between assignment via
subscripting and assignment via jsonb_set().  When an original jsonb container
is NULL, the subscripting replaces it with an empty jsonb and proceeds with
an assignment.

For the sake of code reuse, we rearrange some parts of jsonb functionality
to allow the usage of the same functions for jsonb_set and assign subscripting
operation.

The original idea belongs to Oleg Bartunov.

Catversion is bumped.

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:50:40 +03:00
..
2020-07-05 15:37:57 +02:00
2020-09-10 14:15:26 +02:00
2020-11-07 12:26:24 +01:00
2020-10-26 19:17:05 -04:00
2020-02-26 13:05:30 -08:00
2020-03-29 11:15:11 +02:00
2018-10-11 11:43:56 -07:00
2021-01-29 14:09:41 +13:00
2019-09-08 10:27:29 +02:00
2020-10-19 19:28:54 +03:00
2020-07-18 22:43:35 +09:00
2020-12-01 14:36:30 +02:00
2020-12-20 07:20:33 +03:00
2020-10-19 13:48:00 +02:00
2020-06-07 13:18:36 +02:00
2021-01-29 14:09:41 +13:00
2020-07-18 22:43:35 +09:00
2019-10-25 20:39:41 +02:00
2020-07-18 22:43:35 +09:00
2020-10-19 19:28:54 +03:00
2021-01-02 13:06:25 -05:00
2019-09-08 10:27:29 +02:00
2020-10-19 19:28:54 +03:00
2020-10-19 19:28:54 +03:00
2021-01-05 14:26:37 -05:00
2020-10-19 19:28:54 +03:00
2020-08-28 08:19:12 +02:00
2020-12-23 09:33:20 -05:00
2020-12-23 09:33:20 -05:00
2020-12-23 09:33:20 -05:00
2020-11-19 09:32:47 +01:00
2020-06-07 17:16:30 -04:00
2020-06-07 17:16:30 -04:00
2020-10-19 19:28:54 +03:00
2020-10-19 19:28:54 +03:00
2019-09-08 10:27:29 +02:00
2019-08-13 08:40:17 +02:00
2019-03-27 23:10:23 +01:00
2019-09-08 10:27:29 +02:00

<!-- doc/src/sgml/README.links -->

Linking within DocBook documents can be confusing, so here is a summary:


Intra-document Linking
----------------------

<xref>
	use to get chapter/section number from the title of the target
	link, or xreflabel if defined at the target, or refentrytitle if target
        is a refentry;  has no close tag
	http://www.oasis-open.org/docbook/documentation/reference/html/xref.html

linkend=
	controls the target of the link/xref, required

endterm=
	for <xref>, allows the text of the link/xref to be taken from a
	different link target title

<link>
	use to supply text for the link, only uses linkend, requires </link>
	http://www.oasis-open.org/docbook/documentation/reference/html/link.html


External Linking
----------------

<ulink>
	like <link>, but uses a URL (not a document target);  requires
	</ulink>; if no text is specified, the URL appears as the link
	text
	http://www.oasis-open.org/docbook/documentation/reference/html/ulink.html

url=
	used by <ulink> to specify the URL, required


Guidelines
----------

- For an internal link, if you want to supply text, use <link>, else
  <xref>.

- Specific nouns like GUC variables, SQL commands, and contrib modules
  usually have xreflabels.

- For an external link, use <ulink>, with or without link text.

- xreflabels added to tags prevent the chapter/section for id's from being
  referenced;  only the xreflabel is accessible.  Therefore, use xreflabels
  only when linking is common, and chapter/section information is unneeded.