mysql2-core 0.3.1 → 0.3.3
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.
- package/lib/index.js +23 -154
- package/package.json +1 -1
- package/src/index.ts +11 -126
package/lib/index.js
CHANGED
|
@@ -248,152 +248,21 @@ var PoolConnectionManager = (function () {
|
|
|
248
248
|
exports.PoolConnectionManager = PoolConnectionManager;
|
|
249
249
|
function executeBatch(pool, statements, firstSuccess) {
|
|
250
250
|
return __awaiter(this, void 0, void 0, function () {
|
|
251
|
-
var connection;
|
|
252
251
|
return __generator(this, function (_a) {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
else if (statements.length === 1) {
|
|
259
|
-
return [2, execute(pool, statements[0].query, statements[0].params)];
|
|
260
|
-
}
|
|
261
|
-
if (!resource.multipleStatements) return [3, 1];
|
|
262
|
-
if (firstSuccess) {
|
|
263
|
-
return [2, new Promise(function (resolve, reject) {
|
|
264
|
-
pool.getConnection(function (er0, connection) {
|
|
265
|
-
if (er0) {
|
|
266
|
-
return reject(er0);
|
|
267
|
-
}
|
|
268
|
-
connection.beginTransaction(function (er1) {
|
|
269
|
-
if (er1) {
|
|
270
|
-
connection.rollback(function () {
|
|
271
|
-
return reject(er1);
|
|
272
|
-
});
|
|
273
|
-
}
|
|
274
|
-
else {
|
|
275
|
-
connection.execute(statements[0].query, toArray(statements[0].params), function (er2a, results0) {
|
|
276
|
-
if (er2a) {
|
|
277
|
-
connection.rollback(function () {
|
|
278
|
-
return reject(er2a);
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
else {
|
|
282
|
-
if (results0 && results0.affectedRows === 0) {
|
|
283
|
-
connection.commit(function (er3) {
|
|
284
|
-
if (er3) {
|
|
285
|
-
connection.rollback(function () {
|
|
286
|
-
return reject(er3);
|
|
287
|
-
});
|
|
288
|
-
}
|
|
289
|
-
});
|
|
290
|
-
return 0;
|
|
291
|
-
}
|
|
292
|
-
else {
|
|
293
|
-
var queries = [];
|
|
294
|
-
var params = [];
|
|
295
|
-
var l = statements.length;
|
|
296
|
-
for (var j = 1; j < l; j++) {
|
|
297
|
-
var item = statements[j];
|
|
298
|
-
if (item.query.endsWith(";")) {
|
|
299
|
-
queries.push(item.query);
|
|
300
|
-
}
|
|
301
|
-
else {
|
|
302
|
-
queries.push(item.query + ";");
|
|
303
|
-
}
|
|
304
|
-
if (item.params && item.params.length > 0) {
|
|
305
|
-
for (var _i = 0, _a = item.params; _i < _a.length; _i++) {
|
|
306
|
-
var p = _a[_i];
|
|
307
|
-
params.push(p);
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
connection.query(queries.join(""), toArray(params), function (er2, results) {
|
|
312
|
-
if (er2) {
|
|
313
|
-
connection.rollback(function () {
|
|
314
|
-
return reject(er2);
|
|
315
|
-
});
|
|
316
|
-
}
|
|
317
|
-
else {
|
|
318
|
-
connection.commit(function (er3) {
|
|
319
|
-
if (er3) {
|
|
320
|
-
connection.rollback(function () {
|
|
321
|
-
return reject(er3);
|
|
322
|
-
});
|
|
323
|
-
}
|
|
324
|
-
});
|
|
325
|
-
var c = 0;
|
|
326
|
-
c += results0.affectedRows + results.affectedRows;
|
|
327
|
-
return resolve(c);
|
|
328
|
-
}
|
|
329
|
-
});
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
});
|
|
333
|
-
}
|
|
334
|
-
});
|
|
335
|
-
});
|
|
336
|
-
})];
|
|
337
|
-
}
|
|
338
|
-
else {
|
|
339
|
-
return [2, new Promise(function (resolve, reject) {
|
|
340
|
-
pool.getConnection(function (er0, connection) {
|
|
341
|
-
if (er0) {
|
|
342
|
-
return reject(er0);
|
|
343
|
-
}
|
|
344
|
-
connection.beginTransaction(function (er1) {
|
|
345
|
-
if (er1) {
|
|
346
|
-
connection.rollback(function () {
|
|
347
|
-
return reject(er1);
|
|
348
|
-
});
|
|
349
|
-
}
|
|
350
|
-
else {
|
|
351
|
-
var queries_1 = [];
|
|
352
|
-
var params_1 = [];
|
|
353
|
-
statements.forEach(function (item) {
|
|
354
|
-
if (item.query.endsWith(";")) {
|
|
355
|
-
queries_1.push(item.query);
|
|
356
|
-
}
|
|
357
|
-
else {
|
|
358
|
-
queries_1.push(item.query + ";");
|
|
359
|
-
}
|
|
360
|
-
if (item.params && item.params.length > 0) {
|
|
361
|
-
for (var _i = 0, _a = item.params; _i < _a.length; _i++) {
|
|
362
|
-
var p = _a[_i];
|
|
363
|
-
params_1.push(p);
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
});
|
|
367
|
-
connection.query(queries_1.join(""), toArray(params_1), function (er2, results) {
|
|
368
|
-
if (er2) {
|
|
369
|
-
connection.rollback(function () {
|
|
370
|
-
buildError(er2);
|
|
371
|
-
return reject(er2);
|
|
372
|
-
});
|
|
373
|
-
}
|
|
374
|
-
else {
|
|
375
|
-
connection.commit(function (er3) {
|
|
376
|
-
if (er3) {
|
|
377
|
-
connection.rollback(function () {
|
|
378
|
-
return reject(er3);
|
|
379
|
-
});
|
|
380
|
-
}
|
|
381
|
-
});
|
|
382
|
-
return resolve(results.affectedRows);
|
|
383
|
-
}
|
|
384
|
-
});
|
|
385
|
-
}
|
|
386
|
-
});
|
|
387
|
-
});
|
|
388
|
-
})];
|
|
389
|
-
}
|
|
390
|
-
return [3, 3];
|
|
391
|
-
case 1: return [4, getConnection(pool)];
|
|
392
|
-
case 2:
|
|
393
|
-
connection = _a.sent();
|
|
394
|
-
return [2, executeBatchConnectionTx(connection, statements, firstSuccess)];
|
|
395
|
-
case 3: return [2];
|
|
252
|
+
if (!statements || statements.length === 0) {
|
|
253
|
+
return [2, Promise.resolve(0)];
|
|
254
|
+
}
|
|
255
|
+
else if (statements.length === 1) {
|
|
256
|
+
return [2, execute(pool, statements[0].query, statements[0].params)];
|
|
396
257
|
}
|
|
258
|
+
return [2, new Promise(function (resolve, reject) {
|
|
259
|
+
pool.getConnection(function (er0, connection) {
|
|
260
|
+
if (er0) {
|
|
261
|
+
return reject(er0);
|
|
262
|
+
}
|
|
263
|
+
return executeBatchConnectionTx(connection, statements, firstSuccess);
|
|
264
|
+
});
|
|
265
|
+
})];
|
|
397
266
|
});
|
|
398
267
|
});
|
|
399
268
|
}
|
|
@@ -491,23 +360,23 @@ function executeBatchConnectionTx(connection, statements, firstSuccess) {
|
|
|
491
360
|
});
|
|
492
361
|
}
|
|
493
362
|
else {
|
|
494
|
-
var
|
|
495
|
-
var
|
|
363
|
+
var queries_1 = [];
|
|
364
|
+
var params_1 = [];
|
|
496
365
|
statements.forEach(function (item) {
|
|
497
366
|
if (item.query.endsWith(";")) {
|
|
498
|
-
|
|
367
|
+
queries_1.push(item.query);
|
|
499
368
|
}
|
|
500
369
|
else {
|
|
501
|
-
|
|
370
|
+
queries_1.push(item.query + ";");
|
|
502
371
|
}
|
|
503
372
|
if (item.params && item.params.length > 0) {
|
|
504
373
|
for (var _i = 0, _a = item.params; _i < _a.length; _i++) {
|
|
505
374
|
var p = _a[_i];
|
|
506
|
-
|
|
375
|
+
params_1.push(p);
|
|
507
376
|
}
|
|
508
377
|
}
|
|
509
378
|
});
|
|
510
|
-
connection.query(
|
|
379
|
+
connection.query(queries_1.join(""), toArray(params_1), function (er2, results) {
|
|
511
380
|
if (er2) {
|
|
512
381
|
connection.rollback(function () {
|
|
513
382
|
buildError(er2);
|
|
@@ -842,7 +711,7 @@ function count(pool, sql, args) {
|
|
|
842
711
|
return executeScalar(pool, sql, args);
|
|
843
712
|
}
|
|
844
713
|
exports.count = count;
|
|
845
|
-
function save(pool, obj, table, attrs, ver, buildParam
|
|
714
|
+
function save(pool, obj, table, attrs, ver, buildParam) {
|
|
846
715
|
var s = build_1.buildToSave(obj, table, attrs, ver, buildParam);
|
|
847
716
|
if (!s.query) {
|
|
848
717
|
return Promise.resolve(-1);
|
|
@@ -1126,7 +995,7 @@ var MySQLWriter = (function () {
|
|
|
1126
995
|
obj2 = this.map(obj);
|
|
1127
996
|
}
|
|
1128
997
|
var stmt = build_1.buildToSave(obj2, this.table, this.attributes, this.version, this.param);
|
|
1129
|
-
if (stmt) {
|
|
998
|
+
if (stmt.query) {
|
|
1130
999
|
if (this.execute) {
|
|
1131
1000
|
if (this.oneIfSuccess) {
|
|
1132
1001
|
return this.execute(stmt.query, stmt.params).then(function (ct) { return (ct > 0 ? 1 : 0); });
|
|
@@ -1202,7 +1071,7 @@ var MySQLStreamWriter = (function () {
|
|
|
1202
1071
|
else {
|
|
1203
1072
|
var total_1 = this.list.length;
|
|
1204
1073
|
var stmt = build_1.buildToSaveBatch(this.list, this.table, this.attributes, this.version, this.param);
|
|
1205
|
-
if (stmt) {
|
|
1074
|
+
if (stmt.length > 0) {
|
|
1206
1075
|
if (this.executeBatch) {
|
|
1207
1076
|
return this.executeBatch(stmt).then(function (r) {
|
|
1208
1077
|
_this.list = [];
|
|
@@ -1257,7 +1126,7 @@ var MySQLBatchWriter = (function () {
|
|
|
1257
1126
|
}
|
|
1258
1127
|
}
|
|
1259
1128
|
var stmts = build_1.buildToSaveBatch(list, this.table, this.attributes, this.version, this.param);
|
|
1260
|
-
if (stmts
|
|
1129
|
+
if (stmts.length > 0) {
|
|
1261
1130
|
if (this.execute) {
|
|
1262
1131
|
if (this.oneIfSuccess) {
|
|
1263
1132
|
return this.execute(stmts).then(function (ct) { return stmts.length; });
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -204,128 +204,14 @@ export async function executeBatch(pool: Pool, statements: Statement[], firstSuc
|
|
|
204
204
|
} else if (statements.length === 1) {
|
|
205
205
|
return execute(pool, statements[0].query, statements[0].params)
|
|
206
206
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
if (er1) {
|
|
216
|
-
connection.rollback(() => {
|
|
217
|
-
return reject(er1)
|
|
218
|
-
})
|
|
219
|
-
} else {
|
|
220
|
-
connection.execute<ResultSetHeader>(statements[0].query, toArray(statements[0].params), (er2a, results0) => {
|
|
221
|
-
if (er2a) {
|
|
222
|
-
connection.rollback(() => {
|
|
223
|
-
return reject(er2a)
|
|
224
|
-
})
|
|
225
|
-
} else {
|
|
226
|
-
if (results0 && results0.affectedRows === 0) {
|
|
227
|
-
connection.commit((er3) => {
|
|
228
|
-
if (er3) {
|
|
229
|
-
connection.rollback(() => {
|
|
230
|
-
return reject(er3)
|
|
231
|
-
})
|
|
232
|
-
}
|
|
233
|
-
})
|
|
234
|
-
return 0
|
|
235
|
-
} else {
|
|
236
|
-
const queries: string[] = []
|
|
237
|
-
const params: any[] = []
|
|
238
|
-
const l = statements.length
|
|
239
|
-
for (let j = 1; j < l; j++) {
|
|
240
|
-
const item = statements[j]
|
|
241
|
-
if (item.query.endsWith(";")) {
|
|
242
|
-
queries.push(item.query)
|
|
243
|
-
} else {
|
|
244
|
-
queries.push(item.query + ";")
|
|
245
|
-
}
|
|
246
|
-
if (item.params && item.params.length > 0) {
|
|
247
|
-
for (const p of item.params) {
|
|
248
|
-
params.push(p)
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
connection.query<ResultSetHeader>(queries.join(""), toArray(params), (er2, results) => {
|
|
253
|
-
if (er2) {
|
|
254
|
-
connection.rollback(() => {
|
|
255
|
-
return reject(er2)
|
|
256
|
-
})
|
|
257
|
-
} else {
|
|
258
|
-
connection.commit((er3) => {
|
|
259
|
-
if (er3) {
|
|
260
|
-
connection.rollback(() => {
|
|
261
|
-
return reject(er3)
|
|
262
|
-
})
|
|
263
|
-
}
|
|
264
|
-
})
|
|
265
|
-
let c = 0
|
|
266
|
-
c += results0.affectedRows + results.affectedRows
|
|
267
|
-
return resolve(c)
|
|
268
|
-
}
|
|
269
|
-
})
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
})
|
|
273
|
-
}
|
|
274
|
-
})
|
|
275
|
-
})
|
|
276
|
-
})
|
|
277
|
-
} else {
|
|
278
|
-
return new Promise<number>((resolve, reject) => {
|
|
279
|
-
pool.getConnection((er0, connection) => {
|
|
280
|
-
if (er0) {
|
|
281
|
-
return reject(er0)
|
|
282
|
-
}
|
|
283
|
-
connection.beginTransaction((er1) => {
|
|
284
|
-
if (er1) {
|
|
285
|
-
connection.rollback(() => {
|
|
286
|
-
return reject(er1)
|
|
287
|
-
})
|
|
288
|
-
} else {
|
|
289
|
-
const queries: string[] = []
|
|
290
|
-
const params: any[] = []
|
|
291
|
-
statements.forEach((item) => {
|
|
292
|
-
if (item.query.endsWith(";")) {
|
|
293
|
-
queries.push(item.query)
|
|
294
|
-
} else {
|
|
295
|
-
queries.push(item.query + ";")
|
|
296
|
-
}
|
|
297
|
-
if (item.params && item.params.length > 0) {
|
|
298
|
-
for (const p of item.params) {
|
|
299
|
-
params.push(p)
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
})
|
|
303
|
-
connection.query<ResultSetHeader>(queries.join(""), toArray(params), (er2, results) => {
|
|
304
|
-
if (er2) {
|
|
305
|
-
connection.rollback(() => {
|
|
306
|
-
buildError(er2)
|
|
307
|
-
return reject(er2)
|
|
308
|
-
})
|
|
309
|
-
} else {
|
|
310
|
-
connection.commit((er3) => {
|
|
311
|
-
if (er3) {
|
|
312
|
-
connection.rollback(() => {
|
|
313
|
-
return reject(er3)
|
|
314
|
-
})
|
|
315
|
-
}
|
|
316
|
-
})
|
|
317
|
-
return resolve(results.affectedRows)
|
|
318
|
-
}
|
|
319
|
-
})
|
|
320
|
-
}
|
|
321
|
-
})
|
|
322
|
-
})
|
|
323
|
-
})
|
|
324
|
-
}
|
|
325
|
-
} else {
|
|
326
|
-
const connection = await getConnection(pool)
|
|
327
|
-
return executeBatchConnectionTx(connection, statements, firstSuccess)
|
|
328
|
-
}
|
|
207
|
+
return new Promise<number>((resolve, reject) => {
|
|
208
|
+
pool.getConnection((er0, connection) => {
|
|
209
|
+
if (er0) {
|
|
210
|
+
return reject(er0)
|
|
211
|
+
}
|
|
212
|
+
return executeBatchConnectionTx(connection, statements, firstSuccess)
|
|
213
|
+
})
|
|
214
|
+
})
|
|
329
215
|
}
|
|
330
216
|
export async function executeBatchConnectionTx(connection: PoolConnection, statements: Statement[], firstSuccess?: boolean): Promise<number> {
|
|
331
217
|
if (!statements || statements.length === 0) {
|
|
@@ -670,7 +556,6 @@ export function save<T>(
|
|
|
670
556
|
attrs: Attributes,
|
|
671
557
|
ver?: string,
|
|
672
558
|
buildParam?: (i: number) => string,
|
|
673
|
-
i?: number,
|
|
674
559
|
): Promise<number> {
|
|
675
560
|
const s = buildToSave(obj, table, attrs, ver, buildParam)
|
|
676
561
|
if (!s.query) {
|
|
@@ -941,7 +826,7 @@ export class MySQLWriter<T> {
|
|
|
941
826
|
obj2 = this.map(obj)
|
|
942
827
|
}
|
|
943
828
|
const stmt = buildToSave(obj2, this.table, this.attributes, this.version, this.param)
|
|
944
|
-
if (stmt) {
|
|
829
|
+
if (stmt.query) {
|
|
945
830
|
if (this.execute) {
|
|
946
831
|
if (this.oneIfSuccess) {
|
|
947
832
|
return this.execute(stmt.query, stmt.params).then((ct) => (ct > 0 ? 1 : 0))
|
|
@@ -1017,7 +902,7 @@ export class MySQLStreamWriter<T> {
|
|
|
1017
902
|
} else {
|
|
1018
903
|
const total = this.list.length
|
|
1019
904
|
const stmt = buildToSaveBatch(this.list, this.table, this.attributes, this.version, this.param)
|
|
1020
|
-
if (stmt) {
|
|
905
|
+
if (stmt.length > 0) {
|
|
1021
906
|
if (this.executeBatch) {
|
|
1022
907
|
return this.executeBatch(stmt).then((r) => {
|
|
1023
908
|
this.list = []
|
|
@@ -1076,7 +961,7 @@ export class MySQLBatchWriter<T> {
|
|
|
1076
961
|
}
|
|
1077
962
|
}
|
|
1078
963
|
const stmts = buildToSaveBatch(list, this.table, this.attributes, this.version, this.param)
|
|
1079
|
-
if (stmts
|
|
964
|
+
if (stmts.length > 0) {
|
|
1080
965
|
if (this.execute) {
|
|
1081
966
|
if (this.oneIfSuccess) {
|
|
1082
967
|
return this.execute(stmts).then((ct) => stmts.length)
|