sqlite-executor 4.0.8 → 4.0.10

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.
@@ -225,6 +225,43 @@ function createRowStreamParser(onRow) {
225
225
  index++;
226
226
  continue;
227
227
  }
228
+ if (-1 !== elementEnd) {
229
+ if (isWhitespaceCode(code)) {
230
+ index++;
231
+ continue;
232
+ }
233
+ if (code === CHAR_COMMA || code === CHAR_CLOSE_BRACKET) {
234
+ onRow(buffer.slice(elementStart, elementEnd));
235
+ consumed = index + 1;
236
+ elementStart = -1;
237
+ elementEnd = -1;
238
+ nesting = 0;
239
+ if (code === CHAR_CLOSE_BRACKET) {
240
+ this.finished = true;
241
+ this.buffer = "";
242
+ this.started = false;
243
+ this.inString = false;
244
+ this.escaped = false;
245
+ this.elementStart = -1;
246
+ this.elementEnd = -1;
247
+ this.nesting = 0;
248
+ this._consumed = 0;
249
+ this.readPos = 0;
250
+ return buffer.slice(consumed);
251
+ }
252
+ index = consumed;
253
+ if (consumed > 65536) {
254
+ buffer = buffer.slice(consumed);
255
+ this.buffer = buffer;
256
+ this._consumed = 0;
257
+ index = 0;
258
+ consumed = 0;
259
+ }
260
+ continue;
261
+ }
262
+ index++;
263
+ continue;
264
+ }
228
265
  if (code === CHAR_QUOTE) {
229
266
  inString = true;
230
267
  index++;
@@ -239,42 +276,6 @@ function createRowStreamParser(onRow) {
239
276
  nesting--;
240
277
  if (0 === nesting) elementEnd = index + 1;
241
278
  }
242
- if (-1 !== elementEnd) {
243
- var lookAhead = index + 1;
244
- while(lookAhead < buffer.length && isWhitespaceCode(buffer.charCodeAt(lookAhead)))lookAhead++;
245
- if (lookAhead < buffer.length) {
246
- var delimiter = buffer.charCodeAt(lookAhead);
247
- if (delimiter === CHAR_COMMA || delimiter === CHAR_CLOSE_BRACKET) {
248
- onRow(buffer.slice(elementStart, elementEnd));
249
- consumed = lookAhead + 1;
250
- elementStart = -1;
251
- elementEnd = -1;
252
- nesting = 0;
253
- if (delimiter === CHAR_CLOSE_BRACKET) {
254
- this.finished = true;
255
- this.buffer = "";
256
- this.started = false;
257
- this.inString = false;
258
- this.escaped = false;
259
- this.elementStart = -1;
260
- this.elementEnd = -1;
261
- this.nesting = 0;
262
- this._consumed = 0;
263
- this.readPos = 0;
264
- return buffer.slice(consumed);
265
- }
266
- index = consumed;
267
- if (consumed > 65536) {
268
- buffer = buffer.slice(consumed);
269
- this.buffer = buffer;
270
- this._consumed = 0;
271
- index = 0;
272
- consumed = 0;
273
- }
274
- continue;
275
- }
276
- }
277
- }
278
279
  index++;
279
280
  }
280
281
  this.started = started;
