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.
@@ -173,6 +173,43 @@ function createRowStreamParser(onRow) {
173
173
  index++;
174
174
  continue;
175
175
  }
176
+ if (-1 !== elementEnd) {
177
+ if (isWhitespaceCode(code)) {
178
+ index++;
179
+ continue;
180
+ }
181
+ if (code === CHAR_COMMA || code === CHAR_CLOSE_BRACKET) {
182
+ onRow(buffer.slice(elementStart, elementEnd));
183
+ consumed = index + 1;
184
+ elementStart = -1;
185
+ elementEnd = -1;
186
+ nesting = 0;
187
+ if (code === CHAR_CLOSE_BRACKET) {
188
+ this.finished = true;
189
+ this.buffer = "";
190
+ this.started = false;
191
+ this.inString = false;
192
+ this.escaped = false;
193
+ this.elementStart = -1;
194
+ this.elementEnd = -1;
195
+ this.nesting = 0;
196
+ this._consumed = 0;
197
+ this.readPos = 0;
198
+ return buffer.slice(consumed);
199
+ }
200
+ index = consumed;
201
+ if (consumed > 65536) {
202
+ buffer = buffer.slice(consumed);
203
+ this.buffer = buffer;
204
+ this._consumed = 0;
205
+ index = 0;
206
+ consumed = 0;
207
+ }
208
+ continue;
209
+ }
210
+ index++;
211
+ continue;
212
+ }
176
213
  if (code === CHAR_QUOTE) {
177
214
  inString = true;
178
215
  index++;
@@ -187,42 +224,6 @@ function createRowStreamParser(onRow) {
187
224
  nesting--;
188
225
  if (0 === nesting) elementEnd = index + 1;
189
226
  }
190
- if (-1 !== elementEnd) {
191
- var lookAhead = index + 1;
192
- while(lookAhead < buffer.length && isWhitespaceCode(buffer.charCodeAt(lookAhead)))lookAhead++;
193
- if (lookAhead < buffer.length) {
194
- var delimiter = buffer.charCodeAt(lookAhead);
195
- if (delimiter === CHAR_COMMA || delimiter === CHAR_CLOSE_BRACKET) {
196
- onRow(buffer.slice(elementStart, elementEnd));
197
- consumed = lookAhead + 1;
198
- elementStart = -1;
199
- elementEnd = -1;
200
- nesting = 0;
201
- if (delimiter === CHAR_CLOSE_BRACKET) {
202
- this.finished = true;
203
- this.buffer = "";
204
- this.started = false;
205
- this.inString = false;
206
- this.escaped = false;
207
- this.elementStart = -1;
208
- this.elementEnd = -1;
209
- this.nesting = 0;
210
- this._consumed = 0;
211
- this.readPos = 0;
212
- return buffer.slice(consumed);
213
- }
214
- index = consumed;
215
- if (consumed > 65536) {
216
- buffer = buffer.slice(consumed);
217
- this.buffer = buffer;
218
- this._consumed = 0;
219
- index = 0;
220
- consumed = 0;
221
- }
222
- continue;
223
- }
224
- }
225
- }
226
227
  index++;
227
228
  }
228
229
  this.started = started;
