@@ -4926,24 +4926,9 @@ setPathObject(JsonbIterator **it, Datum *path_elems, bool *path_nulls,
49264926 }
49274927
49284928 (void ) pushJsonbValue (st , r , & k );
4929- r = JsonbIteratorNext (it , & v , false);
4930- (void ) pushJsonbValue (st , r , r < WJB_BEGIN_ARRAY ? & v : NULL );
4931- if (r == WJB_BEGIN_ARRAY || r == WJB_BEGIN_OBJECT )
4932- {
4933- int walking_level = 1 ;
4934-
4935- while (walking_level != 0 )
4936- {
4937- r = JsonbIteratorNext (it , & v , false);
4938-
4939- if (r == WJB_BEGIN_ARRAY || r == WJB_BEGIN_OBJECT )
4940- ++ walking_level ;
4941- if (r == WJB_END_ARRAY || r == WJB_END_OBJECT )
4942- -- walking_level ;
4943-
4944- (void ) pushJsonbValue (st , r , r < WJB_BEGIN_ARRAY ? & v : NULL );
4945- }
4946- }
4929+ r = JsonbIteratorNext (it , & v , true);
4930+ Assert (r == WJB_VALUE );
4931+ (void ) pushJsonbValue (st , r , & v );
49474932 }
49484933 }
49494934}
@@ -5039,26 +5024,9 @@ setPathArray(JsonbIterator **it, Datum *path_elems, bool *path_nulls,
50395024 }
50405025 else
50415026 {
5042- r = JsonbIteratorNext (it , & v , false);
5043-
5044- (void ) pushJsonbValue (st , r , r < WJB_BEGIN_ARRAY ? & v : NULL );
5045-
5046- if (r == WJB_BEGIN_ARRAY || r == WJB_BEGIN_OBJECT )
5047- {
5048- int walking_level = 1 ;
5049-
5050- while (walking_level != 0 )
5051- {
5052- r = JsonbIteratorNext (it , & v , false);
5053-
5054- if (r == WJB_BEGIN_ARRAY || r == WJB_BEGIN_OBJECT )
5055- ++ walking_level ;
5056- if (r == WJB_END_ARRAY || r == WJB_END_OBJECT )
5057- -- walking_level ;
5058-
5059- (void ) pushJsonbValue (st , r , r < WJB_BEGIN_ARRAY ? & v : NULL );
5060- }
5061- }
5027+ r = JsonbIteratorNext (it , & v , true);
5028+ Assert (r == WJB_ELEM );
5029+ (void ) pushJsonbValue (st , r , & v );
50625030
50635031 if ((op_type & JB_PATH_CREATE_OR_INSERT ) && !done &&
50645032 level == path_len - 1 && i == nelems - 1 )
0 commit comments