@@ -2302,6 +2303,7 @@ function createFinalizeScheduler(param) {
2302
2303
  var scheduled = false;
2303
2304
  var immediate = null;
2304
2305
  var cancelled = false;
2306
+ var delayedZeroRowQueries = new WeakSet();
2305
2307
  var cancel = function() {
2306
2308
  cancelled = true;
2307
2309
  if (immediate) {
@@ -2317,8 +2319,66 @@ function createFinalizeScheduler(param) {
2317
2319
  immediate = setImmediate(function() {
2318
2320
  immediate = null;
2319
2321
  if (cancelled) return;
2322
+ var delayedTasks = [];
2323
+ var hasQueryRows = Array.from(pendingFinalizeTasks).some(function(task) {
2324
+ return "query" === task.kind && task.rows.length > 0;
2325
+ });
2326
+ if (!(null == pendingStderr ? void 0 : pendingStderr.length) && hasQueryRows) {
2327
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2328
+ try {
2329
+ for(var _iterator = pendingFinalizeTasks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2330
+ var task = _step.value;
2331
+ if ("query" === task.kind && 0 === task.rows.length && !task.stderrText && !task.consumerError && !delayedZeroRowQueries.has(task)) {
2332
+ delayedZeroRowQueries.add(task);
2333
+ delayedTasks.push(task);
2334
+ }
2335
+ }
2336
+ } catch (err) {
2337
+ _didIteratorError = true;
2338
+ _iteratorError = err;
2339
+ } finally{
2340
+ try {
2341
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2342
+ } finally{
2343
+ if (_didIteratorError) throw _iteratorError;
2344
+ }
2345
+ }
2346
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
2347
+ try {
2348
+ for(var _iterator1 = delayedTasks[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
2349
+ var task1 = _step1.value;
2350
+ pendingFinalizeTasks["delete"](task1);
2351
+ }
2352
+ } catch (err) {
2353
+ _didIteratorError1 = true;
2354
+ _iteratorError1 = err;
2355
+ } finally{
2356
+ try {
2357
+ if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
2358
+ } finally{
2359
+ if (_didIteratorError1) throw _iteratorError1;
2360
+ }
2361
+ }
2362
+ }
2320
2363
  finalizePendingTasks(pendingFinalizeTasks, settle, pumpQueue, pendingStderr, inflight);
2364
+ var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
2365
+ try {
2366
+ for(var _iterator2 = delayedTasks[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
2367
+ var task2 = _step2.value;
2368
+ pendingFinalizeTasks.add(task2);
2369
+ }
2370
+ } catch (err) {
2371
+ _didIteratorError2 = true;
2372
+ _iteratorError2 = err;
2373
+ } finally{
2374
+ try {
2375
+ if (!_iteratorNormalCompletion2 && null != _iterator2["return"]) _iterator2["return"]();
2376
+ } finally{
2377
+ if (_didIteratorError2) throw _iteratorError2;
2378
+ }
2379
+ }
2321
2380
  scheduled = false;
2381
+ if (delayedTasks.length > 0) check();
2322
2382
  });
2323
2383
  };
2324
2384
  check.cancel = cancel;
@@ -2416,7 +2476,7 @@ function handleSentinelTask(task, param) {
2416
2476
  pumpQueue();
2417
2477
  }
2418
2478
  function handleStderrChunk(chunk, param) {
2419
- var inflight = param.inflight, pendingFinalizeTasks = param.pendingFinalizeTasks, logger = param.logger, pendingStderr = param.pendingStderr;
2479
+ var inflight = param.inflight, pendingFinalizeTasks = param.pendingFinalizeTasks, logger = param.logger, pendingStderr = param.pendingStderr, hasFinalizedZeroRowQuery = param.hasFinalizedZeroRowQuery;
2420
2480
  var inflightFirst = inflight.first;
2421
2481
  var firstPending = pendingFinalizeTasks.values().next().value;
2422
2482
  var zeroRowMatch = false;
@@ -2500,11 +2560,15 @@ function handleStderrChunk(chunk, param) {
2500
2560
  else if ("query" === task.kind && task.rows.length > 0) {
2501
2561
  var _logger_error1;
2502
2562
  null == logger || null == (_logger_error1 = logger.error) || _logger_error1.call(logger, chunk.trim());
2503
- } else task.stderrText += chunk;
2563
+ } else if ("query" === task.kind && 0 === task.rows.length) if (hasFinalizedZeroRowQuery) null == pendingStderr || pendingStderr.push(chunk);
2564
+ else task.stderrText += chunk;
2565
+ else task.stderrText += chunk;
2504
2566
  } else if ("query" === task.kind && task.rows.length > 0) {
2505
2567
  var _logger_error2;
2506
2568
  null == logger || null == (_logger_error2 = logger.error) || _logger_error2.call(logger, chunk.trim());
2507
- } else task.stderrText += chunk;
2569
+ } else if ("query" === task.kind && 0 === task.rows.length) if (hasFinalizedZeroRowQuery) null == pendingStderr || pendingStderr.push(chunk);
2570
+ else task.stderrText += chunk;
2571
+ else task.stderrText += chunk;
2508
2572
  return;
2509
2573
  }
2510
2574
  var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;
@@ -3586,7 +3650,7 @@ function pipelineEngine_create_class(Constructor, protoProps, staticProps) {
3586
3650
  if (staticProps) pipelineEngine_defineProperties(Constructor, staticProps);
3587
3651
  return Constructor;
3588
3652
  }
3589
- var _queue = /*#__PURE__*/ new WeakMap(), pipelineEngine_inflight = /*#__PURE__*/ new WeakMap(), pipelineEngine_pendingFinalizeTasks = /*#__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(), pipelineEngine_sweeper = /*#__PURE__*/ new WeakMap(), pipelineEngine_scheduleFinalizeCheck = /*#__PURE__*/ new WeakMap(), pipelineEngine_pump = /*#__PURE__*/ new WeakMap(), pipelineEngine_pendingStderr = /*#__PURE__*/ new WeakMap(), core_pipelineEngine_pumpQueue = /*#__PURE__*/ new WeakSet(), core_pipelineEngine_afterSentinel = /*#__PURE__*/ new WeakSet(), pipelineEngine_settleTask = /*#__PURE__*/ new WeakSet();
3653
+ var _queue = /*#__PURE__*/ new WeakMap(), pipelineEngine_inflight = /*#__PURE__*/ new WeakMap(), pipelineEngine_pendingFinalizeTasks = /*#__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(), pipelineEngine_sweeper = /*#__PURE__*/ new WeakMap(), pipelineEngine_scheduleFinalizeCheck = /*#__PURE__*/ new WeakMap(), pipelineEngine_pump = /*#__PURE__*/ new WeakMap(), pipelineEngine_pendingStderr = /*#__PURE__*/ new WeakMap(), _hasFinalizedZeroRowQuery = /*#__PURE__*/ new WeakMap(), core_pipelineEngine_pumpQueue = /*#__PURE__*/ new WeakSet(), core_pipelineEngine_afterSentinel = /*#__PURE__*/ new WeakSet(), pipelineEngine_settleTask = /*#__PURE__*/ new WeakSet();
3590
3654
  var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3591
3655
  "use strict";
3592
3656
  function PipelineEngine(processManager, param) {
@@ -3661,6 +3725,10 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3661
3725
  writable: true,
3662
3726
  value: []
3663
3727
  });
3728
+ pipelineEngine_class_private_field_init(this, _hasFinalizedZeroRowQuery, {
3729
+ writable: true,
3730
+ value: false
3731
+ });
3664
3732
  pipelineEngine_class_private_field_set(this, pipelineEngine_processManager, processManager);
3665
3733
  pipelineEngine_class_private_field_set(this, pipelineEngine_metrics, metrics);
3666
3734
  pipelineEngine_class_private_field_set(this, pipelineEngine_statementTimeout, statementTimeout);
@@ -3786,7 +3854,8 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3786
3854
  inflight: pipelineEngine_class_private_field_get(this, pipelineEngine_inflight),
3787
3855
  pendingFinalizeTasks: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks),
3788
3856
  logger: pipelineEngine_class_private_field_get(this, pipelineEngine_logger),
3789
- pendingStderr: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingStderr)
3857
+ pendingStderr: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingStderr),
3858
+ hasFinalizedZeroRowQuery: pipelineEngine_class_private_field_get(this, _hasFinalizedZeroRowQuery)
3790
3859
  });
3791
3860
  }
3792
3861
  },
@@ -3839,6 +3908,8 @@ function pipelineEngine_afterSentinel(task) {
3839
3908
  });
3840
3909
  }
3841
3910
  function pipelineEngine_settleTask1(task, error, value) {
3911
+ var _task_rows;
3912
+ if ("query" === task.kind && (null == (_task_rows = task.rows) ? void 0 : _task_rows.length) === 0) pipelineEngine_class_private_field_set(this, _hasFinalizedZeroRowQuery, true);
3842
3913
  settleUtils_settleTask(task, error, value, pipelineEngine_class_private_field_get(this, pipelineEngine_metrics), {
3843
3914
  resetRowParser: true
3844
3915
  });