@@ -2242,6 +2243,7 @@ function createFinalizeScheduler(param) {
2242
2243
  var scheduled = false;
2243
2244
  var immediate = null;
2244
2245
  var cancelled = false;
2246
+ var delayedZeroRowQueries = new WeakSet();
2245
2247
  var cancel = function() {
2246
2248
  cancelled = true;
2247
2249
  if (immediate) {
@@ -2257,8 +2259,66 @@ function createFinalizeScheduler(param) {
2257
2259
  immediate = setImmediate(function() {
2258
2260
  immediate = null;
2259
2261
  if (cancelled) return;
2262
+ var delayedTasks = [];
2263
+ var hasQueryRows = Array.from(pendingFinalizeTasks).some(function(task) {
2264
+ return "query" === task.kind && task.rows.length > 0;
2265
+ });
2266
+ if (!(null == pendingStderr ? void 0 : pendingStderr.length) && hasQueryRows) {
2267
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2268
+ try {
2269
+ for(var _iterator = pendingFinalizeTasks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2270
+ var task = _step.value;
2271
+ if ("query" === task.kind && 0 === task.rows.length && !task.stderrText && !task.consumerError && !delayedZeroRowQueries.has(task)) {
2272
+ delayedZeroRowQueries.add(task);
2273
+ delayedTasks.push(task);
2274
+ }
2275
+ }
2276
+ } catch (err) {
2277
+ _didIteratorError = true;
2278
+ _iteratorError = err;
2279
+ } finally{
2280
+ try {
2281
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2282
+ } finally{
2283
+ if (_didIteratorError) throw _iteratorError;
2284
+ }
2285
+ }
2286
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
2287
+ try {
2288
+ for(var _iterator1 = delayedTasks[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
2289
+ var task1 = _step1.value;
2290
+ pendingFinalizeTasks["delete"](task1);
2291
+ }
2292
+ } catch (err) {
2293
+ _didIteratorError1 = true;
2294
+ _iteratorError1 = err;
2295
+ } finally{
2296
+ try {
2297
+ if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
2298
+ } finally{
2299
+ if (_didIteratorError1) throw _iteratorError1;
2300
+ }
2301
+ }
2302
+ }
2260
2303
  finalizePendingTasks(pendingFinalizeTasks, settle, pumpQueue, pendingStderr, inflight);
2304
+ var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
2305
+ try {
2306
+ for(var _iterator2 = delayedTasks[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
2307
+ var task2 = _step2.value;
2308
+ pendingFinalizeTasks.add(task2);
2309
+ }
2310
+ } catch (err) {
2311
+ _didIteratorError2 = true;
2312
+ _iteratorError2 = err;
2313
+ } finally{
2314
+ try {
2315
+ if (!_iteratorNormalCompletion2 && null != _iterator2["return"]) _iterator2["return"]();
2316
+ } finally{
2317
+ if (_didIteratorError2) throw _iteratorError2;
2318
+ }
2319
+ }
2261
2320
  scheduled = false;
2321
+ if (delayedTasks.length > 0) check();
2262
2322
  });
2263
2323
  };
2264
2324
  check.cancel = cancel;
@@ -2356,7 +2416,7 @@ function handleSentinelTask(task, param) {
2356
2416
  pumpQueue();
2357
2417
  }
2358
2418
  function handleStderrChunk(chunk, param) {
2359
- var inflight = param.inflight, pendingFinalizeTasks = param.pendingFinalizeTasks, logger = param.logger, pendingStderr = param.pendingStderr;
2419
+ var inflight = param.inflight, pendingFinalizeTasks = param.pendingFinalizeTasks, logger = param.logger, pendingStderr = param.pendingStderr, hasFinalizedZeroRowQuery = param.hasFinalizedZeroRowQuery;
2360
2420
  var inflightFirst = inflight.first;
2361
2421
  var firstPending = pendingFinalizeTasks.values().next().value;
2362
2422
  var zeroRowMatch = false;
@@ -2440,11 +2500,15 @@ function handleStderrChunk(chunk, param) {
2440
2500
  else if ("query" === task.kind && task.rows.length > 0) {
2441
2501
  var _logger_error1;
2442
2502
  null == logger || null == (_logger_error1 = logger.error) || _logger_error1.call(logger, chunk.trim());
2443
- } else task.stderrText += chunk;
2503
+ } else if ("query" === task.kind && 0 === task.rows.length) if (hasFinalizedZeroRowQuery) null == pendingStderr || pendingStderr.push(chunk);
2504
+ else task.stderrText += chunk;
2505
+ else task.stderrText += chunk;
2444
2506
  } else if ("query" === task.kind && task.rows.length > 0) {
2445
2507
  var _logger_error2;
2446
2508
  null == logger || null == (_logger_error2 = logger.error) || _logger_error2.call(logger, chunk.trim());
2447
- } else task.stderrText += chunk;
2509
+ } else if ("query" === task.kind && 0 === task.rows.length) if (hasFinalizedZeroRowQuery) null == pendingStderr || pendingStderr.push(chunk);
2510
+ else task.stderrText += chunk;
2511
+ else task.stderrText += chunk;
2448
2512
  return;
2449
2513
  }
2450
2514
  var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;
@@ -3526,7 +3590,7 @@ function pipelineEngine_create_class(Constructor, protoProps, staticProps) {
3526
3590
  if (staticProps) pipelineEngine_defineProperties(Constructor, staticProps);
3527
3591
  return Constructor;
3528
3592
  }
3529
- 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();
3593
+ 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();
3530
3594
  var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3531
3595
  "use strict";
3532
3596
  function PipelineEngine(processManager, param) {
@@ -3601,6 +3665,10 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3601
3665
  writable: true,
3602
3666
  value: []
3603
3667
  });
3668
+ pipelineEngine_class_private_field_init(this, _hasFinalizedZeroRowQuery, {
3669
+ writable: true,
3670
+ value: false
3671
+ });
3604
3672
  pipelineEngine_class_private_field_set(this, pipelineEngine_processManager, processManager);
3605
3673
  pipelineEngine_class_private_field_set(this, pipelineEngine_metrics, metrics);
3606
3674
  pipelineEngine_class_private_field_set(this, pipelineEngine_statementTimeout, statementTimeout);
@@ -3726,7 +3794,8 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
3726
3794
  inflight: pipelineEngine_class_private_field_get(this, pipelineEngine_inflight),
3727
3795
  pendingFinalizeTasks: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingFinalizeTasks),
3728
3796
  logger: pipelineEngine_class_private_field_get(this, pipelineEngine_logger),
3729
- pendingStderr: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingStderr)
3797
+ pendingStderr: pipelineEngine_class_private_field_get(this, pipelineEngine_pendingStderr),
3798
+ hasFinalizedZeroRowQuery: pipelineEngine_class_private_field_get(this, _hasFinalizedZeroRowQuery)
3730
3799
  });
3731
3800
  }
3732
3801
  },
@@ -3779,6 +3848,8 @@ function pipelineEngine_afterSentinel(task) {
3779
3848
  });
3780
3849
  }
3781
3850
  function pipelineEngine_settleTask1(task, error, value) {
3851
+ var _task_rows;
3852
+ if ("query" === task.kind && (null == (_task_rows = task.rows) ? void 0 : _task_rows.length) === 0) pipelineEngine_class_private_field_set(this, _hasFinalizedZeroRowQuery, true);
3782
3853
  settleUtils_settleTask(task, error, value, pipelineEngine_class_private_field_get(this, pipelineEngine_metrics), {
3783
3854
  resetRowParser: true
3784
3855
  });