duckdb 0.9.3-dev16.0 → 0.9.3-dev19.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +6 -6
- package/package.json +1 -1
- package/test/affected.test.ts +2 -2
- package/test/columns.test.ts +2 -2
- package/test/config.test.ts +2 -2
- package/test/each.test.ts +2 -2
- package/test/exec.test.ts +2 -2
- package/test/named_columns.test.ts +2 -2
- package/test/null_error.test.ts +2 -2
- package/test/prepare.test.ts +28 -26
- package/test/serialization.test.ts +7 -6
- package/test/typescript_decls.test.ts +6 -6
- package/test/udf.test.ts +23 -23
- package/test/unicode.test.ts +2 -2
package/README.md
CHANGED
@@ -15,7 +15,7 @@ Then you can run a query:
|
|
15
15
|
```js
|
16
16
|
db.all('SELECT 42 AS fortytwo', function(err, res) {
|
17
17
|
if (err) {
|
18
|
-
|
18
|
+
console.warn(err);
|
19
19
|
}
|
20
20
|
console.log(res[0].fortytwo)
|
21
21
|
});
|
@@ -26,7 +26,7 @@ Other available methods are `each`, where the callback is invoked for each row,
|
|
26
26
|
```js
|
27
27
|
db.all('SELECT ?::INTEGER AS fortytwo, ?::STRING as hello', 42, 'Hello, World', function(err, res) {
|
28
28
|
if (err) {
|
29
|
-
|
29
|
+
console.warn(err);
|
30
30
|
}
|
31
31
|
console.log(res[0].fortytwo)
|
32
32
|
console.log(res[0].hello)
|
@@ -47,7 +47,7 @@ You can create multiple connections, each with their own transaction context.
|
|
47
47
|
```js
|
48
48
|
con.all('SELECT 42 AS fortytwo', function(err, res) {
|
49
49
|
if (err) {
|
50
|
-
|
50
|
+
console.warn(err);
|
51
51
|
}
|
52
52
|
console.log(res[0].fortytwo)
|
53
53
|
});
|
@@ -64,7 +64,7 @@ To execute this statement, you can call for example `all()` on the `stmt` object
|
|
64
64
|
```js
|
65
65
|
stmt.all(42, function(err, res) {
|
66
66
|
if (err) {
|
67
|
-
|
67
|
+
console.warn(err);
|
68
68
|
}
|
69
69
|
console.log(res[0].fortytwo)
|
70
70
|
});
|
@@ -81,7 +81,7 @@ for (var i = 0; i < 10; i++) {
|
|
81
81
|
stmt.finalize();
|
82
82
|
con.all('SELECT * FROM a', function(err, res) {
|
83
83
|
if (err) {
|
84
|
-
|
84
|
+
console.warn(err);
|
85
85
|
}
|
86
86
|
console.log(res)
|
87
87
|
});
|
@@ -93,7 +93,7 @@ con.all('SELECT * FROM a', function(err, res) {
|
|
93
93
|
var stmt = con.prepare('select ?::INTEGER as fortytwo', function(err, stmt) {
|
94
94
|
stmt.all(42, function(err, res) {
|
95
95
|
if (err) {
|
96
|
-
|
96
|
+
console.warn(err);
|
97
97
|
}
|
98
98
|
console.log(res[0].fortytwo)
|
99
99
|
});
|
package/package.json
CHANGED
package/test/affected.test.ts
CHANGED
@@ -13,7 +13,7 @@ describe('query properties', function() {
|
|
13
13
|
var j = 1;
|
14
14
|
for (var i = 0; i < 5000; i++) {
|
15
15
|
stmt.run(i, "demo", function(err: null | Error) {
|
16
|
-
if (err)
|
16
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
17
17
|
// Relies on SQLite's row numbering to be gapless and starting
|
18
18
|
// from 1.
|
19
19
|
// @ts-ignore
|
@@ -26,7 +26,7 @@ describe('query properties', function() {
|
|
26
26
|
|
27
27
|
it.skip('should return the correct changes count', function(done) {
|
28
28
|
db.run("UPDATE foo SET id = id + 1 WHERE id % 2 = 0", function(err: null | Error) {
|
29
|
-
if (err)
|
29
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
30
30
|
// FIXME assert.equal(2500, this.changes);
|
31
31
|
done();
|
32
32
|
});
|
package/test/columns.test.ts
CHANGED
@@ -8,7 +8,7 @@ describe('Column Types', function() {
|
|
8
8
|
it('should prepare a statement and return the columns and their types', function(done) {
|
9
9
|
// we dont include the large_enum and small_enum since they are huge and test the same code path as the small_enum
|
10
10
|
var stmt = db.prepare("SELECT * EXCLUDE(medium_enum, large_enum) FROM test_all_types()", function(err: null | Error) {
|
11
|
-
if (err)
|
11
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
12
12
|
|
13
13
|
let cols = stmt.columns();
|
14
14
|
|
@@ -263,4 +263,4 @@ describe('Column Types', function() {
|
|
263
263
|
});
|
264
264
|
stmt.finalize(done);
|
265
265
|
});
|
266
|
-
});
|
266
|
+
});
|
package/test/config.test.ts
CHANGED
@@ -9,7 +9,7 @@ describe('user_agent', () => {
|
|
9
9
|
|
10
10
|
db.all('PRAGMA USER_AGENT', (err: null | Error, rows: TableData) => {
|
11
11
|
if (err) {
|
12
|
-
|
12
|
+
done(new Error('Query failed unexpectedly'));
|
13
13
|
}
|
14
14
|
assert.match(rows[0].user_agent, /duckdb\/.*\(*\) nodejs/);
|
15
15
|
done();
|
@@ -21,7 +21,7 @@ describe('user_agent', () => {
|
|
21
21
|
|
22
22
|
db.all('PRAGMA USER_AGENT', (err: null | Error, rows: TableData) => {
|
23
23
|
if (err) {
|
24
|
-
|
24
|
+
done(new Error('Query failed unexpectedly'));
|
25
25
|
}
|
26
26
|
assert.match(rows[0].user_agent, /duckdb\/.*\(*\) nodejs a_framework/);
|
27
27
|
done();
|
package/test/each.test.ts
CHANGED
@@ -14,7 +14,7 @@ describe('each', function() {
|
|
14
14
|
|
15
15
|
|
16
16
|
db.each('SELECT id, txt FROM foo WHERE ROWID < ?', total, function(err: null | Error, row: RowData) {
|
17
|
-
if (err)
|
17
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
18
18
|
retrieved++;
|
19
19
|
|
20
20
|
if(retrieved === total) {
|
@@ -29,7 +29,7 @@ describe('each', function() {
|
|
29
29
|
var retrieved = 0;
|
30
30
|
|
31
31
|
db.each('SELECT id, txt FROM foo WHERE ROWID < ?', total, function(err: null | Error, row: RowData) {
|
32
|
-
if (err)
|
32
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
33
33
|
retrieved++;
|
34
34
|
}, function(err: null | Error, num: RowData) {
|
35
35
|
assert.equal(retrieved, num);
|
package/test/exec.test.ts
CHANGED
@@ -12,14 +12,14 @@ describe('exec', function() {
|
|
12
12
|
it('Database#exec', function(done) {
|
13
13
|
var sql = fs.readFileSync('test/support/script.sql', 'utf8');
|
14
14
|
db.exec(sql, function(err: null | Error) {
|
15
|
-
if (err)
|
15
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
16
16
|
done();
|
17
17
|
});
|
18
18
|
});
|
19
19
|
|
20
20
|
it('retrieve database structure', function(done) {
|
21
21
|
db.all("SELECT type, name FROM sqlite_master ORDER BY type, name", function(err: null | Error, rows: TableData) {
|
22
|
-
if (err)
|
22
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
23
23
|
assert.deepEqual(rows, [
|
24
24
|
// { type: 'index', name: 'grid_key_lookup' },
|
25
25
|
// { type: 'index', name: 'grid_utfgrid_lookup' },
|
@@ -21,7 +21,7 @@ describe.skip('named columns', function() {
|
|
21
21
|
|
22
22
|
it('should retrieve the values', function(done) {
|
23
23
|
db.get("SELECT txt, num FROM foo ORDER BY num", function(err, row) {
|
24
|
-
if (err)
|
24
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
25
25
|
assert.equal(row.txt, "Lorem Ipsum");
|
26
26
|
assert.equal(row.num, 1);
|
27
27
|
done();
|
@@ -30,7 +30,7 @@ describe.skip('named columns', function() {
|
|
30
30
|
|
31
31
|
it('should be able to retrieve rowid of last inserted value', function(done) {
|
32
32
|
db.get("SELECT last_insert_rowid() as last_id FROM foo", function(err, row) {
|
33
|
-
if (err)
|
33
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
34
34
|
assert.equal(row.last_id, 1);
|
35
35
|
done();
|
36
36
|
});
|
package/test/null_error.test.ts
CHANGED
@@ -17,14 +17,14 @@ describe('null error', function() {
|
|
17
17
|
|
18
18
|
it('should insert rows with lots of null values', function(done) {
|
19
19
|
var stmt = db.prepare('INSERT INTO febp_data VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', function(err: null | Error) {
|
20
|
-
if (err)
|
20
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
21
21
|
|
22
22
|
for (var i = 0; i < 100; i++) {
|
23
23
|
stmt.run([ '100005', 'Albertville City School District', 'ALABAMA', 'AL', '1', '856031', '753000', 'NULL', 'NULL', '6-Small Town', 'Town', 21, '130', '6624', '7140', '8731', '8520', '102', '88', '100', '94', '23352000', '27280000', '30106000', '33028000', '768478', '845886', '782696', '1096819', '1279663', '1168521', '561522', '657649', '684366', '687531', '710543', '727276', '726647', 'N/A', 'N/A', 'N/A', 'N/A', '986', '977', '1006', '1080250', '1202325', '1009962', '1109310', '70287', '93015', '14693.56', '13634.58', 'N/A', '0.230', '0.301', '0.268882175', '73', '26', '29', '3718', '3747', '3790', '2663', '2615', '2575', '75', '82', '89', '3', '2', '6', '11', '9', '8', '955', '1028', '1102', '1991', '2061', '2146', '649', '729', '770', '443', '278', '267', '0.860', '0.86', '0.8474', '0.84', '0.8235', '0.810', '0.84', '0.7729', '0.75', '0.7843', '1121', '1205', '0.74', '0.6862', '0.72', '0.7317', '0.78', '0.7766', '0.79', '0.7387', '0.84', '0.9255', '0.86', '0.9302', '0.88', '0.9308', '0.84', '0.8605' ]);
|
24
24
|
}
|
25
25
|
|
26
26
|
stmt.finalize(function(err) {
|
27
|
-
if (err)
|
27
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
28
28
|
done();
|
29
29
|
});
|
30
30
|
});
|
package/test/prepare.test.ts
CHANGED
@@ -14,7 +14,9 @@ describe('prepare', function() {
|
|
14
14
|
err.message === 'Parser: syntax error at or near "CRATE' */) {
|
15
15
|
done();
|
16
16
|
}
|
17
|
-
else
|
17
|
+
else {
|
18
|
+
done(new Error('Query failed unexpectedly'));
|
19
|
+
}
|
18
20
|
});
|
19
21
|
});
|
20
22
|
|
@@ -56,11 +58,11 @@ describe('prepare', function() {
|
|
56
58
|
i * Math.PI,
|
57
59
|
null,
|
58
60
|
function(err: null | Error) {
|
59
|
-
if (err)
|
61
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
60
62
|
inserted++;
|
61
63
|
}
|
62
64
|
).finalize(function(err) {
|
63
|
-
if (err)
|
65
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
64
66
|
if (inserted == count) done();
|
65
67
|
});
|
66
68
|
}
|
@@ -68,12 +70,12 @@ describe('prepare', function() {
|
|
68
70
|
|
69
71
|
it('should prepare a statement and return values again', function(done) {
|
70
72
|
var stmt = db.prepare("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err: null | Error) {
|
71
|
-
if (err)
|
73
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
72
74
|
assert.equal(stmt.sql, 'SELECT txt, num, flt, blb FROM foo ORDER BY num');
|
73
75
|
});
|
74
76
|
|
75
77
|
stmt.each(function(err: null | Error, row: RowData) {
|
76
|
-
if (err)
|
78
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
77
79
|
assert.equal(row.txt, 'String ' + retrieved);
|
78
80
|
assert.equal(row.num, retrieved);
|
79
81
|
assert.equal(row.flt, retrieved * Math.PI);
|
@@ -93,13 +95,13 @@ describe('prepare', function() {
|
|
93
95
|
/* // get() is an abomination and should be killed
|
94
96
|
it('should prepare a statement and run it ' + (count + 5) + ' times', function(done) {
|
95
97
|
var stmt = db.prepare("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err) {
|
96
|
-
if (err)
|
98
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
97
99
|
assert.equal(stmt.sql, 'SELECT txt, num, flt, blb FROM foo ORDER BY num');
|
98
100
|
});
|
99
101
|
|
100
102
|
for (var i = 0; i < count + 5; i++) (function(i) {
|
101
103
|
stmt.get(function(err, row) {
|
102
|
-
if (err)
|
104
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
103
105
|
|
104
106
|
if (retrieved >= 1000) {
|
105
107
|
assert.equal(row, undefined);
|
@@ -138,7 +140,7 @@ describe('prepare', function() {
|
|
138
140
|
|
139
141
|
it('should insert two rows', function(done) {
|
140
142
|
db.prepare('INSERT INTO foo VALUES(4)').run(function(err: null | Error) {
|
141
|
-
if (err)
|
143
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
142
144
|
inserted++;
|
143
145
|
}).run(undefined, function (err: null | Error) {
|
144
146
|
// The second time we pass undefined as a parameter. This is
|
@@ -149,7 +151,7 @@ describe('prepare', function() {
|
|
149
151
|
};
|
150
152
|
inserted++;
|
151
153
|
}).finalize(function(err) {
|
152
|
-
if (err)
|
154
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
153
155
|
if (inserted == 2) done();
|
154
156
|
});
|
155
157
|
});
|
@@ -157,12 +159,12 @@ describe('prepare', function() {
|
|
157
159
|
/*
|
158
160
|
it('should retrieve the data', function(done) {
|
159
161
|
var stmt = db.prepare("SELECT num FROM foo", function(err) {
|
160
|
-
if (err)
|
162
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
161
163
|
});
|
162
164
|
|
163
165
|
for (var i = 0; i < 2; i++) (function(i) {
|
164
166
|
stmt.get(function(err, row) {
|
165
|
-
if (err)
|
167
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
166
168
|
assert(row);
|
167
169
|
assert.equal(row.num, 4);
|
168
170
|
retrieved++;
|
@@ -175,11 +177,11 @@ describe('prepare', function() {
|
|
175
177
|
|
176
178
|
it('should retrieve the data', function(done) {
|
177
179
|
var stmt = db.prepare("SELECT num FROM foo", function(err: null | Error) {
|
178
|
-
if (err)
|
180
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
179
181
|
});
|
180
182
|
|
181
183
|
stmt.each(function(err: null | Error, row: RowData) {
|
182
|
-
if (err)
|
184
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
183
185
|
assert.ok(row);
|
184
186
|
assert.equal(row.num, 4);
|
185
187
|
retrieved++;
|
@@ -211,7 +213,7 @@ describe('prepare', function() {
|
|
211
213
|
for (var i = 0; i < 10; i++) {
|
212
214
|
stmt.reset();
|
213
215
|
stmt.get(function(err, row) {
|
214
|
-
if (err)
|
216
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
215
217
|
assert.equal(row.txt, 'String 0');
|
216
218
|
assert.equal(row.num, 0);
|
217
219
|
assert.equal(row.flt, 0.0);
|
@@ -245,7 +247,7 @@ describe('prepare', function() {
|
|
245
247
|
|
246
248
|
for (var i = 0; i < 10; i++) (function(i) {
|
247
249
|
stmt.get(i * 10 + 1, function(err, row) {
|
248
|
-
if (err)
|
250
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
249
251
|
var val = i * 10 + 1;
|
250
252
|
assert.equal(row.txt, 'String ' + val);
|
251
253
|
assert.equal(row.num, val);
|
@@ -279,7 +281,7 @@ describe('prepare', function() {
|
|
279
281
|
/* it('should retrieve particular rows', function(done) {
|
280
282
|
db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?", 10, 'String 10')
|
281
283
|
.get(function(err, row) {
|
282
|
-
if (err)
|
284
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
283
285
|
assert.equal(row.txt, 'String 10');
|
284
286
|
assert.equal(row.num, 10);
|
285
287
|
assert.equal(row.flt, 10 * Math.PI);
|
@@ -292,7 +294,7 @@ describe('prepare', function() {
|
|
292
294
|
it('should retrieve particular rows', function(done) {
|
293
295
|
db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?")
|
294
296
|
.each(10, 'String 10', function(err: null | Error, row: RowData) {
|
295
|
-
if (err)
|
297
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
296
298
|
assert.equal(row.txt, 'String 10');
|
297
299
|
assert.equal(row.num, 10);
|
298
300
|
// assert.equal(row.flt, 10 * Math.PI);
|
@@ -323,7 +325,7 @@ describe('prepare', function() {
|
|
323
325
|
it('should retrieve particular rows', function(done) {
|
324
326
|
db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num < ? ORDER BY num")
|
325
327
|
.all(count, function(err: null | Error, rows: TableData) {
|
326
|
-
if (err)
|
328
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
327
329
|
for (var i = 0; i < rows.length; i++) {
|
328
330
|
assert.equal(rows[i].txt, 'String ' + i);
|
329
331
|
assert.equal(rows[i].num, i);
|
@@ -353,7 +355,7 @@ describe('prepare', function() {
|
|
353
355
|
it('should directly execute first statements', function(done) {
|
354
356
|
db.prepare("insert into foo values (3); insert into foo values (4); select * from foo")
|
355
357
|
.all(function(err: null | Error, rows: TableData) {
|
356
|
-
if (err)
|
358
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
357
359
|
assert.equal(rows[0].a, 3);
|
358
360
|
assert.equal(rows[1].a, 4);
|
359
361
|
})
|
@@ -392,7 +394,7 @@ describe('prepare', function() {
|
|
392
394
|
it('should retrieve particular rows', function(done) {
|
393
395
|
db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num > 5000")
|
394
396
|
.all(function(err: null | Error, rows: TableData) {
|
395
|
-
if (err)
|
397
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
396
398
|
assert.ok(rows.length === 0);
|
397
399
|
})
|
398
400
|
.finalize(done);
|
@@ -435,10 +437,10 @@ describe('prepare', function() {
|
|
435
437
|
for (var i = 0; i < data.length; i++) {
|
436
438
|
var stmt = db.prepare("INSERT INTO foo VALUES(?, ?, ?, ?)");
|
437
439
|
stmt.run(data[i][0], data[i][1], data[i][2], data[i][3], function(err: null | Error) {
|
438
|
-
if (err)
|
440
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
439
441
|
inserted++;
|
440
442
|
}).finalize(function(err) {
|
441
|
-
if (err)
|
443
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
442
444
|
if (inserted == data.length) done();
|
443
445
|
});
|
444
446
|
}
|
@@ -447,7 +449,7 @@ describe('prepare', function() {
|
|
447
449
|
it('should retrieve all values', function(done) {
|
448
450
|
db.prepare("SELECT txt, num, flt, blb FROM foo")
|
449
451
|
.all(function(err: null | Error, rows: TableData) {
|
450
|
-
if (err)
|
452
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
451
453
|
|
452
454
|
for (var i = 0; i < rows.length; i++) {
|
453
455
|
assert.ok(retrieved_marks[rows[i].num] !== true);
|
@@ -485,7 +487,7 @@ describe('prepare', function() {
|
|
485
487
|
|
486
488
|
it('should get a row', function(done) {
|
487
489
|
db.get("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?", 10, 'String 10', function(err, row) {
|
488
|
-
if (err)
|
490
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
489
491
|
assert.equal(row.txt, 'String 10');
|
490
492
|
assert.equal(row.num, 10);
|
491
493
|
assert.equal(row.flt, 10 * Math.PI);
|
@@ -524,7 +526,7 @@ describe('prepare', function() {
|
|
524
526
|
i * Math.PI,
|
525
527
|
null,
|
526
528
|
function(err: null | Error) {
|
527
|
-
if (err)
|
529
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
528
530
|
inserted++;
|
529
531
|
if (inserted == count) done();
|
530
532
|
}
|
@@ -534,7 +536,7 @@ describe('prepare', function() {
|
|
534
536
|
|
535
537
|
it('should retrieve all rows', function(done) {
|
536
538
|
db.all("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err: null | Error, rows: TableData) {
|
537
|
-
if (err)
|
539
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
538
540
|
for (var i = 0; i < rows.length; i++) {
|
539
541
|
assert.equal(rows[i].txt, 'String ' + i);
|
540
542
|
assert.equal(rows[i].num, i);
|
@@ -19,29 +19,30 @@ describe('serialize() and parallelize()', function() {
|
|
19
19
|
db.parallelize(done);
|
20
20
|
});
|
21
21
|
|
22
|
-
it('should insert rows', function() {
|
22
|
+
it('should insert rows', function(done) {
|
23
23
|
var stmt1 = db.prepare("INSERT INTO foo VALUES(?, ?, ?, ?)");
|
24
24
|
var stmt2 = db.prepare("INSERT INTO foo VALUES(?, ?, ?, ?)");
|
25
25
|
for (var i = 0; i < count; i++) {
|
26
26
|
// Interleaved inserts with two statements.
|
27
27
|
stmt1.run('String ' + i, i, i * Math.PI, null, function(err: null | Error) {
|
28
|
-
if (err)
|
28
|
+
if (err) {console.warn(err);done(new Error('Query failed unexpectedly'));}
|
29
29
|
inserted1++;
|
30
30
|
});
|
31
31
|
i++;
|
32
32
|
stmt2.run('String ' + i, i, i * Math.PI, null, function(err: null | Error) {
|
33
|
-
if (err)
|
33
|
+
if (err) {console.warn(err);done(new Error('Query failed unexpectedly'));}
|
34
34
|
inserted2++;
|
35
35
|
});
|
36
36
|
}
|
37
37
|
stmt1.finalize();
|
38
38
|
stmt2.finalize();
|
39
|
+
done();
|
39
40
|
});
|
40
41
|
|
41
42
|
it('should have inserted all the rows after synchronizing with serialize()', function(done) {
|
42
43
|
db.serialize();
|
43
44
|
db.all("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err: null | Error, rows: TableData) {
|
44
|
-
if (err)
|
45
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
45
46
|
for (var i = 0; i < rows.length; i++) {
|
46
47
|
assert.equal(rows[i].txt, 'String ' + i);
|
47
48
|
assert.equal(rows[i].num, i);
|
@@ -77,14 +78,14 @@ describe('serialize(fn)', function() {
|
|
77
78
|
var d = new Date(Date.UTC(2018, 0, i));
|
78
79
|
var ts = new Date(Date.UTC(2021, 6, 10, 0, 0, i));
|
79
80
|
stmt.run('String ' + i, i, i * Math.PI, null, d, ts, function(err: null | Error) {
|
80
|
-
if (err)
|
81
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
81
82
|
inserted++;
|
82
83
|
});
|
83
84
|
}
|
84
85
|
stmt.finalize();
|
85
86
|
|
86
87
|
db.all("SELECT txt, num, flt, blb, d, ts FROM foo ORDER BY num", function(err: null | Error, rows: TableData) {
|
87
|
-
if (err)
|
88
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
88
89
|
for (var i = 0; i < rows.length; i++) {
|
89
90
|
var d = new Date(Date.UTC(2018, 0, i));
|
90
91
|
var ts = new Date(Date.UTC(2021, 6, 10, 0, 0, i));
|
@@ -63,7 +63,7 @@ describe("TypeScript declarations", function () {
|
|
63
63
|
it("typescript: Database#exec", function (done) {
|
64
64
|
var sql = fs.readFileSync("test/support/script.sql", "utf8");
|
65
65
|
db.exec(sql, function (err: duckdb.DuckDbError | null) {
|
66
|
-
if (err)
|
66
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
67
67
|
done();
|
68
68
|
});
|
69
69
|
});
|
@@ -72,7 +72,7 @@ describe("TypeScript declarations", function () {
|
|
72
72
|
db.all(
|
73
73
|
"SELECT type, name FROM sqlite_master ORDER BY type, name",
|
74
74
|
function (err: duckdb.DuckDbError | null, rows: duckdb.TableData) {
|
75
|
-
if (err)
|
75
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
76
76
|
assert.deepEqual(rows, [
|
77
77
|
{ type: "table", name: "grid_key" },
|
78
78
|
{ type: "table", name: "grid_utfgrid" },
|
@@ -125,7 +125,7 @@ describe("TypeScript declarations", function () {
|
|
125
125
|
db.all(
|
126
126
|
"select udf(21, 20, 1) v",
|
127
127
|
function (err: duckdb.DuckDbError | null, rows: duckdb.TableData) {
|
128
|
-
if (err)
|
128
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
129
129
|
assert.equal(rows[0].v, 42);
|
130
130
|
}
|
131
131
|
);
|
@@ -139,7 +139,7 @@ describe("TypeScript declarations", function () {
|
|
139
139
|
"SELECT * FROM range(0, ?)",
|
140
140
|
total,
|
141
141
|
function (err: duckdb.DuckDbError | null, row: any) {
|
142
|
-
if (err)
|
142
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
143
143
|
retrieved++;
|
144
144
|
|
145
145
|
if (retrieved === total) {
|
@@ -197,12 +197,12 @@ describe("typescript: prepared statements", function () {
|
|
197
197
|
i * Math.PI,
|
198
198
|
null,
|
199
199
|
function (err: duckdb.DuckDbError | null) {
|
200
|
-
if (err)
|
200
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
201
201
|
inserted++;
|
202
202
|
}
|
203
203
|
)
|
204
204
|
.finalize(function (err) {
|
205
|
-
if (err)
|
205
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
206
206
|
if (inserted == count) done();
|
207
207
|
});
|
208
208
|
}
|
package/test/udf.test.ts
CHANGED
@@ -12,7 +12,7 @@ describe('UDFs', function() {
|
|
12
12
|
it('0ary int', function(done) {
|
13
13
|
db.register_udf("udf", "integer", () => 42);
|
14
14
|
db.all("select udf() v", function(err: Error | null, rows: TableData) {
|
15
|
-
if (err)
|
15
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
16
16
|
assert.equal(rows[0].v, 42);
|
17
17
|
});
|
18
18
|
db.unregister_udf("udf", done);
|
@@ -21,7 +21,7 @@ describe('UDFs', function() {
|
|
21
21
|
it('0ary double', function(done) {
|
22
22
|
db.register_udf("udf", "double", () => 4.2);
|
23
23
|
db.all("select udf() v", function(err: null | Error, rows: TableData) {
|
24
|
-
if (err)
|
24
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
25
25
|
assert.equal(rows[0].v, 4.2);
|
26
26
|
});
|
27
27
|
db.unregister_udf("udf", done);
|
@@ -30,7 +30,7 @@ describe('UDFs', function() {
|
|
30
30
|
it('0ary string', function(done) {
|
31
31
|
db.register_udf("udf", "varchar", () => 'hello');
|
32
32
|
db.all("select udf() v", function(err: null | Error, rows: TableData) {
|
33
|
-
if (err)
|
33
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
34
34
|
assert.equal(rows[0].v, 'hello');
|
35
35
|
});
|
36
36
|
db.unregister_udf("udf", done);
|
@@ -39,7 +39,7 @@ describe('UDFs', function() {
|
|
39
39
|
it('0ary non-inlined string', function(done) {
|
40
40
|
db.register_udf("udf", "varchar", () => 'this string is over 12 bytes');
|
41
41
|
db.all("select udf() v", function(err: null | Error, rows: TableData) {
|
42
|
-
if (err)
|
42
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
43
43
|
assert.equal(rows[0].v, 'this string is over 12 bytes');
|
44
44
|
});
|
45
45
|
db.unregister_udf("udf", done);
|
@@ -48,7 +48,7 @@ describe('UDFs', function() {
|
|
48
48
|
it('0ary int null', function(done) {
|
49
49
|
db.register_udf("udf", "integer", () => undefined);
|
50
50
|
db.all("select udf() v", function(err: null | Error, rows: TableData) {
|
51
|
-
if (err)
|
51
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
52
52
|
assert.equal(rows[0].v, undefined);
|
53
53
|
});
|
54
54
|
db.unregister_udf("udf", done);
|
@@ -58,7 +58,7 @@ describe('UDFs', function() {
|
|
58
58
|
it('0ary string null', function(done) {
|
59
59
|
db.register_udf("udf", "varchar", () => undefined);
|
60
60
|
db.all("select udf() v", function(err: null | Error, rows: TableData) {
|
61
|
-
if (err)
|
61
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
62
62
|
assert.equal(rows[0].v, undefined);
|
63
63
|
});
|
64
64
|
db.unregister_udf("udf", done);
|
@@ -68,7 +68,7 @@ describe('UDFs', function() {
|
|
68
68
|
it('unary int', function(done) {
|
69
69
|
db.register_udf("udf", "integer", (x) => x+1);
|
70
70
|
db.all("select udf(42) v", function(err: null | Error, rows: TableData) {
|
71
|
-
if (err)
|
71
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
72
72
|
assert.equal(rows[0].v, 43);
|
73
73
|
});
|
74
74
|
db.unregister_udf("udf", done);
|
@@ -77,7 +77,7 @@ describe('UDFs', function() {
|
|
77
77
|
it('unary double', function(done) {
|
78
78
|
db.register_udf("udf", "double", (x) => x);
|
79
79
|
db.all("select udf(4.2::double) v", function(err: null | Error, rows: TableData) {
|
80
|
-
if (err)
|
80
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
81
81
|
assert.equal(rows[0].v, 4.2);
|
82
82
|
});
|
83
83
|
db.unregister_udf("udf", done);
|
@@ -86,7 +86,7 @@ describe('UDFs', function() {
|
|
86
86
|
it('unary int null', function(done) {
|
87
87
|
db.register_udf("udf", "integer", (x) => undefined);
|
88
88
|
db.all("select udf(42) v", function(err: null | Error, rows: TableData) {
|
89
|
-
if (err)
|
89
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
90
90
|
assert.equal(rows[0].v, undefined);
|
91
91
|
});
|
92
92
|
db.unregister_udf("udf", done);
|
@@ -96,7 +96,7 @@ describe('UDFs', function() {
|
|
96
96
|
it('unary double null', function(done) {
|
97
97
|
db.register_udf("udf", "double", (x) => undefined);
|
98
98
|
db.all("select udf(4.2::double) v", function(err: null | Error, rows: TableData) {
|
99
|
-
if (err)
|
99
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
100
100
|
assert.equal(rows[0].v, undefined);
|
101
101
|
});
|
102
102
|
db.unregister_udf("udf", done);
|
@@ -106,7 +106,7 @@ describe('UDFs', function() {
|
|
106
106
|
it('unary string', function(done) {
|
107
107
|
db.register_udf("udf", "varchar", (x) => 'hello ' + x);
|
108
108
|
db.all("select udf('world') v", function(err: null | Error, rows: TableData) {
|
109
|
-
if (err)
|
109
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
110
110
|
assert.equal(rows[0].v, 'hello world');
|
111
111
|
});
|
112
112
|
db.unregister_udf("udf", done);
|
@@ -115,7 +115,7 @@ describe('UDFs', function() {
|
|
115
115
|
it('unary string null', function(done) {
|
116
116
|
db.register_udf("udf", "varchar", (x) => undefined);
|
117
117
|
db.all("select udf('world') v", function(err: null | Error, rows: TableData) {
|
118
|
-
if (err)
|
118
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
119
119
|
assert.equal(rows[0].v, undefined);
|
120
120
|
});
|
121
121
|
db.unregister_udf("udf", done);
|
@@ -124,7 +124,7 @@ describe('UDFs', function() {
|
|
124
124
|
it('binary int', function(done) {
|
125
125
|
db.register_udf("udf", "integer", (x, y) => x + y);
|
126
126
|
db.all("select udf(40, 2) v", function(err: null | Error, rows: TableData) {
|
127
|
-
if (err)
|
127
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
128
128
|
assert.equal(rows[0].v, 42);
|
129
129
|
});
|
130
130
|
db.unregister_udf("udf", done);
|
@@ -133,7 +133,7 @@ describe('UDFs', function() {
|
|
133
133
|
it('binary string', function(done) {
|
134
134
|
db.register_udf("udf", "varchar", (x, y) => x + ' ' + y);
|
135
135
|
db.all("select udf('hello', 'world') v", function(err: null | Error, rows: TableData) {
|
136
|
-
if (err)
|
136
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
137
137
|
assert.equal(rows[0].v, 'hello world');
|
138
138
|
});
|
139
139
|
db.unregister_udf("udf", done);
|
@@ -142,7 +142,7 @@ describe('UDFs', function() {
|
|
142
142
|
it('ternary int', function(done) {
|
143
143
|
db.register_udf("udf", "integer", (x, y, z) => x + y + z);
|
144
144
|
db.all("select udf(21, 20, 1) v", function(err: null | Error, rows: TableData) {
|
145
|
-
if (err)
|
145
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
146
146
|
assert.equal(rows[0].v, 42);
|
147
147
|
});
|
148
148
|
db.unregister_udf("udf", done);
|
@@ -151,7 +151,7 @@ describe('UDFs', function() {
|
|
151
151
|
it('unary larger series', function(done) {
|
152
152
|
db.register_udf("udf", "integer", (x) => 1);
|
153
153
|
db.all("select sum(udf(range::double)) v from range(10000)", function(err: null | Error, rows: TableData) {
|
154
|
-
if (err)
|
154
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
155
155
|
assert.equal(rows[0].v, 10000);
|
156
156
|
});
|
157
157
|
db.unregister_udf("udf", done);
|
@@ -167,7 +167,7 @@ describe('UDFs', function() {
|
|
167
167
|
it('tinyint', function(done) {
|
168
168
|
db.register_udf("udf", "integer", (x) => x+1);
|
169
169
|
db.all("select udf(42::tinyint) v", function(err: null | Error, rows: TableData) {
|
170
|
-
if (err)
|
170
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
171
171
|
assert.equal(rows[0].v, 43);
|
172
172
|
});
|
173
173
|
db.unregister_udf("udf", done);
|
@@ -176,7 +176,7 @@ describe('UDFs', function() {
|
|
176
176
|
it('smallint', function(done) {
|
177
177
|
db.register_udf("udf", "integer", (x) => x+1);
|
178
178
|
db.all("select udf(42::smallint) v", function(err: null | Error, rows: TableData) {
|
179
|
-
if (err)
|
179
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
180
180
|
assert.equal(rows[0].v, 43);
|
181
181
|
});
|
182
182
|
db.unregister_udf("udf", done);
|
@@ -185,7 +185,7 @@ describe('UDFs', function() {
|
|
185
185
|
it('int', function(done) {
|
186
186
|
db.register_udf("udf", "integer", (x) => x+1);
|
187
187
|
db.all("select udf(42::integer) v", function(err: null | Error, rows: TableData) {
|
188
|
-
if (err)
|
188
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
189
189
|
assert.equal(rows[0].v, 43);
|
190
190
|
});
|
191
191
|
db.unregister_udf("udf", done);
|
@@ -194,7 +194,7 @@ describe('UDFs', function() {
|
|
194
194
|
it('timestamp', function(done) {
|
195
195
|
db.register_udf("udf", "timestamp", (x) => x);
|
196
196
|
db.all("select udf(timestamp '1992-09-20 11:30:00') v", function(err: null | Error, rows: TableData) {
|
197
|
-
if (err)
|
197
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
198
198
|
});
|
199
199
|
db.unregister_udf("udf", done);
|
200
200
|
});
|
@@ -204,7 +204,7 @@ describe('UDFs', function() {
|
|
204
204
|
return (a.x == null ? -100 : a.x);
|
205
205
|
});
|
206
206
|
db.all("SELECT min(udf({'x': (case when v % 2 = 0 then v else null end)::INTEGER, 'y': 42}))::INTEGER as foo FROM generate_series(1, 10000) as t(v)", function(err: null | Error, rows: TableData) {
|
207
|
-
if (err)
|
207
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
208
208
|
assert.equal(rows[0].foo, -100);
|
209
209
|
});
|
210
210
|
db.unregister_udf("udf", done);
|
@@ -215,7 +215,7 @@ describe('UDFs', function() {
|
|
215
215
|
return (a.x == null ? -100 : a.x.y);
|
216
216
|
});
|
217
217
|
db.all("SELECT min(udf({'x': (case when v % 2 = 0 then {'y': v::INTEGER } else null end), 'z': 42}))::INTEGER as foo FROM generate_series(1, 10000) as t(v)", function(err: null | Error, rows: TableData) {
|
218
|
-
if (err)
|
218
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
219
219
|
assert.equal(rows[0].foo, -100);
|
220
220
|
});
|
221
221
|
db.unregister_udf("udf", done);
|
@@ -224,7 +224,7 @@ describe('UDFs', function() {
|
|
224
224
|
it('blob', function(done) {
|
225
225
|
db.register_udf("udf", "varchar", (buf: Buffer) => buf.toString("hex"));
|
226
226
|
db.all("select udf('\\xAA\\xAB\\xAC'::BLOB) v", function(err: null | Error, rows: TableData) {
|
227
|
-
if (err)
|
227
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
228
228
|
assert.equal(rows[0].v, "aaabac");
|
229
229
|
});
|
230
230
|
db.unregister_udf("udf", done);
|
package/test/unicode.test.ts
CHANGED
@@ -86,7 +86,7 @@ describe('unicode', function() {
|
|
86
86
|
const stmt = db.prepare("INSERT INTO foo VALUES(?, ?)");
|
87
87
|
for (let i = 0; i < data.length; i++) {
|
88
88
|
stmt.run(i, data[i], function(err: null | Error) {
|
89
|
-
if (err)
|
89
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
90
90
|
inserted++;
|
91
91
|
});
|
92
92
|
}
|
@@ -95,7 +95,7 @@ describe('unicode', function() {
|
|
95
95
|
|
96
96
|
it('should retrieve all values', function(done) {
|
97
97
|
db.all("SELECT txt FROM foo ORDER BY id", function(err: null | Error, rows: TableData) {
|
98
|
-
if (err)
|
98
|
+
if (err) done(new Error('Query failed unexpectedly'));
|
99
99
|
|
100
100
|
for (let i = 0; i < rows.length; i++) {
|
101
101
|
assert.equal(rows[i].txt, data[i]);
|