sqlmath 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/.gitconfig +2 -2
  2. package/.github/workflows/ci.yml +73 -15
  3. package/.github/workflows/publish.yml +66 -0
  4. package/.gitignore +1 -5
  5. package/CHANGELOG.md +53 -2
  6. package/LICENSE +16 -22
  7. package/README.md +18 -219
  8. package/asset_image_folder_open_solid.svg +1 -0
  9. package/jslint.mjs +10998 -0
  10. package/jslint_ci.sh +1542 -728
  11. package/package.json +23 -8
  12. package/{sqlite-autoconf-3360000/sqlite3.c → sqlite3.c} +13116 -85
  13. package/sqlite3_ext.c +8372 -0
  14. package/{sqlite-autoconf-3360000/shell.c → sqlite3_shell.c} +330 -275
  15. package/sqlmath.mjs +1713 -0
  16. package/sqlmath_base.c +1832 -0
  17. package/sqlmath_custom.c +78 -0
  18. package/sqlmath_custom.cpp +0 -0
  19. package/sqlmath_custom.mjs +4 -0
  20. package/sqlmath_old.js +31038 -0
  21. package/extension-functions.c +0 -2047
  22. package/node_sqlite3.cc +0 -11877
  23. package/sqlite-autoconf-3360000/INSTALL +0 -370
  24. package/sqlite-autoconf-3360000/Makefile.am +0 -20
  25. package/sqlite-autoconf-3360000/Makefile.fallback +0 -19
  26. package/sqlite-autoconf-3360000/Makefile.in +0 -1028
  27. package/sqlite-autoconf-3360000/Makefile.msc +0 -1037
  28. package/sqlite-autoconf-3360000/README.txt +0 -113
  29. package/sqlite-autoconf-3360000/Replace.cs +0 -223
  30. package/sqlite-autoconf-3360000/aclocal.m4 +0 -10199
  31. package/sqlite-autoconf-3360000/compile +0 -347
  32. package/sqlite-autoconf-3360000/config.guess +0 -1480
  33. package/sqlite-autoconf-3360000/config.sub +0 -1801
  34. package/sqlite-autoconf-3360000/configure +0 -16135
  35. package/sqlite-autoconf-3360000/configure.ac +0 -285
  36. package/sqlite-autoconf-3360000/depcomp +0 -791
  37. package/sqlite-autoconf-3360000/install-sh +0 -508
  38. package/sqlite-autoconf-3360000/ltmain.sh +0 -11156
  39. package/sqlite-autoconf-3360000/missing +0 -215
  40. package/sqlite-autoconf-3360000/sqlite3.1 +0 -286
  41. package/sqlite-autoconf-3360000/sqlite3.h +0 -12353
  42. package/sqlite-autoconf-3360000/sqlite3.pc.in +0 -13
  43. package/sqlite-autoconf-3360000/sqlite3.rc +0 -83
  44. package/sqlite-autoconf-3360000/sqlite3ext.h +0 -663
  45. package/sqlite-autoconf-3360000/sqlite3rc.h +0 -3
  46. package/sqlite-autoconf-3360000/tea/Makefile.in +0 -440
  47. package/sqlite-autoconf-3360000/tea/README +0 -36
  48. package/sqlite-autoconf-3360000/tea/aclocal.m4 +0 -9
  49. package/sqlite-autoconf-3360000/tea/configure +0 -9989
  50. package/sqlite-autoconf-3360000/tea/configure.ac +0 -201
  51. package/sqlite-autoconf-3360000/tea/doc/sqlite3.n +0 -15
  52. package/sqlite-autoconf-3360000/tea/generic/tclsqlite3.c +0 -4016
  53. package/sqlite-autoconf-3360000/tea/license.terms +0 -6
  54. package/sqlite-autoconf-3360000/tea/pkgIndex.tcl.in +0 -7
  55. package/sqlite-autoconf-3360000/tea/tclconfig/install-sh +0 -528
  56. package/sqlite-autoconf-3360000/tea/tclconfig/tcl.m4 +0 -4168
  57. package/sqlite-autoconf-3360000/tea/win/makefile.vc +0 -419
  58. package/sqlite-autoconf-3360000/tea/win/nmakehlp.c +0 -815
  59. package/sqlite-autoconf-3360000/tea/win/rules.vc +0 -711
  60. package/sqlmath.js +0 -238
  61. package/test/backup.test.js +0 -279
  62. package/test/blob.test.js +0 -54
  63. package/test/cache.test.js +0 -42
  64. package/test/constants.test.js +0 -44
  65. package/test/database_fail.test.js +0 -153
  66. package/test/each.test.js +0 -39
  67. package/test/exec.test.js +0 -39
  68. package/test/extension.test.js +0 -26
  69. package/test/extension_functions.test.js +0 -29
  70. package/test/fts-content.test.js +0 -13
  71. package/test/interrupt.test.js +0 -80
  72. package/test/issue-108.test.js +0 -28
  73. package/test/json.test.js +0 -22
  74. package/test/map.test.js +0 -63
  75. package/test/named_columns.test.js +0 -38
  76. package/test/named_params.test.js +0 -69
  77. package/test/null_error.test.js +0 -41
  78. package/test/nw/.gitignore +0 -3
  79. package/test/nw/Makefile +0 -39
  80. package/test/nw/index.html +0 -14
  81. package/test/nw/package.json +0 -9
  82. package/test/open_close.test.js +0 -187
  83. package/test/other_objects.test.js +0 -98
  84. package/test/parallel_insert.test.js +0 -44
  85. package/test/prepare.test.js +0 -427
  86. package/test/profile.test.js +0 -57
  87. package/test/rerun.test.js +0 -50
  88. package/test/scheduling.test.js +0 -44
  89. package/test/serialization.test.js +0 -104
  90. package/test/support/createdb-electron.js +0 -10
  91. package/test/support/createdb.js +0 -47
  92. package/test/support/elmo.png +0 -0
  93. package/test/support/helper.js +0 -37
  94. package/test/support/script.sql +0 -70
  95. package/test/trace.test.js +0 -67
  96. package/test/unicode.test.js +0 -114
  97. package/test/upsert.test.js +0 -27
  98. package/test/verbose.test.js +0 -60
  99. package/test.js +0 -141
  100. package/test.slr.mjs +0 -212
