postgresql/src/backend/utils/adt
Alvaro Herrera dbb9aeda99 Optimize get_jsonb_path_all avoiding an iterator
Instead of creating an iterator object at each step down the JSONB
object/array, we can just just examine its object/array flags, which is
faster.  Also, use the recently introduced JsonbValueAsText instead of
open-coding the same thing, for code simplicity.

Author: Nikita Glukhov
Discussion: https://postgr.es/m/7c417f90-f95f-247e-ba63-d95e39c0ad14@postgrespro.ru
2019-09-20 19:31:32 -03:00
..
.gitignore Revert "Add gitignore entries for jsonpath_gram.h" 2019-03-23 00:19:34 +01:00
acl.c Don't include utils/array.h from acl.h. 2019-08-16 10:33:30 -07:00
amutils.c Report progress of CREATE INDEX operations 2019-04-02 15:18:08 -03:00
array_expanded.c Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
array_selfuncs.c Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
array_typanalyze.c Split tuptoaster.c into three separate files. 2019-09-05 13:15:10 -04:00
array_userfuncs.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
arrayfuncs.c Fix inconsistencies and typos in the tree, take 11 2019-08-19 16:21:39 +09:00
arrayutils.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
ascii.c Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
bool.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
cash.c Fix loss of fractional digits for large values in cash_numeric(). 2019-07-26 11:59:00 -04:00
char.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
cryptohashes.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
date.c Fix many typos and inconsistencies 2019-07-01 10:00:23 +09:00
datetime.c Fix some incorrect parsing of time with time zone strings 2019-08-07 18:16:31 +09:00
datum.c Split tuptoaster.c into three separate files. 2019-09-05 13:15:10 -04:00
dbsize.c Replace heapam.h includes with {table, relation}.h where applicable. 2019-01-21 10:51:37 -08:00
domains.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
encode.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
enum.c Replace uses of heap_open et al with the corresponding table_* function. 2019-01-21 10:51:37 -08:00
expandeddatum.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
expandedrecord.c Split tuptoaster.c into three separate files. 2019-09-05 13:15:10 -04:00
float.c Add safeguards in LSN, numeric and float calculation for custom errors 2019-08-05 15:35:16 +09:00
format_type.c Remove unused macro 2019-02-11 10:07:25 +01:00
formatting.c Support for SSSSS datetime format pattern 2019-09-16 21:14:56 +03:00
genfile.c Fix inconsistencies and typos in the tree, take 9 2019-08-05 12:14:58 +09:00
geo_ops.c Add missing commutators for distance operators 2019-07-14 14:55:01 +03:00
geo_selfuncs.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
geo_spgist.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
inet_cidr_ntop.c Avoid conflicts with library versions of inet_net_ntop() and friends. 2019-08-18 19:27:23 -04:00
inet_net_pton.c Avoid conflicts with library versions of inet_net_ntop() and friends. 2019-08-18 19:27:23 -04:00
int.c Build out the planner support function infrastructure. 2019-02-09 18:32:23 -05:00
int8.c Build out the planner support function infrastructure. 2019-02-09 18:32:23 -05:00
json.c Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
jsonb.c Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
jsonb_gin.c Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
jsonb_op.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
jsonb_util.c Fix inconsistencies and typos in the tree 2019-07-22 10:01:50 +09:00
jsonfuncs.c Optimize get_jsonb_path_all avoiding an iterator 2019-09-20 19:31:32 -03:00
jsonpath.c Fix bogus handling of XQuery regex option flags. 2019-09-17 15:39:51 -04:00
jsonpath_exec.c Fix bogus handling of XQuery regex option flags. 2019-09-17 15:39:51 -04:00
jsonpath_gram.y Fix bogus handling of XQuery regex option flags. 2019-09-17 15:39:51 -04:00
jsonpath_scan.l Fix some minor spec-compliance issues in jsonpath lexer. 2019-09-20 14:22:58 -04:00
levenshtein.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
like.c Update stale comments, and fix comment typos. 2019-06-08 10:12:26 -07:00
like_match.c Fix inconsistencies and typos in the tree 2019-07-29 12:28:30 +09:00
like_support.c Fix planner's test for case-foldable characters in ILIKE with ICU. 2019-08-12 13:15:47 -04:00
lockfuncs.c Add an isolation test to exercise parallel-worker deadlock resolution. 2019-08-01 11:50:00 -04:00
mac.c Move hash_any prototype from access/hash.h to utils/hashutils.h 2019-03-11 13:17:50 -03:00
mac8.c Move hash_any prototype from access/hash.h to utils/hashutils.h 2019-03-11 13:17:50 -03:00
Makefile Minor jsonpath fixes. 2019-04-17 13:37:00 -04:00
misc.c Replace uses of heap_open et al with the corresponding table_* function. 2019-01-21 10:51:37 -08:00
name.c Collations with nondeterministic comparison 2019-03-22 12:12:43 +01:00
network.c Fix inconsistencies and typos in the tree, take 11 2019-08-19 16:21:39 +09:00
network_gist.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
network_selfuncs.c Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
network_spgist.c Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
numeric.c Add safeguards in LSN, numeric and float calculation for custom errors 2019-08-05 15:35:16 +09:00
numutils.c Initial pgindent run for v12. 2019-05-22 12:55:34 -04:00
oid.c Fix inconsistencies and typos in the tree 2019-07-22 10:01:50 +09:00
oracle_compat.c Fix many typos and inconsistencies 2019-07-01 10:00:23 +09:00
orderedsetaggs.c Collations with nondeterministic comparison 2019-03-22 12:12:43 +01:00
partitionfuncs.c Represent Lists as expansible arrays, not chains of cons-cells. 2019-07-15 13:41:58 -04:00
pg_locale.c Fix inconsistencies and typos in the tree, take 11 2019-08-19 16:21:39 +09:00
pg_lsn.c Add safeguards in LSN, numeric and float calculation for custom errors 2019-08-05 15:35:16 +09:00
pg_upgrade_support.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
pgstatfuncs.c Return NULL for checksum failures if checksums are not enabled 2019-04-17 13:51:48 +02:00
pseudotypes.c tableam: introduce table AM infrastructure. 2019-03-06 09:54:38 -08:00
quote.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
rangetypes.c Fix error in commit e6feef57. 2019-07-18 17:04:50 -07:00
rangetypes_gist.c Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
rangetypes_selfuncs.c Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
rangetypes_spgist.c Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
rangetypes_typanalyze.c Fix inconsistencies and typos in the tree, take 10 2019-08-13 13:53:41 +09:00
regexp.c Fix issues around strictness of SIMILAR TO. 2019-09-07 14:21:59 -04:00
regproc.c Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
ri_triggers.c Use appendBinaryStringInfo in more places where the length is known 2019-07-23 00:14:11 +12:00
rowtypes.c Split tuptoaster.c into three separate files. 2019-09-05 13:15:10 -04:00
ruleutils.c Rationalize use of list_concat + list_copy combinations. 2019-08-12 11:20:18 -04:00
selfuncs.c Rationalize use of list_concat + list_copy combinations. 2019-08-12 11:20:18 -04:00
tid.c tableam: Rename wrapper functions to match callback names. 2019-05-23 16:32:36 -07:00
timestamp.c Support for FF1-FF6 datetime format patterns 2019-09-16 21:14:32 +03:00
trigfuncs.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
tsginidx.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
tsgistidx.c Split tuptoaster.c into three separate files. 2019-09-05 13:15:10 -04:00
tsquery.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
tsquery_cleanup.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
tsquery_gist.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
tsquery_op.c Fix misplaced const 2019-03-26 09:23:08 +01:00
tsquery_rewrite.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
tsquery_util.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
tsrank.c Fix inconsistencies in the code 2019-07-08 13:15:09 +09:00
tsvector.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
tsvector_op.c Don't include utils/array.h from acl.h. 2019-08-16 10:33:30 -07:00
tsvector_parser.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
txid.c Fix inconsistencies and typos in the tree, take 10 2019-08-13 13:53:41 +09:00
uuid.c Add gen_random_uuid function 2019-07-14 14:30:27 +02:00
varbit.c Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
varchar.c Split tuptoaster.c into three separate files. 2019-09-05 13:15:10 -04:00
varlena.c Split tuptoaster.c into three separate files. 2019-09-05 13:15:10 -04:00
version.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
windowfuncs.c Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
xid.c Update copyright for 2019 2019-01-02 12:44:25 -05:00
xml.c Fix inconsistencies and typos in the tree, take 10 2019-08-13 13:53:41 +09:00