@@ -4721,8 +4721,8 @@ IteratorConcat(JsonbIterator **it1, JsonbIterator **it2,
47214721 res = pushJsonbValue (state , WJB_END_ARRAY , NULL /* signal to sort */ );
47224722 }
47234723 /* have we got array || object or object || array? */
4724- else if (((rk1 == WJB_BEGIN_ARRAY && !( * it1 ) -> isScalar ) && rk2 == WJB_BEGIN_OBJECT ) ||
4725- (rk1 == WJB_BEGIN_OBJECT && (rk2 == WJB_BEGIN_ARRAY && !( * it2 ) -> isScalar )))
4724+ else if (((rk1 == WJB_BEGIN_ARRAY && !v1 . val . array . rawScalar ) && rk2 == WJB_BEGIN_OBJECT ) ||
4725+ (rk1 == WJB_BEGIN_OBJECT && (rk2 == WJB_BEGIN_ARRAY && !v2 . val . array . rawScalar )))
47264726 {
47274727 JsonbIterator * * it_array = rk1 == WJB_BEGIN_ARRAY ? it1 : it2 ;
47284728 JsonbIterator * * it_object = rk1 == WJB_BEGIN_OBJECT ? it1 : it2 ;
@@ -5229,10 +5229,8 @@ transform_jsonb_string_values(Jsonb *jsonb, void *action_state,
52295229 JsonbIteratorToken type ;
52305230 JsonbParseState * st = NULL ;
52315231 text * out ;
5232- bool is_scalar = false;
52335232
52345233 it = JsonbIteratorInit (& jsonb -> root );
5235- is_scalar = it -> isScalar ;
52365234
52375235 while ((type = JsonbIteratorNext (& it , & v , false)) != WJB_DONE )
52385236 {
@@ -5252,7 +5250,7 @@ transform_jsonb_string_values(Jsonb *jsonb, void *action_state,
52525250 }
52535251
52545252 if (res -> type == jbvArray )
5255- res -> val .array .rawScalar = is_scalar ;
5253+ res -> val .array .rawScalar = JB_ROOT_IS_SCALAR ( jsonb ) ;
52565254
52575255 return JsonbValueToJsonb (res );
52585256}
0 commit comments