(
&self,
op: SetOperator,
left_span: Option<Span>,
right_span: Option<Span>,
left_plan: &LogicalPlan,
right_plan: &LogicalPlan,
set_expr_span: O
| 102 | } |
| 103 | |
| 104 | fn validate_set_expr_num_of_columns( |
| 105 | &self, |
| 106 | op: SetOperator, |
| 107 | left_span: Option<Span>, |
| 108 | right_span: Option<Span>, |
| 109 | left_plan: &LogicalPlan, |
| 110 | right_plan: &LogicalPlan, |
| 111 | set_expr_span: Option<Span>, |
| 112 | ) -> Result<()> { |
| 113 | if left_plan.schema().fields().len() == right_plan.schema().fields().len() { |
| 114 | return Ok(()); |
| 115 | } |
| 116 | let diagnostic = Diagnostic::new_error( |
| 117 | format!("{op} queries have different number of columns"), |
| 118 | set_expr_span, |
| 119 | ) |
| 120 | .with_note( |
| 121 | format!("this side has {} fields", left_plan.schema().fields().len()), |
| 122 | left_span, |
| 123 | ) |
| 124 | .with_note( |
| 125 | format!( |
| 126 | "this side has {} fields", |
| 127 | right_plan.schema().fields().len() |
| 128 | ), |
| 129 | right_span, |
| 130 | ); |
| 131 | plan_err!("{} queries have different number of columns", op; diagnostic =diagnostic) |
| 132 | } |
| 133 | |
| 134 | pub(super) fn set_operation_to_plan( |
| 135 | &self, |
no test coverage detected