postgresql/src/backend/utils/adt
Andrew Dunstan 4e34747c88 JSON_TABLE
This feature allows jsonb data to be treated as a table and thus used in
a FROM clause like other tabular data. Data can be selected from the
jsonb using jsonpath expressions, and hoisted out of nested structures
in the jsonb to form multiple rows, more or less like an outer join.

Nikita Glukhov

Reviewers have included (in no particular order) Andres Freund, Alexander
Korotkov, Pavel Stehule, Andrew Alsup, Erik Rijkers, Zhihong Yu (whose
name I previously misspelled), Himanshu Upadhyaya, Daniel Gustafsson,
Justin Pryzby.

Discussion: https://postgr.es/m/7e2cb85d-24cf-4abb-30a5-1a33715959bd@postgrespro.ru
2022-04-04 16:03:47 -04:00
..
.gitignore
acl.c Use has_privs_for_roles for predefined role checks 2022-03-28 15:10:04 -04:00
amutils.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
array_expanded.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
array_selfuncs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
array_typanalyze.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
array_userfuncs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
arrayfuncs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
arraysubs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
arrayutils.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
ascii.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
bool.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
cash.c
char.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
cryptohashfuncs.c Improve error handling of cryptohash computations 2022-01-11 09:55:16 +09:00
date.c Specialize tuplesort routines for different kinds of abbreviated keys 2022-04-02 15:22:25 +07:00
datetime.c Fix portability issues in datetime parsing. 2022-04-03 17:04:33 -04:00
datum.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
dbsize.c Use has_privs_for_roles for predefined role checks 2022-03-28 15:10:04 -04:00
domains.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
encode.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
enum.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
expandeddatum.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
expandedrecord.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
float.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
format_type.c SQL JSON functions 2022-03-30 16:30:37 -04:00
formatting.c Fix portability issues in datetime parsing. 2022-04-03 17:04:33 -04:00
genfile.c Use has_privs_for_roles for predefined role checks 2022-03-28 15:10:04 -04:00
geo_ops.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
geo_selfuncs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
geo_spgist.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
hbafuncs.c Add system view pg_ident_file_mappings 2022-03-29 10:15:48 +09:00
inet_cidr_ntop.c
inet_net_pton.c
int8.c Move scanint8() to numutils.c 2022-02-14 21:57:26 +01:00
int.c Remove pg_atoi() 2022-02-15 07:44:26 +01:00
json.c Avoid freeing objects during json aggregate finalization 2022-04-04 11:03:49 -04:00
jsonb_gin.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
jsonb_op.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
jsonb_util.c SQL/JSON constructors 2022-03-27 17:03:34 -04:00
jsonb.c SQL JSON functions 2022-03-30 16:30:37 -04:00
jsonbsubs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
jsonfuncs.c SQL/JSON query functions 2022-03-29 16:57:13 -04:00
jsonpath_exec.c JSON_TABLE 2022-04-04 16:03:47 -04:00
jsonpath_gram.y Remove one use of pg_atoi() 2022-02-14 23:07:35 +01:00
jsonpath_scan.l Make JSON path numeric literals more correct 2022-03-28 11:11:39 +02:00
jsonpath.c SQL/JSON query functions 2022-03-29 16:57:13 -04:00
levenshtein.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
like_match.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
like_support.c Call pg_newlocale_from_collation() also with default collation 2022-01-20 09:50:18 +01:00
like.c Call pg_newlocale_from_collation() also with default collation 2022-01-20 09:50:18 +01:00
lockfuncs.c Reduce more the number of calls to GetMaxBackends() 2022-02-10 10:27:29 +09:00
mac8.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
mac.c Specialize tuplesort routines for different kinds of abbreviated keys 2022-04-02 15:22:25 +07:00
Makefile Refactor code related to pg_hba_file_rules() into new file 2022-03-24 12:42:30 +09:00
mcxtfuncs.c Create routine able to set single-call SRFs for Materialize mode 2022-03-07 10:26:29 +09:00
misc.c Fix pg_tablespace_location() with in-place tablespaces 2022-03-17 11:25:02 +09:00
multirangetypes_selfuncs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
multirangetypes.c Add range_agg with multirange inputs 2022-03-30 20:16:23 +02:00
name.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
network_gist.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
network_selfuncs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
network_spgist.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
network.c Specialize tuplesort routines for different kinds of abbreviated keys 2022-04-02 15:22:25 +07:00
numeric.c Clean up assorted failures under clang's -fsanitize=undefined checks. 2022-03-03 18:13:24 -05:00
numutils.c Remove pg_atoi() 2022-02-15 07:44:26 +01:00
oid.c Rename value node fields 2022-01-14 11:26:08 +01:00
oracle_compat.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
orderedsetaggs.c Adjust tuplesort API to have bitwise option flags 2022-04-04 22:24:59 +12:00
partitionfuncs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
pg_locale.c Fix global ICU collations for ICU < 54 2022-03-20 10:21:45 +01:00
pg_lsn.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
pg_upgrade_support.c pg_upgrade: Preserve relfilenodes and tablespace OIDs. 2022-01-17 13:40:27 -05:00
pgstatfuncs.c Use has_privs_for_roles for predefined role checks 2022-03-28 15:10:04 -04:00
pseudotypes.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
quote.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
rangetypes_gist.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
rangetypes_selfuncs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
rangetypes_spgist.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
rangetypes_typanalyze.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
rangetypes.c Change some internal error messages to elogs 2022-03-30 17:53:54 +02:00
regexp.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
regproc.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
ri_triggers.c Enforce foreign key correctly during cross-partition updates 2022-03-20 18:43:40 +01:00
rowtypes.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
ruleutils.c JSON_TABLE 2022-04-04 16:03:47 -04:00
selfuncs.c Optimize order of GROUP BY keys 2022-03-31 01:13:33 +02:00
tid.c Tighten overflow checks in tidin(). 2022-03-03 20:04:35 -05:00
timestamp.c Fix overflow hazards in interval input and output conversions. 2022-04-02 16:12:29 -04:00
trigfuncs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
tsginidx.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
tsgistidx.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
tsquery_cleanup.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
tsquery_gist.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
tsquery_op.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
tsquery_rewrite.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
tsquery_util.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
tsquery.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
tsrank.c Fix collection of typos in the code and the documentation 2022-03-15 11:29:35 +09:00
tsvector_op.c Ensure that length argument of memcmp() isn't seen as negative. 2022-02-15 17:28:17 -05:00
tsvector_parser.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
tsvector.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
uuid.c Specialize tuplesort routines for different kinds of abbreviated keys 2022-04-02 15:22:25 +07:00
varbit.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
varchar.c Call pg_newlocale_from_collation() also with default collation 2022-01-20 09:50:18 +01:00
varlena.c Specialize tuplesort routines for different kinds of abbreviated keys 2022-04-02 15:22:25 +07:00
version.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
windowfuncs.c Update copyright for 2022 2022-01-07 19:04:57 -05:00
xid8funcs.c Remove workarounds for avoiding [U]INT64_FORMAT in translatable strings. 2022-03-21 11:11:55 -04:00
xid.c Add min() and max() aggregates for xid8. 2022-02-10 12:33:41 +09:00
xml.c Fix incorrect xmlschema output for types timetz and timestamptz. 2022-03-18 16:01:42 -04:00