File tree Expand file tree Collapse file tree 1 file changed +15
-1
lines changed
Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -971,7 +971,8 @@ impl<'a> Tokenizer<'a> {
971971 match chars. peek ( ) {
972972 Some ( '\'' ) => {
973973 // N'...' - a <national character string literal>
974- let s = self . tokenize_single_quoted_string ( chars, '\'' , true ) ?;
974+ let backslash_escape = self . dialect . supports_string_literal_backslash_escape ( ) ;
975+ let s = self . tokenize_single_quoted_string ( chars, '\'' , backslash_escape) ?;
975976 Ok ( Some ( Token :: NationalStringLiteral ( s) ) )
976977 }
977978 _ => {
@@ -3543,4 +3544,17 @@ mod tests {
35433544 ] ;
35443545 compare ( expected, tokens) ;
35453546 }
3547+
3548+ #[ test]
3549+ fn test_national_strings ( ) {
3550+ let dialect = PostgreSqlDialect { } ;
3551+ let sql = "select n'''''\\ '" ;
3552+ let tokens = Tokenizer :: new ( & dialect, sql) . tokenize ( ) . unwrap ( ) ;
3553+ let expected = vec ! [
3554+ Token :: make_keyword( "select" ) ,
3555+ Token :: Whitespace ( Whitespace :: Space ) ,
3556+ Token :: NationalStringLiteral ( "''\\ " . to_string( ) ) ,
3557+ ] ;
3558+ compare ( expected, tokens) ;
3559+ }
35463560}
You can’t perform that action at this time.
0 commit comments