We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 174068e commit 2023f57Copy full SHA for 2023f57
1 file changed
datafusion/functions/src/core/getfield.rs
@@ -408,14 +408,16 @@ impl ScalarUDFImpl for GetFieldFunc {
408
plan_datafusion_err!("Field {field_name} not found in struct")
409
})?;
410
411
- let nullable =
412
- current_field.is_nullable() || child_field.is_nullable();
413
let dict_type = DataType::Dictionary(
414
key_type.clone(),
415
Box::new(child_field.data_type().clone()),
416
);
417
- current_field =
418
- Arc::new(Field::new(child_field.name(), dict_type, nullable));
+ let mut new_field =
+ child_field.as_ref().clone().with_data_type(dict_type);
+ if current_field.is_nullable() {
+ new_field = new_field.with_nullable(true);
419
+ }
420
+ current_field = Arc::new(new_field);
421
}
422
DataType::Struct(fields) => {
423
let field_name = sv
0 commit comments