findepi commented on code in PR #14356: URL: https://github.com/apache/datafusion/pull/14356#discussion_r1937076628
########## datafusion/expr/src/logical_plan/plan.rs: ########## @@ -2645,6 +2643,106 @@ pub struct Union { pub schema: DFSchemaRef, } +impl Union { + /// Constructs new Union instance deriving schema from inputs. + fn try_new(inputs: Vec<Arc<LogicalPlan>>) -> Result<Self> { + let schema = Self::derive_schema_from_inputs(&inputs, false)?; + Ok(Union { inputs, schema }) + } + + /// Constructs new Union instance deriving schema from inputs. + /// Inputs do not have to have matching types and produced schema will + /// take type from the first input. + pub fn try_new_with_loose_types(inputs: Vec<Arc<LogicalPlan>>) -> Result<Self> { + let schema = Self::derive_schema_from_inputs(&inputs, true)?; + Ok(Union { inputs, schema }) + } + + /// Constructs new Union instance deriving schema from inputs. + /// + /// `loose_types` if true, inputs do not have to have matching types and produced schema will + /// take type from the first input. TODO this is not necessarily reasonable behavior. + fn derive_schema_from_inputs( + inputs: &[Arc<LogicalPlan>], + loose_types: bool, + ) -> Result<DFSchemaRef> { + if inputs.len() < 2 { Review Comment: > maybe we can file a ticket describing what is desired and leave a comment in the code referring to that ticket added link to https://github.com/apache/datafusion/issues/14380 in the code. while https://github.com/apache/datafusion/issues/14357 is also very relevant, i don't see a place where a link would be suitable, so not adding it for now -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For additional commands, e-mail: github-h...@datafusion.apache.org