Skip to content

Commit 4830624

Browse files
committed
bug: fix escape char
1 parent 5506296 commit 4830624

11 files changed

Lines changed: 43 additions & 38 deletions

pegjs/bigquery.pegjs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1249,10 +1249,10 @@ single_char
12491249
/ escape_char
12501250

12511251
escape_char
1252-
= "\\'" { return "'"; }
1253-
/ '\\"' { return '"'; }
1254-
/ "\\\\" { return "\\"; }
1255-
/ "\\/" { return "/"; }
1252+
= "\\'" { return "\\'"; }
1253+
/ '\\"' { return '\\"'; }
1254+
/ "\\\\" { return "\\\\"; }
1255+
/ "\\/" { return "\\/"; }
12561256
/ "\\b" { return "\b"; }
12571257
/ "\\f" { return "\f"; }
12581258
/ "\\n" { return "\n"; }

pegjs/db2.pegjs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1996,10 +1996,10 @@ single_char
19961996
/ escape_char
19971997

19981998
escape_char
1999-
= "\\'" { return "'"; }
2000-
/ '\\"' { return '"'; }
2001-
/ "\\\\" { return "\\"; }
2002-
/ "\\/" { return "/"; }
1999+
= "\\'" { return "\\'"; }
2000+
/ '\\"' { return '\\"'; }
2001+
/ "\\\\" { return "\\\\"; }
2002+
/ "\\/" { return "\\/"; }
20032003
/ "\\b" { return "\b"; }
20042004
/ "\\f" { return "\f"; }
20052005
/ "\\n" { return "\n"; }

pegjs/flinksql.pegjs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2636,10 +2636,10 @@ single_char
26362636
/ escape_char
26372637

26382638
escape_char
2639-
= "\\'" { return "'"; }
2640-
/ '\\"' { return '"'; }
2641-
/ "\\\\" { return "\\"; }
2642-
/ "\\/" { return "/"; }
2639+
= "\\'" { return "\\'"; }
2640+
/ '\\"' { return '\\"'; }
2641+
/ "\\\\" { return "\\\\"; }
2642+
/ "\\/" { return "\\/"; }
26432643
/ "\\b" { return "\b"; }
26442644
/ "\\f" { return "\f"; }
26452645
/ "\\n" { return "\n"; }

pegjs/hive.pegjs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1889,10 +1889,10 @@ single_char
18891889
/ escape_char
18901890

18911891
escape_char
1892-
= "\\'" { return "'"; }
1893-
/ '\\"' { return '"'; }
1894-
/ "\\\\" { return "\\"; }
1895-
/ "\\/" { return "/"; }
1892+
= "\\'" { return "\\'"; }
1893+
/ '\\"' { return '\\"'; }
1894+
/ "\\\\" { return "\\\\"; }
1895+
/ "\\/" { return "\\/"; }
18961896
/ "\\b" { return "\b"; }
18971897
/ "\\f" { return "\f"; }
18981898
/ "\\n" { return "\n"; }

pegjs/mariadb.pegjs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2154,10 +2154,10 @@ single_char
21542154
/ escape_char
21552155

21562156
escape_char
2157-
= "\\'" { return "'"; }
2158-
/ '\\"' { return '"'; }
2159-
/ "\\\\" { return "\\"; }
2160-
/ "\\/" { return "/"; }
2157+
= "\\'" { return "\\'"; }
2158+
/ '\\"' { return '\\"'; }
2159+
/ "\\\\" { return "\\\\"; }
2160+
/ "\\/" { return "\\/"; }
21612161
/ "\\b" { return "\b"; }
21622162
/ "\\f" { return "\f"; }
21632163
/ "\\n" { return "\n"; }

pegjs/mysql.pegjs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2485,10 +2485,10 @@ single_char
24852485
/ escape_char
24862486