@@ -1,427 +0,0 @@
1
- var sqlite3 = require("..");
2
- var assert = require("assert");
3
-
4
- describe("prepare", function() {
5
- describe("invalid SQL", function() {
6
- var db;
7
- before(function(done) { db = new sqlite3.Database(":memory:", done); });
8
-
9
- var stmt;
10
- it("should fail preparing a statement with invalid SQL", function(done) {
11
- stmt = db.prepare("CRATE TALE foo text bar)", function(err, statement) {
12
- if (err && err.errno == sqlite3.ERROR &&
13
- err.message === "SQLITE_ERROR: near \"CRATE\": syntax error") {
14
- done();
15
- }
16
- else throw err;
17
- });
18
- });
19
-
20
- after(function(done) { db.close(done); });
21
- });
22
-
23
- describe("simple prepared statement", function() {
24
- var db;
25
- before(function(done) { db = new sqlite3.Database(":memory:", done); });
26
-
27
- it("should prepare, run and finalize the statement", function(done) {
28
- db.prepare("CREATE TABLE foo (text bar)")
29
- .run()
30
- .finalize(done);
31
- });
32
-
33
- after(function(done) { db.close(done); });
34
- });
35
-
36
- describe("inserting and retrieving rows", function() {
37
- var db;
38
- before(function(done) { db = new sqlite3.Database(":memory:", done); });
39
-
40
- var inserted = 0;
41
- var retrieved = 0;
42
-
43
- // We insert and retrieve that many rows.
44
- var count = 1000;
45
-
46
- it("should create the table", function(done) {
47
- db.prepare("CREATE TABLE foo (txt text, num int, flt float, blb blob)").run().finalize(done);
48
- });
49
-
50
- it("should insert " + count + " rows", function(done) {
51
- for (var i = 0; i < count; i++) {
52
- db.prepare("INSERT INTO foo VALUES(?, ?, ?, ?)").run(
53
- "String " + i,
54
- i,
55
- i * Math.PI,
56
- // null (SQLite sets this implicitly)
57
- function(err) {
58
- if (err) throw err;
59
- inserted++;
60
- }
61
- ).finalize(function(err) {
62
- if (err) throw err;
63
- if (inserted == count) done();
64
- });
65
- }
66
- });
67
-
68
- it("should prepare a statement and run it " + (count + 5) + " times", function(done) {
69
- var stmt = db.prepare("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err) {
70
- if (err) throw err;
71
- assert.equal(stmt.sql, "SELECT txt, num, flt, blb FROM foo ORDER BY num");
72
- });
73
-
74
- for (var i = 0; i < count + 5; i++) (function(i) {
75
- stmt.get(function(err, row) {
76
- if (err) throw err;
77
-
78
- if (retrieved >= 1000) {
79
- assert.equal(row, undefined);
80
- } else {
81
- assert.equal(row.txt, "String " + i);
82
- assert.equal(row.num, i);
83
- assert.equal(row.flt, i * Math.PI);
84
- assert.equal(row.blb, null);
85
- }
86
-
87
- retrieved++;
88
- });
89
- })(i);
90
-
91
- stmt.finalize(done);
92
- });
93
-
94
- it("should have retrieved " + (count + 5) + " rows", function() {
95
- assert.equal(count + 5, retrieved, "Didn't retrieve all rows");
96
- });
97
-
98
-
99
- after(function(done) { db.close(done); });
100
- });
101
-
102
- describe("inserting with accidental undefined", function() {
103
- var db;
104
- before(function(done) { db = new sqlite3.Database(":memory:", done); });
105
-
106
- var inserted = 0;
107
- var retrieved = 0;
108
-
109
- it("should create the table", function(done) {
110
- db.prepare("CREATE TABLE foo (num int)").run().finalize(done);
111
- });
112
-
113
- it("should insert two rows", function(done) {
114
- db.prepare("INSERT INTO foo VALUES(4)").run(function(err) {
115
- if (err) throw err;
116
- inserted++;
117
- }).run(undefined, function (err) {
118
- // The second time we pass undefined as a parameter. This is
119
- // a mistake, but it should either throw an error or be ignored,
120
- // not silently fail to run the statement.
121
- if (err) throw err;
122
- inserted++;
123
- }).finalize(function(err) {
124
- if (err) throw err;
125
- if (inserted == 2) done();
126
- });
127
- });
128
-
129
- it("should retrieve the data", function(done) {
130
- var stmt = db.prepare("SELECT num FROM foo", function(err) {
131
- if (err) throw err;
132
- });
133
-
134
- for (var i = 0; i < 2; i++) (function(i) {
135
- stmt.get(function(err, row) {
136
- if (err) throw err;
137
- assert(row);
138
- assert.equal(row.num, 4);
139
- retrieved++;
140
- });
141
- })(i);
142
-
143
- stmt.finalize(done);
144
- });
145
-
146
- it("should have retrieved two rows", function() {
147
- assert.equal(2, retrieved, "Didn't retrieve all rows");
148
- });
149
-
150
- after(function(done) { db.close(done); });
151
- });
152
-
153
- describe("retrieving reset() function", function() {
154
- var db;
155
- before(function(done) { db = new sqlite3.Database("test/support/prepare.db", sqlite3.OPEN_READONLY, done); });
156
-
157
- var retrieved = 0;
158
-
159
- it("should retrieve the same row over and over again", function(done) {
160
- var stmt = db.prepare("SELECT txt, num, flt, blb FROM foo ORDER BY num");
161
- for (var i = 0; i < 10; i++) {
162
- stmt.reset();
163
- stmt.get(function(err, row) {
164
- if (err) throw err;
165
- assert.equal(row.txt, "String 0");
166
- assert.equal(row.num, 0);
167
- assert.equal(row.flt, 0.0);
168
- assert.equal(row.blb, null);
169
- retrieved++;
170
- });
171
- }
172
- stmt.finalize(done);
173
- });
174
-
175
- it("should have retrieved 10 rows", function() {
176
- assert.equal(10, retrieved, "Didn't retrieve all rows");
177
- });
178
-
179
- after(function(done) { db.close(done); });
180
- });
181
-
182
- describe("multiple get() parameter binding", function() {
183
- var db;
184
- before(function(done) { db = new sqlite3.Database("test/support/prepare.db", sqlite3.OPEN_READONLY, done); });
185
-
186
- var retrieved = 0;
187
-
188
- it("should retrieve particular rows", function(done) {
189
- var stmt = db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num = ?");
190
-
191
- for (var i = 0; i < 10; i++) (function(i) {
192
- stmt.get(i * 10 + 1, function(err, row) {
193
- if (err) throw err;
194
- var val = i * 10 + 1;
195
- assert.equal(row.txt, "String " + val);
196
- assert.equal(row.num, val);
197
- assert.equal(row.flt, val * Math.PI);
198
- assert.equal(row.blb, null);
199
- retrieved++;
200
- });
201
- })(i);
202
-
203
- stmt.finalize(done);
204
- });
205
-
206
- it("should have retrieved 10 rows", function() {
207
- assert.equal(10, retrieved, "Didn't retrieve all rows");
208
- });
209
-
210
- after(function(done) { db.close(done); });
211
- });
212
-
213
- describe("prepare() parameter binding", function() {
214
- var db;
215
- before(function(done) { db = new sqlite3.Database("test/support/prepare.db", sqlite3.OPEN_READONLY, done); });
216
-
217
- var retrieved = 0;
218
-
219
- it("should retrieve particular rows", function(done) {
220
- db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?", 10, "String 10")
221
- .get(function(err, row) {
222
- if (err) throw err;
223
- assert.equal(row.txt, "String 10");
224
- assert.equal(row.num, 10);
225
- assert.equal(row.flt, 10 * Math.PI);
226
- assert.equal(row.blb, null);
227
- retrieved++;
228
- })
229
- .finalize(done);
230
- });
231
-
232
- it("should have retrieved 1 row", function() {
233
- assert.equal(1, retrieved, "Didn't retrieve all rows");
234
- });
235
-
236
- after(function(done) { db.close(done); });
237
- });
238
-
239
- describe("all()", function() {
240
- var db;
241
- before(function(done) { db = new sqlite3.Database("test/support/prepare.db", sqlite3.OPEN_READONLY, done); });
242
-
243
- var retrieved = 0;
244
- var count = 1000;
245
-
246
- it("should retrieve particular rows", function(done) {
247
- db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num < ? ORDER BY num", count)
248
- .all(function(err, rows) {
249
- if (err) throw err;
250
- for (var i = 0; i < rows.length; i++) {
251
- assert.equal(rows[i].txt, "String " + i);
252
- assert.equal(rows[i].num, i);
253
- assert.equal(rows[i].flt, i * Math.PI);
254
- assert.equal(rows[i].blb, null);
255
- retrieved++;
256
- }
257
- })
258
- .finalize(done);
259
- });
260
-
261
- it("should have retrieved all rows", function() {
262
- assert.equal(count, retrieved, "Didn't retrieve all rows");
263
- });
264
-
265
- after(function(done) { db.close(done); });
266
- });
267
-
268
- describe("all()", function() {
269
- var db;
270
- before(function(done) { db = new sqlite3.Database("test/support/prepare.db", sqlite3.OPEN_READONLY, done); });
271
-
272
- it("should retrieve particular rows", function(done) {
273
- db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num > 5000")
274
- .all(function(err, rows) {
275
- if (err) throw err;
276
- assert.ok(rows.length === 0);
277
- })
278
- .finalize(done);
279
- });
280
-
281
- after(function(done) { db.close(done); });
282
- });
283
-
284
- describe("high concurrency", function() {
285
- var db;
286
- before(function(done) { db = new sqlite3.Database(":memory:", done); });
287
-
288
- function randomString() {
289
- var str = "";
290
- for (var i = Math.random() * 300; i > 0; i--) {
291
- str += String.fromCharCode(Math.floor(Math.random() * 256));
292
- }
293
- return str;
294
- }
295
-
296
- // Generate random data.
297
- var data = [];
298
- var length = Math.floor(Math.random() * 1000) + 200;
299
- for (var i = 0; i < length; i++) {
300
- data.push([ randomString(), i, i * Math.random(), null ]);
301
- }
302
-
303
- var inserted = 0;
304
- var retrieved = 0;
305
-
306
- it("should create the table", function(done) {
307
- db.prepare("CREATE TABLE foo (txt text, num int, flt float, blb blob)").run().finalize(done);
308
- });
309
-
310
- it("should insert all values", function(done) {
311
- for (var i = 0; i < data.length; i++) {
312
- var stmt = db.prepare("INSERT INTO foo VALUES(?, ?, ?, ?)");
313
- stmt.run(data[i][0], data[i][1], data[i][2], data[i][3], function(err) {
314
- if (err) throw err;
315
- inserted++;
316
- }).finalize(function(err) {
317
- if (err) throw err;
318
- if (inserted == data.length) done();
319
- });
320
- }
321
- });
322
-
323
- it("should retrieve all values", function(done) {
324
- db.prepare("SELECT txt, num, flt, blb FROM foo")
325
- .all(function(err, rows) {
326
- if (err) throw err;
327
-
328
- for (var i = 0; i < rows.length; i++) {
329
- assert.ok(data[rows[i].num] !== true);
330
-
331
- assert.equal(rows[i].txt, data[rows[i].num][0]);
332
- assert.equal(rows[i].num, data[rows[i].num][1]);
333
- assert.equal(rows[i].flt, data[rows[i].num][2]);
334
- assert.equal(rows[i].blb, data[rows[i].num][3]);
335
-
336
- // Mark the data row as already retrieved.
337
- data[rows[i].num] = true;
338
- retrieved++;
339
-
340
- }
341
-
342
- assert.equal(retrieved, data.length);
343
- assert.equal(retrieved, inserted);
344
- })
345
- .finalize(done);
346
- });
347
-
348
- after(function(done) { db.close(done); });
349
- });
350
-
351
-
352
- describe("test Database#get()", function() {
353
- var db;
354
- before(function(done) { db = new sqlite3.Database("test/support/prepare.db", sqlite3.OPEN_READONLY, done); });
355
-
356
- var retrieved = 0;
357
-
358
- it("should get a row", function(done) {
359
- db.get("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?", 10, "String 10", function(err, row) {
360
- if (err) throw err;
361
- assert.equal(row.txt, "String 10");
362
- assert.equal(row.num, 10);
363
- assert.equal(row.flt, 10 * Math.PI);
364
- assert.equal(row.blb, null);
365
- retrieved++;
366
- done();
367
- });
368
- });
369
-
370
- it("should have retrieved all rows", function() {
371
- assert.equal(1, retrieved, "Didn't retrieve all rows");
372
- });
373
-
374
- after(function(done) { db.close(done); });
375
- });
376
-
377
- describe("Database#run() and Database#all()", function() {
378
- var db;
379
- before(function(done) { db = new sqlite3.Database(":memory:", done); });
380
-
381
- var inserted = 0;
382
- var retrieved = 0;
383
-
384
- // We insert and retrieve that many rows.
385
- var count = 1000;
386
-
387
- it("should create the table", function(done) {
388
- db.run("CREATE TABLE foo (txt text, num int, flt float, blb blob)", done);
389
- });
390
-
391
- it("should insert " + count + " rows", function(done) {
392
- for (var i = 0; i < count; i++) {
393
- db.run("INSERT INTO foo VALUES(?, ?, ?, ?)",
394
- "String " + i,
395
- i,
396
- i * Math.PI,
397
- // null (SQLite sets this implicitly)
398
- function(err) {
399
- if (err) throw err;
400
- inserted++;
401
- if (inserted == count) done();
402
- }
403
- );
404
- }
405
- });
406
-
407
- it("should retrieve all rows", function(done) {
408
- db.all("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err, rows) {
409
- if (err) throw err;
410
- for (var i = 0; i < rows.length; i++) {
411
- assert.equal(rows[i].txt, "String " + i);
412
- assert.equal(rows[i].num, i);
413
- assert.equal(rows[i].flt, i * Math.PI);
414
- assert.equal(rows[i].blb, null);
415
- retrieved++;
416
- }
417
-
418
- assert.equal(retrieved, count);
419
- assert.equal(retrieved, inserted);
420
-
421
- done();
422
- });
423
- });
424
-
425
- after(function(done) { db.close(done); });
426
- });
427
- });
@@ -1,57 +0,0 @@
1
- var sqlite3 = require("..");
2
- var assert = require("assert");
3
-
4
- describe("profiling", function() {
5
- var create = false;
6
- var select = false;
7
-
8
- var db;
9
- before(function(done) {
10
- db = new sqlite3.Database(":memory:", done);
11
-
12
- db.on("profile", function(sql, nsecs) {
13
- assert.ok(typeof nsecs === "number");
14
- if (sql.match(/^SELECT/)) {
15
- assert.ok(!select);
16
- assert.equal(sql, "SELECT * FROM foo");
17
- console.log("profile select");
18
- select = true;
19
- }
20
- else if (sql.match(/^CREATE/)) {
21
- assert.ok(!create);
22
- assert.equal(sql, "CREATE TABLE foo (id int)");
23
- create = true;
24
- }
25
- else {
26
- assert.ok(false);
27
- }
28
- });
29
- });
30
-
31
- it("should profile a create table", function(done) {
32
- assert.ok(!create);
33
- db.run("CREATE TABLE foo (id int)", function(err) {
34
- if (err) throw err;
35
- setImmediate(function() {
36
- assert.ok(create);
37
- done();
38
- });
39
- });
40
- });
41
-
42
-
43
- it("should profile a select", function(done) {
44
- assert.ok(!select);
45
- db.run("SELECT * FROM foo", function(err) {
46
- if (err) throw err;
47
- setImmediate(function() {
48
- assert.ok(select);
49
- done();
50
- }, 0);
51
- });
52
- });
53
-
54
- after(function(done) {
55
- db.close(done);
56
- });
57
- });
@@ -1,50 +0,0 @@
1
- var sqlite3 = require("..");
2
- var assert = require("assert");
3
-
4
- describe("rerunning statements", function() {
5
- var db;
6
- before(function(done) { db = new sqlite3.Database(":memory:", done); });
7
-
8
- var count = 10;
9
- var inserted = 0;
10
- var retrieved = 0;
11
-
12
- it("should create the table", function(done) {
13
- db.run("CREATE TABLE foo (id int)", done);
14
- });
15
-
16
- it("should insert repeatedly, reusing the same statement", function(done) {
17
- var stmt = db.prepare("INSERT INTO foo VALUES(?)");
18
- for (var i = 5; i < count; i++) {
19
- stmt.run(i, function(err) {
20
- if (err) throw err;
21
- inserted++;
22
- });
23
- }
24
- stmt.finalize(done);
25
- });
26
-
27
- it("should retrieve repeatedly, resuing the same statement", function(done) {
28
- var collected = [];
29
- var stmt = db.prepare("SELECT id FROM foo WHERE id = ?");
30
- for (var i = 0; i < count; i++) {
31
- stmt.get(i, function(err, row) {
32
- if (err) throw err;
33
- if (row) collected.push(row);
34
- });
35
- }
36
- stmt.finalize(function(err) {
37
- if (err) throw err;
38
- retrieved += collected.length;
39
- assert.deepEqual(collected, [ { id: 5 }, { id: 6 }, { id: 7 }, { id: 8 }, { id: 9 } ]);
40
- done();
41
- });
42
- });
43
-
44
- it("should have inserted and retrieved the right amount", function() {
45
- assert.equal(inserted, 5);
46
- assert.equal(retrieved, 5);
47
- });
48
-
49
- after(function(done) { db.close(done); });
50
- });
@@ -1,44 +0,0 @@
1
- var sqlite3 = require("..");
2
- var assert = require("assert");
3
-
4
- describe("scheduling", function() {
5
- it("scheduling after the database was closed", function(done) {
6
- var db = new sqlite3.Database(":memory:");
7
- db.on("error", function(err) {
8
- assert.ok(err.message && err.message.indexOf("SQLITE_MISUSE: Database handle is closed") > -1);
9
- done();
10
- });
11
-
12
- db.close();
13
- db.run("CREATE TABLE foo (id int)");
14
- });
15
-
16
-
17
- it("scheduling a query with callback after the database was closed", function(done) {
18
- var db = new sqlite3.Database(":memory:");
19
- db.on("error", function(err) {
20
- assert.ok(false, "Event was accidentally triggered");
21
- });
22
-
23
- db.close();
24
- db.run("CREATE TABLE foo (id int)", function(err) {
25
- assert.ok(err.message && err.message.indexOf("SQLITE_MISUSE: Database handle is closed") > -1);
26
- done();
27
- });
28
- });
29
-
30
- it("running a query after the database was closed", function(done) {
31
- var db = new sqlite3.Database(":memory:");
32
-
33
- var stmt = db.prepare("SELECT * FROM sqlite_master", function(err) {
34
- if (err) throw err;
35
- db.close(function(err) {
36
- assert.ok(err);
37
- assert.ok(err.message && err.message.indexOf("SQLITE_BUSY: unable to close due to") > -1);
38
-
39
- // Running a statement now should not fail.
40
- stmt.run(done);
41
- });
42
- });
43
- });
44
- });
@@ -1,104 +0,0 @@
1
- var sqlite3 = require("..");
2
- var assert = require("assert");
3
-
4
-
5
- describe("serialize() and parallelize()", function() {
6
- var db;
7
- before(function(done) { db = new sqlite3.Database(":memory:", done); });
8
-
9
- var inserted1 = 0;
10
- var inserted2 = 0;
11
- var retrieved = 0;
12
-
13
- var count = 1000;
14
-
15
- it("should toggle", function(done) {
16
- db.serialize();
17
- db.run("CREATE TABLE foo (txt text, num int, flt float, blb blob)");
18
- db.parallelize(done);
19
- });
20
-
21
- it("should insert rows", function() {
22
- var stmt1 = db.prepare("INSERT INTO foo VALUES(?, ?, ?, ?)");
23
- var stmt2 = db.prepare("INSERT INTO foo VALUES(?, ?, ?, ?)");
24
- for (var i = 0; i < count; i++) {
25
- // Interleaved inserts with two statements.
26
- stmt1.run("String " + i, i, i * Math.PI, function(err) {
27
- if (err) throw err;
28
- inserted1++;
29
- });
30
- i++;
31
- stmt2.run("String " + i, i, i * Math.PI, function(err) {
32
- if (err) throw err;
33
- inserted2++;
34
- });
35
- }
36
- stmt1.finalize();
37
- stmt2.finalize();
38
- });
39
-
40
- it("should have inserted all the rows after synchronizing with serialize()", function(done) {
41
- db.serialize();
42
- db.all("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err, rows) {
43
- if (err) throw err;
44
- for (var i = 0; i < rows.length; i++) {
45
- assert.equal(rows[i].txt, "String " + i);
46
- assert.equal(rows[i].num, i);
47
- assert.equal(rows[i].flt, i * Math.PI);
48
- assert.equal(rows[i].blb, null);
49
- retrieved++;
50
- }
51
-
52
- assert.equal(count, inserted1 + inserted2, "Didn't insert all rows");
53
- assert.equal(count, retrieved, "Didn't retrieve all rows");
54
- done();
55
- });
56
- });
57
-
58
- after(function(done) { db.close(done); });
59
- });
60
-
61
- describe("serialize(fn)", function() {
62
- var db;
63
- before(function(done) { db = new sqlite3.Database(":memory:", done); });
64
-
65
- var inserted = 0;
66
- var retrieved = 0;
67
-
68
- var count = 1000;
69
-
70
- it("should call the callback", function(done) {
71
- db.serialize(function() {
72
- db.run("CREATE TABLE foo (txt text, num int, flt float, blb blob)");
73
-
74
- var stmt = db.prepare("INSERT INTO foo VALUES(?, ?, ?, ?)");
75
- for (var i = 0; i < count; i++) {
76
- stmt.run("String " + i, i, i * Math.PI, function(err) {
77
- if (err) throw err;
78
- inserted++;
79
- });
80
- }
81
- stmt.finalize();
82
-
83
- db.all("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err, rows) {
84
- if (err) throw err;
85
- for (var i = 0; i < rows.length; i++) {
86
- assert.equal(rows[i].txt, "String " + i);
87
- assert.equal(rows[i].num, i);
88
- assert.equal(rows[i].flt, i * Math.PI);
89
- assert.equal(rows[i].blb, null);
90
- retrieved++;
91
- }
92
- done();
93
- });
94
- });
95
- });
96
-
97
-
98
- it("should have inserted and retrieved all rows", function() {
99
- assert.equal(count, inserted, "Didn't insert all rows");
100
- assert.equal(count, retrieved, "Didn't retrieve all rows");
101
- });
102
-
103
- after(function(done) { db.close(done); });
104
- });
@@ -1,10 +0,0 @@
1
-
2
- var {app} = require('electron');
3
- var createdb = require('./createdb.js');
4
-
5
- createdb(function () {
6
- setTimeout(function () {
7
- app.quit();
8
- }, 20000);
9
- });
10
-