@@ -4654,24 +4654,9 @@ setPathObject(JsonbIterator **it, Datum *path_elems, bool *path_nulls,
46544654}
46554655
46564656(void )pushJsonbValue (st ,r ,& k );
4657- r = JsonbIteratorNext (it ,& v , false);
4658- (void )pushJsonbValue (st ,r ,r < WJB_BEGIN_ARRAY ?& v :NULL );
4659- if (r == WJB_BEGIN_ARRAY || r == WJB_BEGIN_OBJECT )
4660- {
4661- int walking_level = 1 ;
4662-
4663- while (walking_level != 0 )
4664- {
4665- r = JsonbIteratorNext (it ,& v , false);
4666-
4667- if (r == WJB_BEGIN_ARRAY || r == WJB_BEGIN_OBJECT )
4668- ++ walking_level ;
4669- if (r == WJB_END_ARRAY || r == WJB_END_OBJECT )
4670- -- walking_level ;
4671-
4672- (void )pushJsonbValue (st ,r ,r < WJB_BEGIN_ARRAY ?& v :NULL );
4673- }
4674- }
4657+ r = JsonbIteratorNext (it ,& v , true);
4658+ Assert (r == WJB_VALUE );
4659+ (void )pushJsonbValue (st ,r ,& v );
46754660}
46764661}
46774662}
@@ -4767,26 +4752,9 @@ setPathArray(JsonbIterator **it, Datum *path_elems, bool *path_nulls,
47674752}
47684753else
47694754{
4770- r = JsonbIteratorNext (it ,& v , false);
4771-
4772- (void )pushJsonbValue (st ,r ,r < WJB_BEGIN_ARRAY ?& v :NULL );
4773-
4774- if (r == WJB_BEGIN_ARRAY || r == WJB_BEGIN_OBJECT )
4775- {
4776- int walking_level = 1 ;
4777-
4778- while (walking_level != 0 )
4779- {
4780- r = JsonbIteratorNext (it ,& v , false);
4781-
4782- if (r == WJB_BEGIN_ARRAY || r == WJB_BEGIN_OBJECT )
4783- ++ walking_level ;
4784- if (r == WJB_END_ARRAY || r == WJB_END_OBJECT )
4785- -- walking_level ;
4786-
4787- (void )pushJsonbValue (st ,r ,r < WJB_BEGIN_ARRAY ?& v :NULL );
4788- }
4789- }
4755+ r = JsonbIteratorNext (it ,& v , true);
4756+ Assert (r == WJB_ELEM );
4757+ (void )pushJsonbValue (st ,r ,& v );
47904758
47914759if ((op_type & JB_PATH_CREATE_OR_INSERT )&& !done &&
47924760level == path_len - 1 && i == nelems - 1 )