sqlite-executor 4.0.4 → 4.0.5
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/dist/cjs/index.cjs
CHANGED
|
@@ -340,10 +340,11 @@ function createJsonValueParser(onValue) {
|
|
|
340
340
|
}
|
|
341
341
|
if (consumeUntil > 0) {
|
|
342
342
|
this._consumed = consumeUntil;
|
|
343
|
-
this.readPos = this._consumed;
|
|
343
|
+
this.readPos = -1 !== this.start ? this.buffer.length : this._consumed;
|
|
344
344
|
if (this._consumed > 65536) {
|
|
345
|
+
if (-1 !== this.start) this.start -= this._consumed;
|
|
345
346
|
this.buffer = this.buffer.slice(this._consumed);
|
|
346
|
-
this.readPos =
|
|
347
|
+
this.readPos = this.buffer.length;
|
|
347
348
|
this._consumed = 0;
|
|
348
349
|
}
|
|
349
350
|
} else this.readPos = this.buffer.length;
|
|
@@ -1353,10 +1354,11 @@ function classifySingle(stmt) {
|
|
|
1353
1354
|
return READ_ONLY_KINDS.has(kind) ? "read" : "write";
|
|
1354
1355
|
}
|
|
1355
1356
|
function classifySQL(sql) {
|
|
1356
|
-
if ("string" != typeof sql
|
|
1357
|
+
if ("string" != typeof sql) return "write";
|
|
1357
1358
|
var cached = _classifyCache.get(sql);
|
|
1358
1359
|
if (void 0 !== cached) return cached;
|
|
1359
1360
|
var trimmed = sql.trim();
|
|
1361
|
+
if (0 === trimmed.length) return "write";
|
|
1360
1362
|
var result;
|
|
1361
1363
|
if (trimmed.includes(";")) {
|
|
1362
1364
|
var stmts = trimmed.split(";");
|
|
@@ -1780,7 +1782,7 @@ function buildPayload(sql, token) {
|
|
|
1780
1782
|
return "".concat(normalized).concat(suffix, "\nSELECT '").concat(token, "' AS ").concat(TOKEN_COLUMN, ";\n");
|
|
1781
1783
|
}
|
|
1782
1784
|
function isTransactionControl(sql) {
|
|
1783
|
-
var s = sql.
|
|
1785
|
+
var s = sql.toUpperCase();
|
|
1784
1786
|
return "BEGIN" === s || "BEGIN TRANSACTION" === s || "COMMIT" === s || "COMMIT TRANSACTION" === s || "ROLLBACK" === s || "ROLLBACK TRANSACTION" === s || s.startsWith("BEGIN ") || s.startsWith("COMMIT ") || s.startsWith("ROLLBACK ");
|
|
1785
1787
|
}
|
|
1786
1788
|
function buildBatchPayload(batch) {
|
|
@@ -1847,8 +1849,9 @@ function buildBatchPayload(batch) {
|
|
|
1847
1849
|
}
|
|
1848
1850
|
return parts1.join("");
|
|
1849
1851
|
}
|
|
1852
|
+
var TC_FIRST_CHAR = TOKEN_COLUMN.charCodeAt(0);
|
|
1850
1853
|
function isSentinelRaw(raw, token) {
|
|
1851
|
-
return raw === '[{"'.concat(TOKEN_COLUMN, '":"').concat(token, '"}]');
|
|
1854
|
+
return raw.charCodeAt(3) === TC_FIRST_CHAR && raw === '[{"'.concat(TOKEN_COLUMN, '":"').concat(token, '"}]');
|
|
1852
1855
|
}
|
|
1853
1856
|
function isSentinelRow(value, token) {
|
|
1854
1857
|
var _value_;
|
|
@@ -1914,7 +1917,6 @@ function settleTask(task, error, value, metrics) {
|
|
|
1914
1917
|
var _ref = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : {}, _ref_resetRowParser = _ref.resetRowParser, resetRowParser = void 0 === _ref_resetRowParser ? false : _ref_resetRowParser;
|
|
1915
1918
|
if (task.settled) return;
|
|
1916
1919
|
task.settled = true;
|
|
1917
|
-
clearTimeout(task.timer);
|
|
1918
1920
|
if (resetRowParser) {
|
|
1919
1921
|
var _task_rowParser_reset, _task_rowParser;
|
|
1920
1922
|
null == (_task_rowParser = task.rowParser) || null == (_task_rowParser_reset = _task_rowParser.reset) || _task_rowParser_reset.call(_task_rowParser);
|
|
@@ -1963,8 +1965,6 @@ function finalizePendingTasks(tasks, settle, pumpQueue) {
|
|
|
1963
1965
|
function prepareTaskTimeout(task, metrics) {
|
|
1964
1966
|
if (task.settled) return null;
|
|
1965
1967
|
task.timedout = true;
|
|
1966
|
-
clearTimeout(task.timer);
|
|
1967
|
-
task.timer = null;
|
|
1968
1968
|
null == metrics || metrics.incrementTasksTimeout();
|
|
1969
1969
|
return createTimeoutError(task.timeout, task.sql);
|
|
1970
1970
|
}
|
|
@@ -3093,16 +3093,17 @@ function pipelineEngine_unsupported_iterable_to_array(o, minLen) {
|
|
|
3093
3093
|
if ("Map" === n || "Set" === n) return Array.from(n);
|
|
3094
3094
|
if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return pipelineEngine_array_like_to_array(o, minLen);
|
|
3095
3095
|
}
|
|
3096
|
-
var _queue = /*#__PURE__*/ new WeakMap(), pipelineEngine_inflightTasks = /*#__PURE__*/ new WeakMap(), pipelineEngine_pendingFinalizeTasks = /*#__PURE__*/ new WeakMap(), pipelineEngine_scheduledFinalize = /*#__PURE__*/ new WeakMap(), _sharedValueParser = /*#__PURE__*/ new WeakMap(), pipelineEngine_processManager = /*#__PURE__*/ new WeakMap(), pipelineEngine_metrics = /*#__PURE__*/ new WeakMap(), pipelineEngine_statementTimeout = /*#__PURE__*/ new WeakMap(), pipelineEngine_logger = /*#__PURE__*/ new WeakMap(), pipelineEngine_batchSize = /*#__PURE__*/ new WeakMap(), pipelineEngine_maxInflight = /*#__PURE__*/ new WeakMap(), _onTaskTimeout = /*#__PURE__*/ new WeakMap(), _active = /*#__PURE__*/ new WeakMap(), core_pipelineEngine_pumpQueue = /*#__PURE__*/ new WeakSet(), pipelineEngine_handleParsedValue = /*#__PURE__*/ new WeakSet(), core_pipelineEngine_scheduleFinalizeCheck = /*#__PURE__*/ new WeakSet(), core_pipelineEngine_handleTaskTimeout = /*#__PURE__*/ new WeakSet(), pipelineEngine_settleTask = /*#__PURE__*/ new WeakSet();
|
|
3096
|
+
var _queue = /*#__PURE__*/ new WeakMap(), pipelineEngine_inflightTasks = /*#__PURE__*/ new WeakMap(), pipelineEngine_pendingFinalizeTasks = /*#__PURE__*/ new WeakMap(), pipelineEngine_scheduledFinalize = /*#__PURE__*/ new WeakMap(), _sharedValueParser = /*#__PURE__*/ new WeakMap(), pipelineEngine_processManager = /*#__PURE__*/ new WeakMap(), pipelineEngine_metrics = /*#__PURE__*/ new WeakMap(), pipelineEngine_statementTimeout = /*#__PURE__*/ new WeakMap(), pipelineEngine_logger = /*#__PURE__*/ new WeakMap(), pipelineEngine_batchSize = /*#__PURE__*/ new WeakMap(), pipelineEngine_maxInflight = /*#__PURE__*/ new WeakMap(), _onTaskTimeout = /*#__PURE__*/ new WeakMap(), _active = /*#__PURE__*/ new WeakMap(), _sweepTimer = /*#__PURE__*/ new WeakMap(), _sweepIntervalMs = /*#__PURE__*/ new WeakMap(), core_pipelineEngine_pumpQueue = /*#__PURE__*/ new WeakSet(), pipelineEngine_handleParsedValue = /*#__PURE__*/ new WeakSet(), core_pipelineEngine_scheduleFinalizeCheck = /*#__PURE__*/ new WeakSet(), _scheduleSweep = /*#__PURE__*/ new WeakSet(), core_pipelineEngine_handleTaskTimeout = /*#__PURE__*/ new WeakSet(), pipelineEngine_settleTask = /*#__PURE__*/ new WeakSet();
|
|
3097
3097
|
var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
|
|
3098
3098
|
"use strict";
|
|
3099
3099
|
function PipelineEngine(processManager, param) {
|
|
3100
3100
|
var _this = this;
|
|
3101
|
-
var metrics = param.metrics, statementTimeout = param.statementTimeout, logger = param.logger, _param_batchSize = param.batchSize, batchSize = void 0 === _param_batchSize ? DEFAULT_BATCH_SIZE : _param_batchSize, _param_maxInflight = param.maxInflight, maxInflight = void 0 === _param_maxInflight ? DEFAULT_MAX_INFLIGHT : _param_maxInflight, onTaskTimeout = param.onTaskTimeout;
|
|
3101
|
+
var metrics = param.metrics, statementTimeout = param.statementTimeout, logger = param.logger, _param_batchSize = param.batchSize, batchSize = void 0 === _param_batchSize ? DEFAULT_BATCH_SIZE : _param_batchSize, _param_maxInflight = param.maxInflight, maxInflight = void 0 === _param_maxInflight ? DEFAULT_MAX_INFLIGHT : _param_maxInflight, onTaskTimeout = param.onTaskTimeout, _param_sweepInterval = param.sweepInterval, sweepInterval = void 0 === _param_sweepInterval ? 100 : _param_sweepInterval;
|
|
3102
3102
|
pipelineEngine_class_call_check(this, PipelineEngine);
|
|
3103
3103
|
pipelineEngine_class_private_method_init(this, core_pipelineEngine_pumpQueue);
|
|
3104
3104
|
pipelineEngine_class_private_method_init(this, pipelineEngine_handleParsedValue);
|
|
3105
3105
|
pipelineEngine_class_private_method_init(this, core_pipelineEngine_scheduleFinalizeCheck);
|
|
3106
|
+
pipelineEngine_class_private_method_init(this, _scheduleSweep);
|
|
3106
3107
|
pipelineEngine_class_private_method_init(this, core_pipelineEngine_handleTaskTimeout);
|
|
3107
3108
|
pipelineEngine_class_private_method_init(this, pipelineEngine_settleTask);
|
|
3108
3109
|
pipelineEngine_class_private_field_init(this, _queue, {
|
|
@@ -3157,6 +3158,14 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
|
|
|
3157
3158
|
writable: true,
|
|
3158
3159
|
value: false
|
|
3159
3160
|
});
|
|
3161
|
+
pipelineEngine_class_private_field_init(this, _sweepTimer, {
|
|
3162
|
+
writable: true,
|
|
3163
|
+
value: null
|
|
3164
|
+
});
|
|
3165
|
+
pipelineEngine_class_private_field_init(this, _sweepIntervalMs, {
|
|
3166
|
+
writable: true,
|
|
3167
|
+
value: void 0
|
|
3168
|
+
});
|
|
3160
3169
|
pipelineEngine_class_private_field_set(this, pipelineEngine_processManager, processManager);
|
|
3161
3170
|
pipelineEngine_class_private_field_set(this, pipelineEngine_metrics, metrics);
|
|
3162
3171
|
pipelineEngine_class_private_field_set(this, pipelineEngine_statementTimeout, statementTimeout);
|
|
@@ -3170,8 +3179,15 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
|
|
|
3170
3179
|
pipelineEngine_class_private_field_get(this, pipelineEngine_processManager).setOnDrainCallback(function() {
|
|
3171
3180
|
return pipelineEngine_class_private_method_get(_this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(_this);
|
|
3172
3181
|
});
|
|
3182
|
+
pipelineEngine_class_private_field_set(this, _sweepIntervalMs, sweepInterval);
|
|
3173
3183
|
}
|
|
3174
3184
|
pipelineEngine_create_class(PipelineEngine, [
|
|
3185
|
+
{
|
|
3186
|
+
key: "_sweepTimer",
|
|
3187
|
+
get: function() {
|
|
3188
|
+
return pipelineEngine_class_private_field_get(this, _sweepTimer);
|
|
3189
|
+
}
|
|
3190
|
+
},
|
|
3175
3191
|
{
|
|
3176
3192
|
key: "mainQueue",
|
|
3177
3193
|
get: function() {
|
|
@@ -3222,7 +3238,7 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
|
|
|
3222
3238
|
value: function(chunk) {
|
|
3223
3239
|
var task = pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks)[0];
|
|
3224
3240
|
if (!task) return;
|
|
3225
|
-
if ("stream" === task.kind && task.rowParser && !task.rowParser.finished) {
|
|
3241
|
+
if ("stream" === task.kind && task.rowParser && !task.rowParser.finished && !task.timedout) {
|
|
3226
3242
|
var leftover = task.rowParser.feed(chunk);
|
|
3227
3243
|
if (leftover) pipelineEngine_class_private_field_get(this, _sharedValueParser).feed(leftover);
|
|
3228
3244
|
return;
|
|
@@ -3246,6 +3262,7 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
|
|
|
3246
3262
|
{
|
|
3247
3263
|
key: "rejectAll",
|
|
3248
3264
|
value: function(error) {
|
|
3265
|
+
pipelineEngine_class_private_field_get(this, _sharedValueParser).reset();
|
|
3249
3266
|
var all = pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks);
|
|
3250
3267
|
pipelineEngine_class_private_field_set(this, pipelineEngine_inflightTasks, []);
|
|
3251
3268
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
@@ -3292,6 +3309,8 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
|
|
|
3292
3309
|
key: "kill",
|
|
3293
3310
|
value: function() {
|
|
3294
3311
|
pipelineEngine_class_private_field_set(this, _active, false);
|
|
3312
|
+
clearTimeout(pipelineEngine_class_private_field_get(this, _sweepTimer));
|
|
3313
|
+
pipelineEngine_class_private_field_set(this, _sweepTimer, null);
|
|
3295
3314
|
this.rejectAll(new Error("PipelineEngine is killed"));
|
|
3296
3315
|
}
|
|
3297
3316
|
}
|
|
@@ -3299,7 +3318,6 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
|
|
|
3299
3318
|
return PipelineEngine;
|
|
3300
3319
|
}();
|
|
3301
3320
|
function pipelineEngine_pumpQueue() {
|
|
3302
|
-
var _this = this;
|
|
3303
3321
|
var _$_class_private_field_get;
|
|
3304
3322
|
if (!pipelineEngine_class_private_field_get(this, _active)) return;
|
|
3305
3323
|
if (pipelineEngine_class_private_field_get(this, pipelineEngine_processManager).draining) return;
|
|
@@ -3316,14 +3334,10 @@ function pipelineEngine_pumpQueue() {
|
|
|
3316
3334
|
var payload = buildBatchPayload(batch);
|
|
3317
3335
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
3318
3336
|
try {
|
|
3319
|
-
var
|
|
3320
|
-
var
|
|
3321
|
-
|
|
3322
|
-
|
|
3323
|
-
return pipelineEngine_class_private_method_get(_this, core_pipelineEngine_handleTaskTimeout, pipelineEngine_handleTaskTimeout).call(_this, task);
|
|
3324
|
-
}, task.timeout);
|
|
3325
|
-
};
|
|
3326
|
-
for(var _iterator = batch[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
|
|
3337
|
+
for(var _iterator = batch[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
3338
|
+
var task1 = _step.value;
|
|
3339
|
+
task1.startTime = now;
|
|
3340
|
+
}
|
|
3327
3341
|
} catch (err) {
|
|
3328
3342
|
_didIteratorError = true;
|
|
3329
3343
|
_iteratorError = err;
|
|
@@ -3335,13 +3349,13 @@ function pipelineEngine_pumpQueue() {
|
|
|
3335
3349
|
}
|
|
3336
3350
|
}
|
|
3337
3351
|
(_$_class_private_field_get = pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks)).push.apply(_$_class_private_field_get, pipelineEngine_to_consumable_array(batch));
|
|
3352
|
+
pipelineEngine_class_private_method_get(this, _scheduleSweep, scheduleSweep).call(this);
|
|
3338
3353
|
pipelineEngine_class_private_field_get(this, pipelineEngine_processManager).write(payload);
|
|
3339
3354
|
}
|
|
3340
3355
|
function core_pipelineEngine_handleParsedValue(raw) {
|
|
3341
3356
|
var task = pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks)[0];
|
|
3342
3357
|
if (!task) return;
|
|
3343
3358
|
if (isSentinelRaw(raw, task.token)) {
|
|
3344
|
-
clearTimeout(task.timer);
|
|
3345
3359
|
pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks).shift();
|
|
3346
3360
|
if (task.timedout) return void pipelineEngine_class_private_method_get(this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(this);
|
|
3347
3361
|
if (task.consumerError) {
|
|
@@ -3363,7 +3377,6 @@ function core_pipelineEngine_handleParsedValue(raw) {
|
|
|
3363
3377
|
return;
|
|
3364
3378
|
}
|
|
3365
3379
|
if (isSentinelRow(parsed, task.token)) {
|
|
3366
|
-
clearTimeout(task.timer);
|
|
3367
3380
|
pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks).shift();
|
|
3368
3381
|
if (task.timedout) return void pipelineEngine_class_private_method_get(this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(this);
|
|
3369
3382
|
if (task.consumerError) {
|
|
@@ -3393,6 +3406,20 @@ function pipelineEngine_scheduleFinalizeCheck() {
|
|
|
3393
3406
|
});
|
|
3394
3407
|
});
|
|
3395
3408
|
}
|
|
3409
|
+
function scheduleSweep() {
|
|
3410
|
+
var _this = this;
|
|
3411
|
+
if (pipelineEngine_class_private_field_get(this, _sweepTimer)) return;
|
|
3412
|
+
pipelineEngine_class_private_field_set(this, _sweepTimer, setTimeout(function() {
|
|
3413
|
+
pipelineEngine_class_private_field_set(_this, _sweepTimer, null);
|
|
3414
|
+
var inflight = pipelineEngine_class_private_field_get(_this, pipelineEngine_inflightTasks);
|
|
3415
|
+
var now = performance.now();
|
|
3416
|
+
for(var i = 0; i < inflight.length; i++){
|
|
3417
|
+
var task = inflight[i];
|
|
3418
|
+
if (now - task.startTime > task.timeout) pipelineEngine_class_private_method_get(_this, core_pipelineEngine_handleTaskTimeout, pipelineEngine_handleTaskTimeout).call(_this, task);
|
|
3419
|
+
}
|
|
3420
|
+
if (pipelineEngine_class_private_field_get(_this, pipelineEngine_inflightTasks).length > 0) pipelineEngine_class_private_method_get(_this, _scheduleSweep, scheduleSweep).call(_this);
|
|
3421
|
+
}, pipelineEngine_class_private_field_get(this, _sweepIntervalMs)).unref());
|
|
3422
|
+
}
|
|
3396
3423
|
function pipelineEngine_handleTaskTimeout(task) {
|
|
3397
3424
|
var _this, _this1;
|
|
3398
3425
|
var error = prepareTaskTimeout(task, pipelineEngine_class_private_field_get(this, pipelineEngine_metrics));
|
|
@@ -4032,9 +4059,9 @@ function enqueueWriter(kind, sql, timeout, token, onRow, scopeId) {
|
|
|
4032
4059
|
settled: false,
|
|
4033
4060
|
timer: null,
|
|
4034
4061
|
startTime: 0,
|
|
4035
|
-
rowParser: null
|
|
4062
|
+
rowParser: null,
|
|
4063
|
+
rows: "query" === kind ? [] : null
|
|
4036
4064
|
};
|
|
4037
|
-
if ("query" === kind) task.rows = [];
|
|
4038
4065
|
if ("stream" === kind) task.rowParser = setupStreamParser(task, executor_class_private_field_get(_this, _pipeline));
|
|
4039
4066
|
if (executor_class_private_field_get(_this, _txScope).isDeferred(scopeId)) executor_class_private_field_get(_this, _txScope).defer(task);
|
|
4040
4067
|
else executor_class_private_field_get(_this, _pipeline).enqueue(task);
|