File tree 1 file changed +27
-0
lines changed
1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -396,6 +396,33 @@ fn parse_parens() {
396
396
, ast) ;
397
397
}
398
398
399
+ #[ test]
400
+ fn parse_select_with_semi_colon ( ) {
401
+ let sql = String :: from ( "SELECT id, fname, lname FROM customer WHERE id = 1;" ) ;
402
+ let ast = parse_sql ( & sql) ;
403
+ match ast {
404
+ ASTNode :: SQLSelect { projection, .. } => {
405
+ assert_eq ! ( 3 , projection. len( ) ) ;
406
+ }
407
+ _ => assert ! ( false ) ,
408
+ }
409
+ }
410
+
411
+ #[ test]
412
+ fn parse_delete_with_semi_colon ( ) {
413
+ let sql: & str = "DELETE FROM 'table';" ;
414
+
415
+ match parse_sql ( & sql) {
416
+ ASTNode :: SQLDelete { relation, .. } => {
417
+ assert_eq ! (
418
+ Some ( Box :: new( ASTNode :: SQLValue ( Value :: SingleQuotedString ( "table" . to_string( ) ) ) ) ) ,
419
+ relation
420
+ ) ;
421
+ }
422
+ _ => assert ! ( false ) ,
423
+ }
424
+ }
425
+
399
426
fn parse_sql ( sql : & str ) -> ASTNode {
400
427
let dialect = GenericSqlDialect { } ;
401
428
let mut tokenizer = Tokenizer :: new ( & dialect, & sql, ) ;
You can’t perform that action at this time.
0 commit comments