24872487
escape_char
2488-
= "\\'" { return "'"; }
2489-
/ '\\"' { return '"'; }
2490-
/ "\\\\" { return "\\"; }
2491-
/ "\\/" { return "/"; }
2488+
= "\\'" { return "\\'"; }
2489+
/ '\\"' { return '\\"'; }
2490+
/ "\\\\" { return "\\\\"; }
2491+
/ "\\/" { return "\\/"; }
24922492
/ "\\b" { return "\b"; }
24932493
/ "\\f" { return "\f"; }
24942494
/ "\\n" { return "\n"; }

pegjs/postgresql.pegjs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3162,9 +3162,9 @@ single_char
31623162

31633163
escape_char
31643164
= "\\'" { return "\\'"; }
3165-
/ '\\"' { return '"'; }
3166-
/ "\\\\" { return "\\"; }
3167-
/ "\\/" { return "/"; }
3165+
/ '\\"' { return '\\"'; }
3166+
/ "\\\\" { return "\\\\"; }
3167+
/ "\\/" { return "\\/"; }
31683168
/ "\\b" { return "\b"; }
31693169
/ "\\f" { return "\f"; }
31703170
/ "\\n" { return "\n"; }

pegjs/sqlite.pegjs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2062,10 +2062,10 @@ single_char
20622062
/ escape_char
20632063

20642064
escape_char
2065-
= "\\'" { return "'"; }
2066-
/ '\\"' { return '"'; }
2067-
/ "\\\\" { return "\\"; }
2068-
/ "\\/" { return "/"; }
2065+
= "\\'" { return "\\'"; }
2066+
/ '\\"' { return '\\"'; }
2067+
/ "\\\\" { return "\\\\"; }
2068+
/ "\\/" { return "\\/"; }
20692069
/ "\\b" { return "\b"; }
20702070
/ "\\f" { return "\f"; }
20712071
/ "\\n" { return "\n"; }

pegjs/transactsql.pegjs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2191,10 +2191,10 @@ single_char
21912191
/ escape_char
21922192

21932193
escape_char
2194-
= "\\'" { return "'"; }
2195-
/ '\\"' { return '"'; }
2196-
/ "\\\\" { return "\\"; }
2197-
/ "\\/" { return "/"; }
2194+
= "\\'" { return "\\'"; }
2195+
/ '\\"' { return '\\"'; }
2196+
/ "\\\\" { return "\\\\"; }
2197+
/ "\\/" { return "\\/"; }
21982198
/ "\\b" { return "\b"; }
21992199
/ "\\f" { return "\f"; }
22002200
/ "\\n" { return "\n"; }

test/ast.spec.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -724,10 +724,15 @@ describe('AST', () => {
724724
});
725725

726726
it('should support string with escape values', () => {
727-
sql = `INSERT INTO mytablehere (ID, post_author) VALUES (2564,'I haven\\'t <a href=\\"http://www.someurl.com/somepartofurl\\0\\">figured</a>');`;
728-
expect(getParsedSql(sql)).to.equal('INSERT INTO `mytablehere` (`ID`, `post_author`) VALUES (2564,\'I haven\'t <a href="http://www.someurl.com/somepartofurl\\0">figured</a>\')');
727+
sql = `INSERT INTO mytablehere (ID, post_author) VALUES (2564,'I haven\\'t <a href="http://www.someurl.com/somepartofurl\\0">figured</a>');`;
728+
expect(getParsedSql(sql)).to.equal('INSERT INTO `mytablehere` (`ID`, `post_author`) VALUES (2564,\'I haven\\\'t <a href="http://www.someurl.com/somepartofurl\\0">figured</a>\')');
729729
});
730730

731+
it('should sqlify back with escape', () => {
732+
expect(getParsedSql(`select * from test where a='te\\'st'`))
733+
.to.equal("SELECT * FROM `test` WHERE `a` = 'te\\'st'")
734+
})
735+
731736
it('should support null values', () => {
732737
sql = 'SELECT null';
733738
expect(getParsedSql(sql)).to.equal('SELECT NULL');

0 commit comments

Comments
 (0)