Skip to content

Commit eacd126

Browse files
author
Nikita Glukhov
committed
Add missing json functions and operators
1 parent f9cd4d8 commit eacd126

File tree

10 files changed

+233
-2
lines changed

10 files changed

+233
-2
lines changed

src/backend/catalog/system_views.sql

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,6 +1090,14 @@ LANGUAGE INTERNAL
10901090
STRICT IMMUTABLE PARALLEL SAFE
10911091
AS 'make_interval';
10921092

1093+
CREATE OR REPLACE FUNCTION
1094+
json_set(json_in json, path text[] , replacement json,
1095+
create_if_missing boolean DEFAULT true)
1096+
RETURNS json
1097+
LANGUAGE INTERNAL
1098+
STRICT IMMUTABLE PARALLEL SAFE
1099+
AS 'json_set';
1100+
10931101
CREATE OR REPLACE FUNCTION
10941102
jsonb_set(jsonb_in jsonb, path text[] , replacement jsonb,
10951103
create_if_missing boolean DEFAULT true)
@@ -1105,6 +1113,14 @@ LANGUAGE INTERNAL
11051113
STRICT IMMUTABLE PARALLEL SAFE
11061114
AS 'parse_ident';
11071115

1116+
CREATE OR REPLACE FUNCTION
1117+
json_insert(json_in json, path text[] , replacement json,
1118+
insert_after boolean DEFAULT false)
1119+
RETURNS json
1120+
LANGUAGE INTERNAL
1121+
STRICT IMMUTABLE PARALLEL SAFE
1122+
AS 'json_insert';
1123+
11081124
CREATE OR REPLACE FUNCTION
11091125
jsonb_insert(jsonb_in jsonb, path text[] , replacement jsonb,
11101126
insert_after boolean DEFAULT false)

src/backend/utils/adt/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ OBJS = acl.o amutils.o arrayfuncs.o array_expanded.o array_selfuncs.o \
1616
float.o format_type.o formatting.o genfile.o \
1717
geo_ops.o geo_selfuncs.o geo_spgist.o inet_cidr_ntop.o inet_net_pton.o \
1818
int.o int8.o json.o jsonb.o jsonb_gin.o jsonb_op.o jsonb_util.o \
19-
jsonfuncs.o json_generic.o \
19+
jsonfuncs.o json_generic.o json_gin.o json_op.o \
2020
like.o lockfuncs.o mac.o mac8.o misc.o nabstime.o name.o \
2121
network.o network_gist.o network_selfuncs.o network_spgist.o \
2222
numeric.o numutils.o oid.o oracle_compat.o \

src/backend/utils/adt/json_gin.c

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
* json_gin.c
3+
*
4+
* Portions Copyright (c) 2016, PostgreSQL Global Development Group
5+
*
6+
* IDENTIFICATION
7+
* src/backend/utils/adt/json_gin.c
8+
*
9+
*/
10+
11+
#define gin_compare_jsonb gin_compare_json
12+
#define gin_extract_jsonb gin_extract_json
13+
#define gin_extract_jsonb_query gin_extract_json_query
14+
#define gin_consistent_jsonb gin_consistent_json
15+
#define gin_triconsistent_jsonb gin_triconsistent_json
16+
#define gin_extract_jsonb_path gin_extract_json_path
17+
#define gin_extract_jsonb_query_path gin_extract_json_query_path
18+
#define gin_consistent_jsonb_path gin_consistent_json_path
19+
#define gin_triconsistent_jsonb_path gin_triconsistent_json_path
20+
21+
#define JsonxContainerOps (&jsontContainerOps)
22+
#ifdef JSON_FLATTEN_INTO_TARGET
23+
# define JsonxGetDatum(json) \
24+
PointerGetDatum(cstring_to_text(JsonToCString(JsonRoot(json))))
25+
#else
26+
# define JsonxGetDatum(json) JsontGetDatum(json)
27+
#endif
28+
29+
#include "utils/json_generic.h"
30+
31+
#ifndef JSON_FLATTEN_INTO_TARGET
32+
static inline Datum
33+
JsontGetDatum(Json *json)
34+
{
35+
json->is_json = true;
36+
return JsonGetEOHDatum(json);
37+
}
38+
#endif
39+
40+
#include "jsonb_gin.c"

