@@ -525,11 +525,6 @@ impl PhysicalExpr for DynamicFilterPhysicalExpr {
525525 self . render ( f, |expr, f| expr. fmt_sql ( f) )
526526 }
527527
528- #[ allow( useless_deprecated, unused_attributes) ]
529- #[ deprecated(
530- since = "54.0.0" ,
531- note = "downcast to `DynamicFilterPhysicalExpr` and call `current()` instead"
532- ) ]
533528 fn snapshot ( & self ) -> Result < Option < Arc < dyn PhysicalExpr > > > {
534529 // Return the current expression as a snapshot.
535530 Ok ( Some ( self . current ( ) ?) )
@@ -708,6 +703,24 @@ mod test {
708703 assert_eq ! ( & dynamic_filter. current( ) . unwrap( ) , & new_expr) ;
709704 }
710705
706+ #[ allow( deprecated) ]
707+ #[ test]
708+ fn test_snapshot ( ) {
709+ let expr = lit ( 42 ) as Arc < dyn PhysicalExpr > ;
710+ let dynamic_filter = DynamicFilterPhysicalExpr :: new ( vec ! [ ] , Arc :: clone ( & expr) ) ;
711+
712+ // Take a snapshot of the current expression
713+ let snapshot = dynamic_filter. snapshot ( ) . unwrap ( ) ;
714+ assert_eq ! ( snapshot, Some ( expr) ) ;
715+
716+ // Update the current expression
717+ let new_expr = lit ( 100 ) as Arc < dyn PhysicalExpr > ;
718+ dynamic_filter. update ( Arc :: clone ( & new_expr) ) . unwrap ( ) ;
719+ // Take another snapshot
720+ let snapshot = dynamic_filter. snapshot ( ) . unwrap ( ) ;
721+ assert_eq ! ( snapshot, Some ( new_expr) ) ;
722+ }
723+
711724 #[ test]
712725 fn test_dynamic_filter_physical_expr_misbehaves_data_type_nullable ( ) {
713726 let dynamic_filter =
0 commit comments