@@ -448,6 +448,26 @@ def test__merge_chunk_array_of_struct_unmergeable(self):
448
448
self .assertEqual (merged , expected )
449
449
self .assertIsNone (streamed ._pending_chunk )
450
450
451
+ def test__merge_chunk_array_of_struct_unmergeable_split (self ):
452
+ iterator = _MockCancellableIterator ()
453
+ streamed = self ._make_one (iterator )
454
+ struct_type = self ._make_struct_type (
455
+ [("name" , "STRING" ), ("height" , "FLOAT64" ), ("eye_color" , "STRING" )]
456
+ )
457
+ FIELDS = [self ._make_array_field ("test" , element_type = struct_type )]
458
+ streamed ._metadata = self ._make_result_set_metadata (FIELDS )
459
+ partial = self ._make_list_value ([u"Phred Phlyntstone" , 1.65 ])
460
+ streamed ._pending_chunk = self ._make_list_value (value_pbs = [partial ])
461
+ rest = self ._make_list_value (["brown" ])
462
+ chunk = self ._make_list_value (value_pbs = [rest ])
463
+
464
+ merged = streamed ._merge_chunk (chunk )
465
+
466
+ struct = self ._make_list_value ([u"Phred Phlyntstone" , 1.65 , "brown" ])
467
+ expected = self ._make_list_value (value_pbs = [struct ])
468
+ self .assertEqual (merged , expected )
469
+ self .assertIsNone (streamed ._pending_chunk )
470
+
451
471
def test_merge_values_empty_and_empty (self ):
452
472
iterator = _MockCancellableIterator ()
453
473
streamed = self ._make_one (iterator )
0 commit comments