src/backend/utils/adt/json_op.c

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* json_op.c
3+
*
4+
* Portions Copyright (c) 2016, PostgreSQL Global Development Group
5+
*
6+
* IDENTIFICATION
7+
* src/backend/utils/adt/json_op.c
8+
*
9+
*/
10+
11+
#define jsonb_exists json_exists
12+
#define jsonb_exists_any json_exists_any
13+
#define jsonb_exists_all json_exists_all
14+
#define jsonb_contains json_contains
15+
#define jsonb_contained json_contained
16+
#define jsonb_ne json_ne
17+
#define jsonb_lt json_lt
18+
#define jsonb_gt json_gt
19+
#define jsonb_le json_le
20+
#define jsonb_ge json_ge
21+
#define jsonb_eq json_eq
22+
#define jsonb_cmp json_cmp
23+
#define jsonb_hash json_hash
24+
25+
#define JsonxContainerOps (&jsontContainerOps)
26+
#ifdef JSON_FLATTEN_INTO_TARGET
27+
# define JsonxGetDatum(json) \
28+
PointerGetDatum(cstring_to_text(JsonToCString(JsonRoot(json))))
29+
#else
30+
# define JsonxGetDatum(json) JsontGetDatum(json)
31+
#endif
32+
33+
#include "utils/json_generic.h"
34+
35+
#ifndef JSON_FLATTEN_INTO_TARGET
36+
static inline Datum
37+
JsontGetDatum(Json *json)
38+
{
39+
json->is_json = true;
40+
return JsonGetEOHDatum(json);
41+
}
42+
#endif
43+
44+
#include "jsonb_op.c"

src/include/catalog/pg_amop.h

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -827,6 +827,34 @@ DATA(insert ( 4036 3802 1009 11 s 3249 2742 0 ));
827827
*/
828828
DATA(insert ( 4037 3802 3802 7 s 3246 2742 0 ));
829829

830+
/*
831+
* btree json_ops
832+
*/
833+
DATA(insert ( 3437 114 114 1 s 3424 403 0 ));
834+
DATA(insert ( 3437 114 114 2 s 3426 403 0 ));
835+
DATA(insert ( 3437 114 114 3 s 3422 403 0 ));
836+
DATA(insert ( 3437 114 114 4 s 3427 403 0 ));
837+
DATA(insert ( 3437 114 114 5 s 3425 403 0 ));
838+
839+
/*
840+
* hash jsonb_ops
841+
*/
842+
DATA(insert ( 3438 114 114 1 s 3422 405 0 ));
843+
844+
/*
845+
* GIN json_ops
846+
*/
847+
DATA(insert ( 4147 114 114 7 s 3428 2742 0 ));
848+
DATA(insert ( 4147 114 25 9 s 3429 2742 0 ));
849+
DATA(insert ( 4147 114 1009 10 s 3430 2742 0 ));
850+
DATA(insert ( 4147 114 1009 11 s 3431 2742 0 ));
851+
852+
/*
853+
* GIN json_path_ops
854+
*/
855+
DATA(insert ( 4148 114 114 7 s 3428 2742 0 ));
856+
857+
830858
/*
831859
* SP-GiST range_ops
832860
*/

src/include/catalog/pg_amproc.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ DATA(insert ( 3626 3614 3614 1 3622 ));
149149
DATA(insert ( 3683 3615 3615 1 3668 ));
150150
DATA(insert ( 3901 3831 3831 1 3870 ));
151151
DATA(insert ( 4033 3802 3802 1 4044 ));
152+
DATA(insert ( 3437 114 114 1 4132 ));
152153

153154

154155
/* hash */
@@ -188,6 +189,7 @@ DATA(insert ( 3372 774 774 1 328 ));
188189
DATA(insert ( 3523 3500 3500 1 3515 ));
189190
DATA(insert ( 3903 3831 3831 1 3902 ));
190191
DATA(insert ( 4034 3802 3802 1 4045 ));
192+
DATA(insert ( 3438 114 114 1 4133 ));
191193

192194

