MCPcopy Create free account
hub / github.com/apache/datafusion / try_plan_dictionary_literal

Method try_plan_dictionary_literal

datafusion/sql/src/expr/mod.rs:759–786  ·  view source on GitHub ↗
(
        &self,
        fields: Vec<DictionaryField>,
        schema: &DFSchema,
        planner_context: &mut PlannerContext,
    )

Source from the content-addressed store, hash-verified

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,

Callers 1

Calls 5

litFunction · 0.50
pushMethod · 0.45
get_expr_plannersMethod · 0.45

Tested by

no test coverage detected