postgresql/src/backend/catalog
Amit Langote bb766cde63 JSON_TABLE: Add support for NESTED paths and columns
A NESTED path allows to extract data from nested levels of JSON
objects given by the parent path expression, which are projected as
columns specified using a nested COLUMNS clause, just like the parent
COLUMNS clause.  Rows comprised from a NESTED columns are "joined"
to the row comprised from the parent columns.  If a particular NESTED
path evaluates to 0 rows, then the nested COLUMNS will emit NULLs,
making it an OUTER join.

NESTED columns themselves may include NESTED paths to allow
extracting data from arbitrary nesting levels, which are likewise
joined against the rows at the parent level.

Multiple NESTED paths at a given level are called "sibling" paths
and their rows are combined by UNIONing them, that is, after being
joined against the parent row as described above.

Author: Nikita Glukhov <n.gluhov@postgrespro.ru>
Author: Teodor Sigaev <teodor@sigaev.ru>
Author: Oleg Bartunov <obartunov@gmail.com>
Author: Alexander Korotkov <aekorotkov@gmail.com>
Author: Andrew Dunstan <andrew@dunslane.net>
Author: Amit Langote <amitlangote09@gmail.com>
Author: Jian He <jian.universality@gmail.com>

Reviewers have included (in no particular order):

Andres Freund, Alexander Korotkov, Pavel Stehule, Andrew Alsup,
Erik Rijkers, Zihong Yu, Himanshu Upadhyaya, Daniel Gustafsson,
Justin Pryzby, Álvaro Herrera, Jian He

Discussion: https://postgr.es/m/cd0bb935-0158-78a7-08b5-904886deac4b@postgrespro.ru
Discussion: https://postgr.es/m/20220616233130.rparivafipt6doj3@alap3.anarazel.de
Discussion: https://postgr.es/m/abd9b83b-aa66-f230-3d6d-734817f0995d%40postgresql.org
Discussion: https://postgr.es/m/CA+HiwqE4XTdfb1nW=Ojoy_tQSRhYt-q_kb6i5d4xcKyrLC1Nbg@mail.gmail.com
2024-04-08 16:14:13 +09:00
..
Catalog.pm Un-break genbki.pl's error reporting capabilities. 2024-03-20 18:02:50 -04:00
Makefile Put genbki.pl output into src/include/catalog/ directly 2024-03-14 07:11:21 +01:00
aclchk.c Reintroduce MAINTAIN privilege and pg_maintain predefined role. 2024-03-13 14:49:26 -05:00
catalog.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
dependency.c Remove ObjectClass type 2024-03-26 10:08:56 +01:00
genbki.pl Generate syscache info from catalog files 2024-01-23 07:31:06 +01:00
heap.c Add attstattarget to FormExtraData_pg_attribute 2024-03-17 12:38:27 +01:00
index.c CREATE INDEX: do not update stats during binary upgrade. 2024-04-03 16:12:45 -07:00
indexing.c Let table AM insertion methods control index insertion 2024-03-30 22:53:56 +02:00
information_schema.sql Catalog domain not-null constraints 2024-03-20 10:05:37 +01:00
meson.build Update copyright for 2024 2024-01-03 20:49:05 -05:00
namespace.c Fix search_path to a safe value during maintenance operations. 2024-03-04 17:31:38 -08:00
objectaccess.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
objectaddress.c Remove ObjectClass type 2024-03-26 10:08:56 +01:00
partition.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
pg_aggregate.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
pg_attrdef.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
pg_cast.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
pg_class.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
pg_collation.c Introduce "builtin" collation provider. 2024-03-13 23:33:44 -07:00
pg_constraint.c Add temporal FOREIGN KEY contraints 2024-03-24 07:37:13 +01:00
pg_conversion.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
pg_db_role_setting.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
pg_depend.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
pg_enum.c Allow more cases to pass the unsafe-use-of-new-enum-value restriction. 2024-03-24 14:30:29 -04:00
pg_inherits.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
pg_largeobject.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
pg_namespace.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
pg_operator.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
pg_parameter_acl.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
pg_proc.c Separate equalRowTypes() from equalTupleDescs() 2024-03-17 05:58:04 +01:00
pg_publication.c Make the order of the header file includes consistent 2024-03-13 15:07:00 +01:00
pg_range.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
pg_shdepend.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
pg_subscription.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
pg_type.c Explicitly list dependent types as extension members in pg_depend. 2024-03-04 14:49:36 -05:00
sql_feature_packages.txt Update SQL features 2023-05-02 10:59:21 +02:00
sql_features.txt JSON_TABLE: Add support for NESTED paths and columns 2024-04-08 16:14:13 +09:00
storage.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
system_functions.sql Implement pg_wal_replay_wait() stored procedure 2024-04-02 22:48:03 +03:00
system_views.sql Use TidStore for dead tuple TIDs storage during lazy vacuum. 2024-04-02 10:15:37 +09:00
toasting.c Add attstattarget to FormExtraData_pg_attribute 2024-03-17 12:38:27 +01:00