(
&self,
fields: Vec<DictionaryField>,
schema: &DFSchema,
planner_context: &mut PlannerContext,
)
| 757 | } |
| 758 | |
| 759 | fn try_plan_dictionary_literal( |
| 760 | &self, |
| 761 | fields: Vec<DictionaryField>, |
| 762 | schema: &DFSchema, |
| 763 | planner_context: &mut PlannerContext, |
| 764 | ) -> Result<Expr> { |
| 765 | let mut keys = vec![]; |
| 766 | let mut values = vec![]; |
| 767 | for field in fields { |
| 768 | let key = lit(field.key.value); |
| 769 | let value = |
| 770 | self.sql_expr_to_logical_expr(*field.value, schema, planner_context)?; |
| 771 | keys.push(key); |
| 772 | values.push(value); |
| 773 | } |
| 774 | |
| 775 | let mut raw_expr = RawDictionaryExpr { keys, values }; |
| 776 | |
| 777 | for planner in self.context_provider.get_expr_planners() { |
| 778 | match planner.plan_dictionary_literal(raw_expr, schema)? { |
| 779 | PlannerResult::Planned(expr) => { |
| 780 | return Ok(expr); |
| 781 | } |
| 782 | PlannerResult::Original(expr) => raw_expr = expr, |
| 783 | } |
| 784 | } |
| 785 | not_impl_err!("Dictionary not supported by ExprPlanner: {raw_expr:?}") |
| 786 | } |
| 787 | |
| 788 | fn try_plan_map_literal( |
| 789 | &self, |
no test coverage detected