193195
/* gist */
@@ -277,6 +279,17 @@ DATA(insert ( 4037 3802 3802 2 3485 ));
277279
DATA(insert ( 4037 3802 3802 3 3486 ));
278280
DATA(insert ( 4037 3802 3802 4 3487 ));
279281
DATA(insert ( 4037 3802 3802 6 3489 ));
282+
DATA(insert ( 4147 114 114 1 4149 ));
283+
DATA(insert ( 4147 114 114 2 4150 ));
284+
DATA(insert ( 4147 114 114 3 4151 ));
285+
DATA(insert ( 4147 114 114 4 4152 ));
286+
DATA(insert ( 4147 114 114 6 4153 ));
287+
DATA(insert ( 4148 114 114 1 351 ));
288+
DATA(insert ( 4148 114 114 2 4154 ));
289+
DATA(insert ( 4148 114 114 3 4155 ));
290+
DATA(insert ( 4148 114 114 4 4156 ));
291+
DATA(insert ( 4148 114 114 6 4157 ));
292+
280293

281294
/* sp-gist */
282295
DATA(insert ( 3474 3831 3831 1 3469 ));

src/include/catalog/pg_opclass.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,10 @@ DATA(insert ( 403 jsonb_ops PGNSP PGUID 4033 3802 t 0 ));
209209
DATA(insert ( 405 jsonb_ops PGNSP PGUID 4034 3802 t 0 ));
210210
DATA(insert ( 2742 jsonb_ops PGNSP PGUID 4036 3802 t 25 ));
211211
DATA(insert ( 2742 jsonb_path_ops PGNSP PGUID 4037 3802 f 23 ));
212+
DATA(insert ( 403 json_ops PGNSP PGUID 3437 114 t 0 ));
213+
DATA(insert ( 405 json_ops PGNSP PGUID 3438 114 t 0 ));
214+
DATA(insert ( 2742 json_ops PGNSP PGUID 4147 114 t 25 ));
215+
DATA(insert ( 2742 json_path_ops PGNSP PGUID 4148 114 f 23 ));
212216

213217
/* BRIN operator classes */
214218
/* no brin opclass for bool */

