Skip to content

Commit 472f3a8

Browse files
committed
merge2
1 parent 8235c49 commit 472f3a8

File tree

2 files changed

+71
-76
lines changed

2 files changed

+71
-76
lines changed

src/alasqlparser.js

Lines changed: 1 addition & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/test489.js

Lines changed: 70 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -45,68 +45,68 @@ describe('Test 489 - ASCII with backslash character', function () {
4545
// Testing single quotes, double quotes, and backslashes
4646

4747
// Basic single quote in double quotes
48-
assert.equal(alasql("VALUE OF SELECT \"'\""), "'");
49-
48+
assert.equal(alasql('VALUE OF SELECT "\'"'), "'");
49+
5050
// SQL quote doubling - '' becomes '
5151
assert.equal(alasql("VALUE OF SELECT ''''"), "'");
52-
52+
5353
// Double quote inside single quotes
54-
assert.equal(alasql("VALUE OF SELECT '\"\"'"), '""');
55-
54+
assert.equal(alasql('VALUE OF SELECT \'""\''), '""');
55+
5656
// Backslash escaping - \\ becomes \
57-
assert.equal(alasql("VALUE OF SELECT '\\\\'"), "\\");
58-
57+
assert.equal(alasql("VALUE OF SELECT '\\\\'"), '\\');
58+
5959
// Two backslashes - \\\\ becomes \\
60-
assert.equal(alasql("VALUE OF SELECT '\\\\\\\\'"), "\\\\");
61-
60+
assert.equal(alasql("VALUE OF SELECT '\\\\\\\\'"), '\\\\');
61+
6262
// Three backslashes - \\\\\\ becomes \\\
63-
assert.equal(alasql("VALUE OF SELECT '\\\\\\\\\\\\'"), "\\\\\\");
64-
63+
assert.equal(alasql("VALUE OF SELECT '\\\\\\\\\\\\'"), '\\\\\\');
64+
6565
// Four backslashes - \\\\\\\\ becomes \\\\
66-
assert.equal(alasql("VALUE OF SELECT '\\\\\\\\\\\\\\\\'"), "\\\\\\\\");
67-
66+
assert.equal(alasql("VALUE OF SELECT '\\\\\\\\\\\\\\\\'"), '\\\\\\\\');
67+
6868
// Five backslashes - \\\\\\\\\\ becomes \\\\\
69-
assert.equal(alasql("VALUE OF SELECT '\\\\\\\\\\\\\\\\\\\\'"), "\\\\\\\\\\");
70-
69+
assert.equal(alasql("VALUE OF SELECT '\\\\\\\\\\\\\\\\\\\\'"), '\\\\\\\\\\');
70+
7171
// Backslash followed by doubled quote - \\'' becomes \'
7272
assert.equal(alasql("VALUE OF SELECT '\\\\'''"), "\\'");
73-
73+
7474
// Two backslashes followed by doubled quote - \\\\'' becomes \\'
7575
assert.equal(alasql("VALUE OF SELECT '\\\\\\\\'''"), "\\\\'");
76-
76+
7777
// Three backslashes followed by doubled quote - \\\\\\'' becomes \\\'
7878
assert.equal(alasql("VALUE OF SELECT '\\\\\\\\\\\\'''"), "\\\\\\'");
79-
79+
8080
// Four backslashes followed by doubled quote - \\\\\\\\'' becomes \\\\'
8181
assert.equal(alasql("VALUE OF SELECT '\\\\\\\\\\\\\\\\'''"), "\\\\\\\\'");
82-
82+
8383
// Five backslashes followed by doubled quote - \\\\\\\\\\'' becomes \\\\\'
8484
assert.equal(alasql("VALUE OF SELECT '\\\\\\\\\\\\\\\\\\\\'''"), "\\\\\\\\\\'");
85-
85+
8686
// Doubled quote with text - ''a'' becomes 'a'
8787
assert.equal(alasql("VALUE OF SELECT '''a'''"), "'a'");
88-
88+
8989
// Text with doubled quote in middle - a''b becomes a'b
9090
assert.equal(alasql("VALUE OF SELECT 'a''b'"), "a'b");
91-
91+
9292
// Backslash before doubled quote in text - a\\'' becomes a\'
9393
assert.equal(alasql("VALUE OF SELECT 'a\\\\'''"), "a\\'");
94-
94+
9595
// Multiple doubled quotes - '''' becomes '
9696
assert.equal(alasql("VALUE OF SELECT ''''"), "'");
97-
97+
9898
// Two sets of doubled quotes - '''''' becomes ''
9999
assert.equal(alasql("VALUE OF SELECT ''''''"), "''");
100-
100+
101101
// Three sets of doubled quotes - '''''''' becomes '''
102102
assert.equal(alasql("VALUE OF SELECT ''''''''"), "'''");
103-
103+
104104
// Double quotes with backslash inside
105-
assert.equal(alasql("VALUE OF SELECT \"\\\\\""), "\\");
106-
105+
assert.equal(alasql('VALUE OF SELECT "\\\\"'), '\\');
106+
107107
// Complex: backslash, quote, backslash, quote in one string - \\''\\'
108108
assert.equal(alasql("VALUE OF SELECT '\\\\''\\\\'''"), "\\'\\'");
109-
109+
110110
// Very complex: multiple backslashes and quotes
111111
var result = alasql("VALUE OF SELECT '\\\\\\\\''\\\\'''");
112112
assert.equal(result, "\\\\'\\'");
@@ -117,79 +117,79 @@ describe('Test 489 - ASCII with backslash character', function () {
117117
// AlaSQL allows both single and double quotes for strings, but only single quote
118118
// doubling works as an escape sequence. Double quotes inside double-quoted strings
119119
// are treated as literal characters, not escape sequences.
120-
120+
121121
// Double-quoted string with literal double quotes (no escaping)
122122
assert.equal(alasql('VALUE OF SELECT """"'), '""');
123-
123+
124124
// Double-quoted string (alternative syntax, no escaping needed)
125-
assert.equal(alasql("VALUE OF SELECT \"\"\"\""), '""');
126-
125+
assert.equal(alasql('VALUE OF SELECT """"'), '""');
126+
127127
// Double quote inside single quotes (no escaping, just literal characters)
128-
assert.equal(alasql("VALUE OF SELECT '\"\"'"), '""');
129-
128+
assert.equal(alasql('VALUE OF SELECT \'""\''), '""');
129+
130130
// Single double quote in double-quoted string
131131
assert.equal(alasql('VALUE OF SELECT "x"'), 'x');
132-
132+
133133
// Multiple double quotes are literal in double-quoted strings
134134
assert.equal(alasql('VALUE OF SELECT "a""b"'), 'a""b');
135135
});
136136

137137
it('H) Parameterized queries with escaped data', function () {
138138
// Test how the parser handles escaped characters when data is passed in
139-
139+
140140
// Single quote in parameter
141-
var res1 = alasql("VALUE OF SELECT ?", ["'"]);
141+
var res1 = alasql('VALUE OF SELECT ?', ["'"]);
142142
assert.equal(res1, "'");
143-
143+
144144
// Double single quotes in parameter
145-
var res2 = alasql("VALUE OF SELECT ?", ["''"]);
145+
var res2 = alasql('VALUE OF SELECT ?', ["''"]);
146146
assert.equal(res2, "''");
147-
147+
148148
// Backslash in parameter
149-
var res3 = alasql("VALUE OF SELECT ?", ["\\"]);
150-
assert.equal(res3, "\\");
151-
149+
var res3 = alasql('VALUE OF SELECT ?', ['\\']);
150+
assert.equal(res3, '\\');
151+
152152
// Multiple backslashes in parameter
153-
var res4 = alasql("VALUE OF SELECT ?", ["\\\\"]);
154-
assert.equal(res4, "\\\\");
155-
153+
var res4 = alasql('VALUE OF SELECT ?', ['\\\\']);
154+
assert.equal(res4, '\\\\');
155+
156156
// Backslash followed by quote in parameter
157-
var res5 = alasql("VALUE OF SELECT ?", ["\\'"]);
157+
var res5 = alasql('VALUE OF SELECT ?', ["\\'"]);
158158
assert.equal(res5, "\\'");
159-
159+
160160
// Double quote in parameter
161-
var res6 = alasql("VALUE OF SELECT ?", ['"']);
161+
var res6 = alasql('VALUE OF SELECT ?', ['"']);
162162
assert.equal(res6, '"');
163-
163+
164164
// Double quotes in parameter
165-
var res7 = alasql("VALUE OF SELECT ?", ['""']);
165+
var res7 = alasql('VALUE OF SELECT ?', ['""']);
166166
assert.equal(res7, '""');
167-
167+
168168
// Complex: backslash, quote, backslash in parameter
169-
var res8 = alasql("VALUE OF SELECT ?", ["\\'\\"]);
169+
var res8 = alasql('VALUE OF SELECT ?', ["\\'\\"]);
170170
assert.equal(res8, "\\'\\");
171-
171+
172172
// Test round-trip: insert and select with escaped characters
173-
alasql("CREATE TABLE test_escape (val STRING)");
174-
173+
alasql('CREATE TABLE test_escape (val STRING)');
174+
175175
// Insert single quote
176-
alasql("INSERT INTO test_escape VALUES (?)", ["'"]);
177-
var result1 = alasql("SELECT val FROM test_escape");
176+
alasql('INSERT INTO test_escape VALUES (?)', ["'"]);
177+
var result1 = alasql('SELECT val FROM test_escape');
178178
assert.equal(result1[0].val, "'");
179-
179+
180180
// Clear and insert backslash
181-
alasql("DELETE FROM test_escape");
182-
alasql("INSERT INTO test_escape VALUES (?)", ["\\"]);
183-
var result2 = alasql("SELECT val FROM test_escape");
184-
assert.equal(result2[0].val, "\\");
185-
181+
alasql('DELETE FROM test_escape');
182+
alasql('INSERT INTO test_escape VALUES (?)', ['\\']);
183+
var result2 = alasql('SELECT val FROM test_escape');
184+
assert.equal(result2[0].val, '\\');
185+
186186
// Clear and insert backslash + quote
187-
alasql("DELETE FROM test_escape");
188-
alasql("INSERT INTO test_escape VALUES (?)", ["\\'"]);
189-
var result3 = alasql("SELECT val FROM test_escape");
187+
alasql('DELETE FROM test_escape');
188+
alasql('INSERT INTO test_escape VALUES (?)', ["\\'"]);
189+
var result3 = alasql('SELECT val FROM test_escape');
190190
assert.equal(result3[0].val, "\\'");
191-
191+
192192
// Clean up
193-
alasql("DROP TABLE test_escape");
193+
alasql('DROP TABLE test_escape');
194194
});
195195
});

0 commit comments

Comments
 (0)