@@ -2159,6 +2159,7 @@ mod tests {
21592159 BigQueryDialect , ClickHouseDialect , HiveDialect , MsSqlDialect , MySqlDialect , SQLiteDialect ,
21602160 } ;
21612161 use core:: fmt:: Debug ;
2162+ use crate :: test_utils:: all_dialects_where;
21622163
21632164 #[ test]
21642165 fn tokenizer_error_impl ( ) {
@@ -3548,15 +3549,30 @@ mod tests {
35483549 }
35493550
35503551 #[ test]
3551- fn test_national_strings ( ) {
3552- let dialect = PostgreSqlDialect { } ;
3553- let sql = "select n'''''\\ '" ;
3554- let tokens = Tokenizer :: new ( & dialect, sql) . tokenize ( ) . unwrap ( ) ;
3555- let expected = vec ! [
3556- Token :: make_keyword( "select" ) ,
3557- Token :: Whitespace ( Whitespace :: Space ) ,
3558- Token :: NationalStringLiteral ( "''\\ " . to_string( ) ) ,
3559- ] ;
3560- compare ( expected, tokens) ;
3552+ fn test_national_strings_backslash_escape_not_supported ( ) {
3553+ all_dialects_where (
3554+ |dialect| !dialect. supports_string_literal_backslash_escape ( ) ,
3555+ ) . tokenizes_to (
3556+ "select n'''''\\ '" ,
3557+ vec ! [
3558+ Token :: make_keyword( "select" ) ,
3559+ Token :: Whitespace ( Whitespace :: Space ) ,
3560+ Token :: NationalStringLiteral ( "''\\ " . to_string( ) ) ,
3561+ ] ,
3562+ ) ;
3563+ }
3564+
3565+ #[ test]
3566+ fn test_national_strings_backslash_escape_supported ( ) {
3567+ all_dialects_where (
3568+ |dialect| dialect. supports_string_literal_backslash_escape ( ) ,
3569+ ) . tokenizes_to (
3570+ "select n'''''\\ ''" ,
3571+ vec ! [
3572+ Token :: make_keyword( "select" ) ,
3573+ Token :: Whitespace ( Whitespace :: Space ) ,
3574+ Token :: NationalStringLiteral ( "'''" . to_string( ) ) ,
3575+ ] ,
3576+ ) ;
35613577 }
35623578}
0 commit comments