File tree Expand file tree Collapse file tree
src/query/task_support/src/table_functions Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -224,14 +224,24 @@ impl BillingUsageDailyArgsParsed {
224224 ) ) ;
225225 }
226226
227- let month = args
228- . get ( "month" )
229- . and_then ( |v| v. as_string ( ) . cloned ( ) )
230- . ok_or_else ( || {
231- ErrorCode :: BadArguments (
232- "billing_usage_daily requires named string argument: month" . to_string ( ) ,
233- )
234- } ) ?;
227+ let mut month = None ;
228+ for ( k, v) in & args {
229+ match k. to_lowercase ( ) . as_str ( ) {
230+ "month" => month = v. as_string ( ) . cloned ( ) ,
231+ _ => {
232+ return Err ( ErrorCode :: BadArguments ( format ! (
233+ "unknown param {} for billing_usage_daily" ,
234+ k
235+ ) ) ) ;
236+ }
237+ }
238+ }
239+
240+ let month = month. ok_or_else ( || {
241+ ErrorCode :: BadArguments (
242+ "billing_usage_daily requires named string argument: month" . to_string ( ) ,
243+ )
244+ } ) ?;
235245
236246 validate_month ( & month) ?;
237247 Ok ( Self { month } )
@@ -360,6 +370,17 @@ mod tests {
360370 assert_eq ! ( parsed. month, "2026-03" ) ;
361371 }
362372
373+ #[ test]
374+ fn test_parse_args_accepts_uppercase_named_month ( ) {
375+ let args = TableArgs :: new_named ( HashMap :: from ( [ (
376+ "MONTH" . to_string ( ) ,
377+ Scalar :: String ( "2026-03" . to_string ( ) ) ,
378+ ) ] ) ) ;
379+
380+ let parsed = BillingUsageDailyArgsParsed :: parse ( & args) . unwrap ( ) ;
381+ assert_eq ! ( parsed. month, "2026-03" ) ;
382+ }
383+
363384 #[ test]
364385 fn test_parse_args_rejects_non_named_or_invalid_month ( ) {
365386 let positioned = TableArgs :: new_positioned ( vec ! [ Scalar :: String ( "2026-03" . to_string( ) ) ] ) ;
You can’t perform that action at this time.
0 commit comments