@@ -158,6 +158,17 @@ JsonbInitBinary(JsonbValue *jbv, Jsonb *jb)
158
158
return jbv ;
159
159
}
160
160
161
+ static inline JsonbValue *
162
+ JsonbWrapInBinary (JsonbValue * jbv , JsonbValue * out )
163
+ {
164
+ Jsonb * jb = JsonbValueToJsonb (jbv );
165
+
166
+ if (!out )
167
+ out = palloc (sizeof (* out ));
168
+
169
+ return JsonbInitBinary (out , jb );
170
+ }
171
+
161
172
/********************Execute functions for JsonPath***************************/
162
173
163
174
/*
@@ -1792,7 +1803,6 @@ static inline JsonbValue *
1792
1803
wrapItem (JsonbValue * jbv )
1793
1804
{
1794
1805
JsonbParseState * ps = NULL ;
1795
- Jsonb * jb ;
1796
1806
JsonbValue jbvbuf ;
1797
1807
int type = JsonbType (jbv );
1798
1808
@@ -1806,14 +1816,7 @@ wrapItem(JsonbValue *jbv)
1806
1816
pushJsonbValue (& ps , WJB_ELEM , jbv );
1807
1817
jbv = pushJsonbValue (& ps , WJB_END_ARRAY , NULL );
1808
1818
1809
- jb = JsonbValueToJsonb (jbv );
1810
-
1811
- jbv = palloc (sizeof (* jbv ));
1812
- jbv -> type = jbvBinary ;
1813
- jbv -> val .binary .data = & jb -> root ;
1814
- jbv -> val .binary .len = VARSIZE (jb ) - VARHDRSZ ;
1815
-
1816
- return jbv ;
1819
+ return JsonbWrapInBinary (jbv , NULL );
1817
1820
}
1818
1821
1819
1822
static inline JsonPathExecResult
0 commit comments