@@ -22,11 +22,11 @@ use datafusion_common::{
2222 internal_datafusion_err, internal_err, not_impl_err, plan_datafusion_err, plan_err,
2323 DFSchema , Dependency , Result ,
2424} ;
25- use datafusion_expr:: expr:: WildcardOptions ;
2625use datafusion_expr:: expr:: { ScalarFunction , Unnest } ;
2726use datafusion_expr:: planner:: PlannerResult ;
2827use datafusion_expr:: {
29- expr, Expr , ExprFunctionExt , ExprSchemable , WindowFrame , WindowFunctionDefinition ,
28+ expr, qualified_wildcard, wildcard, Expr , ExprFunctionExt , ExprSchemable ,
29+ WindowFrame , WindowFunctionDefinition ,
3030} ;
3131use sqlparser:: ast:: {
3232 DuplicateTreatment , Expr as SQLExpr , Function as SQLFunction , FunctionArg ,
@@ -169,6 +169,11 @@ impl FunctionArgs {
169169 "Calling {name}: SEPARATOR not supported in function arguments: {sep}"
170170 )
171171 }
172+ FunctionArgumentClause :: JsonNullClause ( jn) => {
173+ return not_impl_err ! (
174+ "Calling {name}: JSON NULL clause not supported in function arguments: {jn}"
175+ )
176+ }
172177 }
173178 }
174179
@@ -413,28 +418,19 @@ impl<S: ContextProvider> SqlToRel<'_, S> {
413418 name : _,
414419 arg : FunctionArgExpr :: Wildcard ,
415420 operator : _,
416- } => Ok ( Expr :: Wildcard {
417- qualifier : None ,
418- options : WildcardOptions :: default ( ) ,
419- } ) ,
421+ } => Ok ( wildcard ( ) ) ,
420422 FunctionArg :: Unnamed ( FunctionArgExpr :: Expr ( arg) ) => {
421423 self . sql_expr_to_logical_expr ( arg, schema, planner_context)
422424 }
423- FunctionArg :: Unnamed ( FunctionArgExpr :: Wildcard ) => Ok ( Expr :: Wildcard {
424- qualifier : None ,
425- options : WildcardOptions :: default ( ) ,
426- } ) ,
425+ FunctionArg :: Unnamed ( FunctionArgExpr :: Wildcard ) => Ok ( wildcard ( ) ) ,
427426 FunctionArg :: Unnamed ( FunctionArgExpr :: QualifiedWildcard ( object_name) ) => {
428427 let qualifier = self . object_name_to_table_reference ( object_name) ?;
429428 // Sanity check on qualifier with schema
430429 let qualified_indices = schema. fields_indices_with_qualified ( & qualifier) ;
431430 if qualified_indices. is_empty ( ) {
432431 return plan_err ! ( "Invalid qualifier {qualifier}" ) ;
433432 }
434- Ok ( Expr :: Wildcard {
435- qualifier : Some ( qualifier) ,
436- options : WildcardOptions :: default ( ) ,
437- } )
433+ Ok ( qualified_wildcard ( qualifier) )
438434 }
439435 _ => not_impl_err ! ( "Unsupported qualified wildcard argument: {sql:?}" ) ,
440436 }
0 commit comments