@@ -2860,3 +2860,38 @@ fn parse_mssql_update_with_output_into() {
28602860 "UPDATE employees SET salary = salary * 1.1 OUTPUT INSERTED.id, DELETED.salary, INSERTED.salary INTO @changes WHERE department = 'Engineering'" ,
28612861 ) ;
28622862}
2863+
2864+ #[ test]
2865+ fn parse_mssql_money_constants ( ) {
2866+ ms ( ) . verified_only_select ( "SELECT CEILING($123.45)" ) ;
2867+
2868+ let select = ms ( ) . verified_only_select ( "SELECT $123.45" ) ;
2869+ assert_eq ! (
2870+ & Expr :: Value ( Value :: Placeholder ( "$123.45" . to_string( ) ) . with_empty_span( ) ) ,
2871+ expr_from_projection( only( & select. projection) ) ,
2872+ ) ;
2873+
2874+ let select = ms ( ) . verified_only_select ( "SELECT $0.99" ) ;
2875+ assert_eq ! (
2876+ & Expr :: Value ( Value :: Placeholder ( "$0.99" . to_string( ) ) . with_empty_span( ) ) ,
2877+ expr_from_projection( only( & select. projection) ) ,
2878+ ) ;
2879+
2880+ let select = ms ( ) . verified_only_select ( "SELECT $0.0" ) ;
2881+ assert_eq ! (
2882+ & Expr :: Value ( Value :: Placeholder ( "$0.0" . to_string( ) ) . with_empty_span( ) ) ,
2883+ expr_from_projection( only( & select. projection) ) ,
2884+ ) ;
2885+
2886+ let select = ms ( ) . verified_only_select ( "SELECT $123" ) ;
2887+ assert_eq ! (
2888+ & Expr :: Value ( Value :: Placeholder ( "$123" . to_string( ) ) . with_empty_span( ) ) ,
2889+ expr_from_projection( only( & select. projection) ) ,
2890+ ) ;
2891+
2892+ let select = ms ( ) . verified_only_select ( "SELECT $0" ) ;
2893+ assert_eq ! (
2894+ & Expr :: Value ( Value :: Placeholder ( "$0" . to_string( ) ) . with_empty_span( ) ) ,
2895+ expr_from_projection( only( & select. projection) ) ,
2896+ ) ;
2897+ }
0 commit comments