@@ -104,6 +104,22 @@ def test_interleaved_parts_are_merged_by_index(self):
104104 self .assertEqual ([rs .index for rs in merged ], [0 , 1 ])
105105 self .assertEqual ([rs .rows for rs in merged ], [[1 , 3 ], [2 , 4 ]])
106106
107+ def test_schema_filled_from_later_part_when_first_omits_it (self ):
108+ merged = aggregate_result_sets_by_index ([_rs (0 , [1 ], columns = []), _rs (0 , [2 ], columns = ["id" , "name" ])])
109+
110+ self .assertEqual (merged [0 ].columns , ["id" , "name" ])
111+ self .assertEqual (merged [0 ].rows , [1 , 2 ])
112+
113+ def test_arrow_data_filled_from_later_part_when_first_has_none (self ):
114+ merged = aggregate_result_sets_by_index ([_rs (0 , [], data = None ), _rs (0 , [], data = b"bb" )])
115+
116+ self .assertEqual (merged [0 ].data , b"bb" )
117+
118+ def test_parts_without_index_are_not_merged (self ):
119+ merged = aggregate_result_sets_by_index ([_rs (None , [1 ]), _rs (None , [2 ])])
120+
121+ self .assertEqual ([rs .rows for rs in merged ], [[1 ], [2 ]])
122+
107123 def test_empty_input_returns_empty_list (self ):
108124 self .assertEqual (aggregate_result_sets_by_index ([]), [])
109125
0 commit comments