5151
5252#![ allow( dead_code) ]
5353
54- use std:: any:: Any ;
5554use std:: collections:: HashMap ;
5655use std:: f64:: consts:: { LN_10 , LN_2 } ;
5756use std:: ops:: ControlFlow ;
@@ -67,10 +66,10 @@ use datafusion::logical_expr::{
6766 ScalarUDF , ScalarUDFImpl , Signature , Volatility ,
6867} ;
6968use datafusion:: prelude:: SessionContext ;
69+ use datafusion:: sql:: sqlparser:: ast:: { Expr as SqlExpr , Visit , VisitMut , Visitor , VisitorMut } ;
70+ use datafusion:: sql:: sqlparser:: dialect:: GenericDialect ;
71+ use datafusion:: sql:: sqlparser:: parser:: Parser ;
7072use datafusion:: sql:: unparser:: expr_to_sql;
71- use sqlparser:: ast:: { Expr as SqlExpr , Visit , VisitMut , Visitor , VisitorMut } ;
72- use sqlparser:: dialect:: GenericDialect ;
73- use sqlparser:: parser:: Parser ;
7473
7574// ---------------------------------------------------------------------------
7675// Constant helpers and the 0/1-folding builders
@@ -220,7 +219,10 @@ fn linearize(expr: &Expr, leaf: &Leaf) -> Result<Expr> {
220219 // A numeric cast is (locally) linear: tangent of cast(u) = cast(du).
221220 Expr :: Cast ( c) => {
222221 let du = linearize ( & c. expr , leaf) ?;
223- Ok ( Expr :: Cast ( Cast :: new ( Box :: new ( du) , c. data_type . clone ( ) ) ) )
222+ Ok ( Expr :: Cast ( Cast :: new (
223+ Box :: new ( du) ,
224+ c. field . data_type ( ) . clone ( ) ,
225+ ) ) )
224226 }
225227
226228 // tangent of -u = -(du).
@@ -402,10 +404,6 @@ impl MarkerUdf {
402404}
403405
404406impl ScalarUDFImpl for MarkerUdf {
405- fn as_any ( & self ) -> & dyn Any {
406- self
407- }
408-
409407 fn name ( & self ) -> & str {
410408 & self . name
411409 }
0 commit comments