@@ -4926,24 +4926,9 @@ setPathObject(JsonbIterator **it, Datum *path_elems, bool *path_nulls,
4926
4926
}
4927
4927
4928
4928
(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 );
4947
4932
}
4948
4933
}
4949
4934
}
@@ -5039,26 +5024,9 @@ setPathArray(JsonbIterator **it, Datum *path_elems, bool *path_nulls,
5039
5024
}
5040
5025
else
5041
5026
{
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 );
5062
5030
5063
5031
if ((op_type & JB_PATH_CREATE_OR_INSERT ) && !done &&
5064
5032
level == path_len - 1 && i == nelems - 1 )
0 commit comments