File tree Expand file tree Collapse file tree 1 file changed +24
-1
lines changed
datafusion/expr/src/logical_plan Expand file tree Collapse file tree 1 file changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -1497,7 +1497,9 @@ impl LogicalPlan {
14971497 ( _, Some ( dt) ) => {
14981498 param_types. insert ( id. clone ( ) , Some ( dt. clone ( ) ) ) ;
14991499 }
1500- _ => { }
1500+ _ => {
1501+ param_types. insert ( id. clone ( ) , None ) ;
1502+ }
15011503 }
15021504 }
15031505 Ok ( TreeNodeRecursion :: Continue )
@@ -4347,4 +4349,25 @@ digraph {
43474349 plan. rewrite_with_subqueries ( & mut rewriter) . unwrap ( ) ;
43484350 assert ! ( !rewriter. filter_found) ;
43494351 }
4352+
4353+ #[ test]
4354+ fn test_with_unresolved_placeholders ( ) {
4355+ let field_name = "id" ;
4356+ let placeholder_value = "$1" ;
4357+ let schema = Schema :: new ( vec ! [ Field :: new( field_name, DataType :: Int32 , false ) ] ) ;
4358+
4359+ let plan = table_scan ( TableReference :: none ( ) , & schema, None )
4360+ . unwrap ( )
4361+ . filter ( col ( field_name) . eq ( placeholder ( placeholder_value) ) )
4362+ . unwrap ( )
4363+ . build ( )
4364+ . unwrap ( ) ;
4365+
4366+ // Check that the placeholder parameters have not received a DataType.
4367+ let params = plan. get_parameter_types ( ) . unwrap ( ) ;
4368+ assert_eq ! ( params. len( ) , 1 ) ;
4369+
4370+ let parameter_type = params. clone ( ) . get ( placeholder_value) . unwrap ( ) . clone ( ) ;
4371+ assert_eq ! ( parameter_type, None ) ;
4372+ }
43504373}
You can’t perform that action at this time.
0 commit comments