MCPcopy Create free account
hub / github.com/apache/arrow-rs / test_dictionary_union_hydration

Function test_dictionary_union_hydration

arrow-flight/src/encode.rs:1177–1343  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1175
1176 #[tokio::test]
1177 async fn test_dictionary_union_hydration() {
1178 let struct_fields = vec![Field::new_list(
1179 "dict_list",
1180 Field::new_dictionary("item", DataType::UInt16, DataType::Utf8, true),
1181 true,
1182 )];
1183
1184 let union_fields = [
1185 (
1186 0,
1187 Arc::new(Field::new_list(
1188 "dict_list",
1189 Field::new_dictionary("item", DataType::UInt16, DataType::Utf8, true),
1190 true,
1191 )),
1192 ),
1193 (
1194 1,
1195 Arc::new(Field::new_struct("struct", struct_fields.clone(), true)),
1196 ),
1197 (2, Arc::new(Field::new("string", DataType::Utf8, true))),
1198 ]
1199 .into_iter()
1200 .collect::<UnionFields>();
1201
1202 let struct_fields = vec![Field::new_list(
1203 "dict_list",
1204 Field::new_dictionary("item", DataType::UInt16, DataType::Utf8, true),
1205 true,
1206 )];
1207
1208 let mut builder = builder::ListBuilder::new(StringDictionaryBuilder::<UInt16Type>::new());
1209
1210 builder.append_value(vec![Some("a"), None, Some("b")]);
1211
1212 let arr1 = builder.finish();
1213
1214 let type_id_buffer = [0].into_iter().collect::<ScalarBuffer<i8>>();
1215 let arr1 = UnionArray::try_new(
1216 union_fields.clone(),
1217 type_id_buffer,
1218 None,
1219 vec![
1220 Arc::new(arr1) as Arc<dyn Array>,
1221 new_null_array(union_fields.iter().nth(1).unwrap().1.data_type(), 1),
1222 new_null_array(union_fields.iter().nth(2).unwrap().1.data_type(), 1),
1223 ],
1224 )
1225 .unwrap();
1226
1227 builder.append_value(vec![Some("c"), None, Some("d")]);
1228
1229 let arr2 = Arc::new(builder.finish());
1230 let arr2 = StructArray::new(struct_fields.clone().into(), vec![arr2], None);
1231
1232 let type_id_buffer = [1].into_iter().collect::<ScalarBuffer<i8>>();
1233 let arr2 = UnionArray::try_new(
1234 union_fields.clone(),

Callers

nothing calls this directly

Calls 14

try_newFunction · 0.85
defaultFunction · 0.85
into_iterMethod · 0.45
cloneMethod · 0.45
append_valueMethod · 0.45
finishMethod · 0.45
iterMethod · 0.45
buildMethod · 0.45
nextMethod · 0.45
column_by_nameMethod · 0.45
childMethod · 0.45
as_refMethod · 0.45

Tested by

no test coverage detected