src/include/catalog/pg_operator.h

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1821,6 +1821,7 @@ DATA(insert OID = 3213 ( "#>" PGNSP PGUID b f f 3802 1009 3802 0 0 jsonb_ext
18211821
DESCR("get value from jsonb with path elements");
18221822
DATA(insert OID = 3206 ( "#>>" PGNSP PGUID b f f 3802 1009 25 0 0 jsonb_extract_path_text - - ));
18231823
DESCR("get value from jsonb as text with path elements");
1824+
18241825
DATA(insert OID = 3240 ( "=" PGNSP PGUID b t t 3802 3802 16 3240 3241 jsonb_eq eqsel eqjoinsel ));
18251826
DESCR("equal");
18261827
DATA(insert OID = 3241 ( "<>" PGNSP PGUID b f f 3802 3802 16 3241 3240 jsonb_ne neqsel neqjoinsel ));
@@ -1854,4 +1855,36 @@ DESCR("delete array element");
18541855
DATA(insert OID = 3287 ( "#-" PGNSP PGUID b f f 3802 1009 3802 0 0 jsonb_delete_path - - ));
18551856
DESCR("delete path");
18561857

1858+
1859+
DATA(insert OID = 3422 ( "=" PGNSP PGUID b t t 114 114 16 3422 3423 json_eq eqsel eqjoinsel ));
1860+
DESCR("equal");
1861+
DATA(insert OID = 3423 ( "<>" PGNSP PGUID b f f 114 114 16 3423 3422 json_ne neqsel neqjoinsel ));
1862+
DESCR("not equal");
1863+
DATA(insert OID = 3424 ( "<" PGNSP PGUID b f f 114 114 16 3425 3427 json_lt scalarltsel scalarltjoinsel ));
1864+
DESCR("less than");
1865+
DATA(insert OID = 3425 ( ">" PGNSP PGUID b f f 114 114 16 3424 3426 json_gt scalargtsel scalargtjoinsel ));
1866+
DESCR("greater than");
1867+
DATA(insert OID = 3426 ( "<=" PGNSP PGUID b f f 114 114 16 3427 3425 json_le scalarltsel scalarltjoinsel ));
1868+
DESCR("less than or equal");
1869+
DATA(insert OID = 3427 ( ">=" PGNSP PGUID b f f 114 114 16 3426 3424 json_ge scalargtsel scalargtjoinsel ));
1870+
DESCR("greater than or equal");
1871+
DATA(insert OID = 3428 ( "@>" PGNSP PGUID b f f 114 114 16 3432 0 json_contains contsel contjoinsel ));
1872+
DESCR("contains");
1873+
DATA(insert OID = 3429 ( "?" PGNSP PGUID b f f 114 25 16 0 0 json_exists contsel contjoinsel ));
1874+
DESCR("key exists");
1875+
DATA(insert OID = 3430 ( "?|" PGNSP PGUID b f f 114 1009 16 0 0 json_exists_any contsel contjoinsel ));
1876+
DESCR("any key exists");
1877+
DATA(insert OID = 3431 ( "?&" PGNSP PGUID b f f 114 1009 16 0 0 json_exists_all contsel contjoinsel ));
1878+
DESCR("all keys exist");
1879+
DATA(insert OID = 3432 ( "<@" PGNSP PGUID b f f 114 114 16 3428 0 json_contained contsel contjoinsel ));
1880+
DESCR("is contained by");
1881+
DATA(insert OID = 3433 ( "||" PGNSP PGUID b f f 114 114 114 0 0 json_concat - - ));
1882+
DESCR("concatenate");
1883+
DATA(insert OID = 3434 ( "-" PGNSP PGUID b f f 114 25 114 0 0 4140 - - ));
1884+
DESCR("delete object field");
1885+
DATA(insert OID = 3435 ( "-" PGNSP PGUID b f f 114 23 114 0 0 4141 - - ));
1886+
DESCR("delete array element");
1887+
DATA(insert OID = 3436 ( "#-" PGNSP PGUID b f f 114 1009 114 0 0 json_delete_path - - ));
1888+
DESCR("delete path");
1889+
18571890
#endif /* PG_OPERATOR_H */

src/include/catalog/pg_opfamily.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,10 @@ DATA(insert OID = 4034 ( 405 jsonb_ops PGNSP PGUID ));
158158
DATA(insert OID = 4035 ( 783 jsonb_ops PGNSP PGUID ));
159159
DATA(insert OID = 4036 ( 2742 jsonb_ops PGNSP PGUID ));
160160
DATA(insert OID = 4037 ( 2742 jsonb_path_ops PGNSP PGUID ));
161+
DATA(insert OID = 3437 ( 403 json_ops PGNSP PGUID ));
162+
DATA(insert OID = 3438 ( 405 json_ops PGNSP PGUID ));
163+
DATA(insert OID = 4147 ( 2742 json_ops PGNSP PGUID ));
164+
DATA(insert OID = 4148 ( 2742 json_path_ops PGNSP PGUID ));
161165

162166
DATA(insert OID = 4054 ( 3580 integer_minmax_ops PGNSP PGUID ));
163167
DATA(insert OID = 4055 ( 3580 numeric_minmax_ops PGNSP PGUID ));

src/include/catalog/pg_proc.h

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5004,6 +5004,7 @@ DATA(insert OID = 3487 ( gin_consistent_jsonb_path PGNSP PGUID 12 1 0 0 0 f f
50045004
DESCR("GIN support");
50055005
DATA(insert OID = 3489 ( gin_triconsistent_jsonb_path PGNSP PGUID 12 1 0 0 0 f f f f t f i s 7 0 18 "2281 21 3802 23 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_triconsistent_jsonb_path _null_ _null_ _null_ ));
50065006
DESCR("GIN support");
5007+
50075008
DATA(insert OID = 3301 ( jsonb_concat PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 3802 "3802 3802" _null_ _null_ _null_ _null_ _null_ jsonb_concat _null_ _null_ _null_ ));
50085009
DATA(insert OID = 3302 ( jsonb_delete PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 3802 "3802 25" _null_ _null_ _null_ _null_ _null_ jsonb_delete _null_ _null_ _null_ ));
50095010
DATA(insert OID = 3303 ( jsonb_delete PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 3802 "3802 23" _null_ _null_ _null_ _null_ _null_ jsonb_delete_idx _null_ _null_ _null_ ));
@@ -5015,9 +5016,57 @@ DATA(insert OID = 3306 ( jsonb_pretty PGNSP PGUID 12 1 0 0 0 f f f f t f i s
50155016
DESCR("Indented text from jsonb");
50165017
DATA(insert OID = 3416 ( jsonb_canonical PGNSP PGUID 12 1 0 0 0 f f f f t f i s 1 0 25 "3802" _null_ _null_ _null_ _null_ _null_ jsonb_canonical _null_ _null_ _null_ ));
50175018
DESCR("Canonical text from jsonb");
5018-
50195019
DATA(insert OID = 3579 ( jsonb_insert PGNSP PGUID 12 1 0 0 0 f f f f t f i s 4 0 3802 "3802 1009 3802 16" _null_ _null_ _null_ _null_ _null_ jsonb_insert _null_ _null_ _null_ ));
50205020
DESCR("Insert value into a jsonb");
5021+
5022+
DATA(insert OID = 4126 ( json_ne PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 16 "114 114" _null_ _null_ _null_ _null_ _null_ json_ne _null_ _null_ _null_ ));
5023+
DATA(insert OID = 4127 ( json_lt PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 16 "114 114" _null_ _null_ _null_ _null_ _null_ json_lt _null_ _null_ _null_ ));
5024+
DATA(insert OID = 4128 ( json_gt PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 16 "114 114" _null_ _null_ _null_ _null_ _null_ json_gt _null_ _null_ _null_ ));
5025+
DATA(insert OID = 4129 ( json_le PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 16 "114 114" _null_ _null_ _null_ _null_ _null_ json_le _null_ _null_ _null_ ));
5026+
DATA(insert OID = 4130 ( json_ge PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 16 "114 114" _null_ _null_ _null_ _null_ _null_ json_ge _null_ _null_ _null_ ));
5027+
DATA(insert OID = 4131 ( json_eq PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 16 "114 114" _null_ _null_ _null_ _null_ _null_ json_eq _null_ _null_ _null_ ));
5028+
DATA(insert OID = 4132 ( json_cmp PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 23 "114 114" _null_ _null_ _null_ _null_ _null_ json_cmp _null_ _null_ _null_ ));
5029+
DESCR("less-equal-greater");
5030+
DATA(insert OID = 4133 ( json_hash PGNSP PGUID 12 1 0 0 0 f f f f t f i s 1 0 23 "114" _null_ _null_ _null_ _null_ _null_ json_hash _null_ _null_ _null_ ));
5031+
DESCR("hash");
5032+
DATA(insert OID = 4134 ( json_contains PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 16 "114 114" _null_ _null_ _null_ _null_ _null_ json_contains _null_ _null_ _null_ ));
5033+
DATA(insert OID = 4135 ( json_exists PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 16 "114 25" _null_ _null_ _null_ _null_ _null_ json_exists _null_ _null_ _null_ ));
5034+
DATA(insert OID = 4136 ( json_exists_any PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 16 "114 1009" _null_ _null_ _null_ _null_ _null_ json_exists_any _null_ _null_ _null_ ));
5035+
DATA(insert OID = 4137 ( json_exists_all PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 16 "114 1009" _null_ _null_ _null_ _null_ _null_ json_exists_all _null_ _null_ _null_ ));
5036+
DATA(insert OID = 4138 ( json_contained PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 16 "114 114" _null_ _null_ _null_ _null_ _null_ json_contained _null_ _null_ _null_ ));
5037+
5038+
DATA(insert OID = 4139 ( json_concat PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 114 "114 114" _null_ _null_ _null_ _null_ _null_ json_concat _null_ _null_ _null_ ));
5039+
DATA(insert OID = 4140 ( json_delete PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 114 "114 25" _null_ _null_ _null_ _null_ _null_ json_delete _null_ _null_ _null_ ));
5040+
DATA(insert OID = 4141 ( json_delete PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 114 "114 23" _null_ _null_ _null_ _null_ _null_ json_delete_idx _null_ _null_ _null_ ));
5041+
DATA(insert OID = 4142 ( json_delete_path PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 114 "114 1009" _null_ _null_ _null_ _null_ _null_ json_delete_path _null_ _null_ _null_ ));
5042+
DATA(insert OID = 4143 ( json_set PGNSP PGUID 12 1 0 0 0 f f f f t f i s 4 0 114 "114 1009 114 16" _null_ _null_ _null_ _null_ _null_ json_set _null_ _null_ _null_ ));
5043+
DESCR("Set part of a json");
5044+
DATA(insert OID = 4144 ( json_pretty PGNSP PGUID 12 1 0 0 0 f f f f t f i s 1 0 25 "114" _null_ _null_ _null_ _null_ _null_ json_pretty _null_ _null_ _null_ ));
5045+
DESCR("Indented text from json");
5046+
DATA(insert OID = 4145 ( json_canonical PGNSP PGUID 12 1 0 0 0 f f f f t f i s 1 0 25 "114" _null_ _null_ _null_ _null_ _null_ json_canonical _null_ _null_ _null_ ));
5047+
DESCR("Canonical text from json");
5048+
DATA(insert OID = 4146 ( json_insert PGNSP PGUID 12 1 0 0 0 f f f f t f i s 4 0 114 "114 1009 114 16" _null_ _null_ _null_ _null_ _null_ json_insert _null_ _null_ _null_ ));
5049+
DESCR("Insert value into a json");
5050+
5051+
DATA(insert OID = 4149 ( gin_compare_json PGNSP PGUID 12 1 0 0 0 f f f f t f i s 2 0 23 "25 25" _null_ _null_ _null_ _null_ _null_ gin_compare_json _null_ _null_ _null_ ));
5052+
DESCR("GIN support");
5053+
DATA(insert OID = 4150 ( gin_extract_json PGNSP PGUID 12 1 0 0 0 f f f f t f i s 3 0 2281 "114 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_extract_json _null_ _null_ _null_ ));
5054+
DESCR("GIN support");
5055+
DATA(insert OID = 4151 ( gin_extract_json_query PGNSP PGUID 12 1 0 0 0 f f f f t f i s 7 0 2281 "114 2281 21 2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_extract_json_query _null_ _null_ _null_ ));
5056+
DESCR("GIN support");
5057+
DATA(insert OID = 4152 ( gin_consistent_json PGNSP PGUID 12 1 0 0 0 f f f f t f i s 8 0 16 "2281 21 114 23 2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_consistent_json _null_ _null_ _null_ ));
5058+
DESCR("GIN support");
5059+
DATA(insert OID = 4153 ( gin_triconsistent_json PGNSP PGUID 12 1 0 0 0 f f f f t f i s 7 0 18 "2281 21 114 23 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_triconsistent_json _null_ _null_ _null_ ));
5060+
DESCR("GIN support");
5061+
DATA(insert OID = 4154 ( gin_extract_json_path PGNSP PGUID 12 1 0 0 0 f f f f t f i s 3 0 2281 "114 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_extract_json_path _null_ _null_ _null_ ));
5062+
DESCR("GIN support");
5063+
DATA(insert OID = 4155 ( gin_extract_json_query_path PGNSP PGUID 12 1 0 0 0 f f f f t f i s 7 0 2281 "114 2281 21 2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_extract_json_query_path _null_ _null_ _null_ ));
5064+
DESCR("GIN support");
5065+
DATA(insert OID = 4156 ( gin_consistent_json_path PGNSP PGUID 12 1 0 0 0 f f f f t f i s 8 0 16 "2281 21 114 23 2281 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_consistent_json_path _null_ _null_ _null_ ));
5066+
DESCR("GIN support");
5067+
DATA(insert OID = 4157 ( gin_triconsistent_json_path PGNSP PGUID 12 1 0 0 0 f f f f t f i s 7 0 18 "2281 21 114 23 2281 2281 2281" _null_ _null_ _null_ _null_ _null_ gin_triconsistent_json_path _null_ _null_ _null_ ));
5068+
DESCR("GIN support");
5069+
50215070
/* txid */
50225071
DATA(insert OID = 2939 ( txid_snapshot_in PGNSP PGUID 12 1 0 0 0 f f f f t f i s 1 0 2970 "2275" _null_ _null_ _null_ _null_ _null_ txid_snapshot_in _null_ _null_ _null_ ));
50235072
DESCR("I/O");

0 commit comments

Comments
 (0)