@@ -159,6 +159,17 @@ JsonbInitBinary(JsonbValue *jbv, Jsonb *jb)
159
159
return jbv ;
160
160
}
161
161
162
+ static inline JsonbValue *
163
+ JsonbWrapInBinary (JsonbValue * jbv , JsonbValue * out )
164
+ {
165
+ Jsonb * jb = JsonbValueToJsonb (jbv );
166
+
167
+ if (!out )
168
+ out = palloc (sizeof (* out ));
169
+
170
+ return JsonbInitBinary (out , jb );
171
+ }
172
+
162
173
/********************Execute functions for JsonPath***************************/
163
174
164
175
/*
@@ -1963,7 +1974,6 @@ static inline JsonbValue *
1963
1974
wrapItem (JsonbValue * jbv )
1964
1975
{
1965
1976
JsonbParseState * ps = NULL ;
1966
- Jsonb * jb ;
1967
1977
JsonbValue jbvbuf ;
1968
1978
int type = JsonbType (jbv );
1969
1979
@@ -1977,14 +1987,7 @@ wrapItem(JsonbValue *jbv)
1977
1987
pushJsonbValue (& ps , WJB_ELEM , jbv );
1978
1988
jbv = pushJsonbValue (& ps , WJB_END_ARRAY , NULL );
1979
1989
1980
- jb = JsonbValueToJsonb (jbv );
1981
-
1982
- jbv = palloc (sizeof (* jbv ));
1983
- jbv -> type = jbvBinary ;
1984
- jbv -> val .binary .data = & jb -> root ;
1985
- jbv -> val .binary .len = VARSIZE (jb ) - VARHDRSZ ;
1986
-
1987
- return jbv ;
1990
+ return JsonbWrapInBinary (jbv , NULL );
1988
1991
}
1989
1992
1990
1993
static inline JsonPathExecResult
0 commit comments