diff --git a/datafusion/physical-plan/src/union.rs b/datafusion/physical-plan/src/union.rs index 2df85655e0b9..1cf22060b62a 100644 --- a/datafusion/physical-plan/src/union.rs +++ b/datafusion/physical-plan/src/union.rs @@ -475,8 +475,12 @@ fn union_schema(inputs: &[Arc]) -> SchemaRef { .filter_map(|input| { if input.schema().fields().len() > i { let field = input.schema().field(i).clone(); - let right_hand_metdata = - inputs[1].schema().field(i).metadata().clone(); + let right_hand_metdata = inputs + .get(1) + .map(|right_input| { + right_input.schema().field(i).metadata().clone() + }) + .unwrap_or_default(); let mut metadata = field.metadata().clone(); metadata.extend(right_hand_metdata); Some(field.with_metadata(metadata))