File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -892,8 +892,12 @@ impl<S: ContextProvider> SqlToRel<'_, S> {
892892 . map ( |expr| self . sql_to_expr ( expr, & empty_schema, planner_context) )
893893 . collect :: < Result < Vec < Expr > > > ( ) ?;
894894
895+ let name = name. ok_or_else ( || {
896+ plan_datafusion_err ! ( "EXECUTE statement requires a name" )
897+ } ) ?;
898+
895899 Ok ( LogicalPlan :: Statement ( PlanStatement :: Execute ( Execute {
896- name : object_name_to_string ( & name. unwrap ( ) ) ,
900+ name : object_name_to_string ( & name) ,
897901 parameters,
898902 } ) ) )
899903 }
Original file line number Diff line number Diff line change @@ -53,6 +53,22 @@ PREPARE my_plan(INT, INT) AS SELECT 1 + $1;
5353statement error SQL error: ParserError
5454PREPARE my_plan(INT) AS SELECT id, age FROM person WHERE age is $1;
5555
56+ # EXEC/EXECUTE with parentheses but no statement name must error instead of panic
57+ statement error EXECUTE statement requires a name
58+ EXEC();
59+
60+ statement error EXECUTE statement requires a name
61+ EXEC('');
62+
63+ statement error EXECUTE statement requires a name
64+ EXEC('any-string');
65+
66+ statement error EXECUTE statement requires a name
67+ EXECUTE();
68+
69+ statement error EXECUTE statement requires a name
70+ EXEC ('a');
71+
5672# #######################
5773# Test prepare and execute statements
5874
You can’t perform that action at this time.
0 commit comments