(
&self,
values: SQLValues,
planner_context: &mut PlannerContext,
)
| 24 | |
| 25 | impl<S: ContextProvider> SqlToRel<'_, S> { |
| 26 | pub(super) fn sql_values_to_plan( |
| 27 | &self, |
| 28 | values: SQLValues, |
| 29 | planner_context: &mut PlannerContext, |
| 30 | ) -> Result<LogicalPlan> { |
| 31 | let SQLValues { |
| 32 | explicit_row: _, |
| 33 | rows, |
| 34 | value_keyword, |
| 35 | } = values; |
| 36 | if value_keyword { |
| 37 | return not_impl_err!( |
| 38 | "`VALUE` keyword not supported. Did you mean `VALUES`?" |
| 39 | )?; |
| 40 | } |
| 41 | |
| 42 | let empty_schema = Arc::new(DFSchema::empty()); |
| 43 | let values = rows |
| 44 | .into_iter() |
| 45 | .map(|row| { |
| 46 | row.content |
| 47 | .into_iter() |
| 48 | .map(|v| self.sql_to_expr(v, &empty_schema, planner_context)) |
| 49 | .collect::<Result<Vec<_>>>() |
| 50 | }) |
| 51 | .collect::<Result<Vec<_>>>()?; |
| 52 | |
| 53 | let schema = planner_context.table_schema().unwrap_or(empty_schema); |
| 54 | if schema.fields().is_empty() { |
| 55 | LogicalPlanBuilder::values(values)?.build() |
| 56 | } else { |
| 57 | LogicalPlanBuilder::values_with_schema(values, &schema)?.build() |
| 58 | } |
| 59 | } |
| 60 | } |
no test coverage detected