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

Method unparse

datafusion-examples/examples/query_planning/plan_to_sql.rs:264–284  ·  view source on GitHub ↗
(
        &self,
        node: &dyn UserDefinedLogicalNode,
        unparser: &Unparser,
        _query: &mut Option<&mut QueryBuilder>,
        _select: &mut Option<&mut SelectBuilder>,
        relat

Source from the content-addressed store, hash-verified

262struct PlanToSubquery {}
263impl UserDefinedLogicalNodeUnparser for PlanToSubquery {
264 fn unparse(
265 &self,
266 node: &dyn UserDefinedLogicalNode,
267 unparser: &Unparser,
268 _query: &mut Option<&mut QueryBuilder>,
269 _select: &mut Option<&mut SelectBuilder>,
270 relation: &mut Option<&mut RelationBuilder>,
271 ) -> Result<UnparseWithinStatementResult> {
272 if let Some(plan) = node.as_any().downcast_ref::<MyLogicalPlan>() {
273 let Statement::Query(input) = unparser.plan_to_sql(&plan.input)? else {
274 return Ok(UnparseWithinStatementResult::Unmodified);
275 };
276 let mut derived_builder = DerivedRelationBuilder::default();
277 derived_builder.subquery(input);
278 derived_builder.lateral(false);
279 if let Some(rel) = relation {
280 rel.derived(derived_builder);
281 }
282 }
283 Ok(UnparseWithinStatementResult::Modified)
284 }
285}
286
287/// This example demonstrates how to unparse a custom logical plan as a subquery.

Callers

nothing calls this directly

Calls 5

plan_to_sqlMethod · 0.80
subqueryMethod · 0.80
lateralMethod · 0.80
derivedMethod · 0.80
as_anyMethod · 0.45

Tested by

no test coverage detected