@peerbit/indexer-sqlite3 1.2.8 → 1.2.9-12d090c

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.
@@ -7983,6 +7983,16 @@ hrtime.bigint = (time) => {
7983
7983
  return BigInt(diff[0] * NS_PER_SEC + diff[1]);
7984
7984
  };
7985
7985
 
7986
+ // ../../../../node_modules/p-defer/index.js
7987
+ function pDefer() {
7988
+ const deferred = {};
7989
+ deferred.promise = new Promise((resolve, reject) => {
7990
+ deferred.resolve = resolve;
7991
+ deferred.reject = reject;
7992
+ });
7993
+ return deferred;
7994
+ }
7995
+
7986
7996
  // dist/src/schema.js
7987
7997
  var __decorate3 = function(decorators, target, key, desc) {
7988
7998
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -9375,17 +9385,23 @@ var QueryPlanner = class {
9375
9385
  }
9376
9386
  let indexCreateCommands = void 0;
9377
9387
  let pickedIndexKeys = /* @__PURE__ */ new Map();
9388
+ let indexCreationPromiseToAwait = [];
9378
9389
  return {
9379
9390
  beforePrepare: async () => {
9380
9391
  if (indexCreateCommands != null) {
9381
- for (const { key, cmd } of indexCreateCommands) {
9382
- if (this.pendingIndexCreation.has(key)) {
9383
- await this.pendingIndexCreation.get(key);
9392
+ for (const { key, cmd, deferred } of indexCreateCommands) {
9393
+ try {
9394
+ if (this.pendingIndexCreation.has(key)) {
9395
+ await this.pendingIndexCreation.get(key);
9396
+ }
9397
+ const promise = this.props.exec(cmd);
9398
+ this.pendingIndexCreation.set(key, promise);
9399
+ await promise;
9400
+ this.pendingIndexCreation.delete(key);
9401
+ deferred.resolve();
9402
+ } catch (error2) {
9403
+ deferred.reject(error2);
9384
9404
  }
9385
- const promise = this.props.exec(cmd);
9386
- this.pendingIndexCreation.set(key, promise);
9387
- await promise;
9388
- this.pendingIndexCreation.delete(key);
9389
9405
  }
9390
9406
  }
9391
9407
  if (this.pendingIndexCreation.size > 0) {
@@ -9393,6 +9409,7 @@ var QueryPlanner = class {
9393
9409
  await this.pendingIndexCreation.get(picked);
9394
9410
  }
9395
9411
  }
9412
+ await Promise.all(indexCreationPromiseToAwait);
9396
9413
  },
9397
9414
  resolveIndex: (tableName, columns) => {
9398
9415
  const sortedNameKey = getSortedNameKey(tableName, columns);
@@ -9408,21 +9425,32 @@ var QueryPlanner = class {
9408
9425
  for (const columns2 of permutations) {
9409
9426
  const indexKey = createIndexKey(tableName, columns2);
9410
9427
  const command = `create index if not exists ${indexKey} on ${tableName} (${columns2.map((n) => escapeColumnName(n)).join(", ")})`;
9428
+ let deferred = pDefer();
9411
9429
  (indexCreateCommands || (indexCreateCommands = [])).push({
9412
9430
  cmd: command,
9413
- key: indexKey
9431
+ key: indexKey,
9432
+ deferred
9433
+ });
9434
+ let created = false;
9435
+ deferred.promise.then(() => {
9436
+ created = true;
9414
9437
  });
9415
9438
  indexStats.results.push({
9416
9439
  used: 0,
9417
9440
  times: [],
9418
9441
  avg: -1,
9419
9442
  // setting -1 will force the first time to be the fastest (i.e. new indices are always tested once)
9420
- indexKey
9443
+ indexKey,
9444
+ created: () => created,
9445
+ creationPromiseDeferred: deferred
9421
9446
  });
9422
9447
  }
9423
9448
  }
9424
9449
  let fastestIndex = indexStats.results[0];
9425
9450
  fastestIndex.used++;
9451
+ if (!fastestIndex.created()) {
9452
+ indexCreationPromiseToAwait.push(fastestIndex.creationPromiseDeferred.promise);
9453
+ }
9426
9454
  pickedIndexKeys.set(fastestIndex.indexKey, sortedNameKey);
9427
9455
  return fastestIndex.indexKey;
9428
9456
  },
@@ -9940,16 +9968,6 @@ var SQLiteIndices = class _SQLiteIndices {
9940
9968
  }
9941
9969
  };
9942
9970
 
9943
- // ../../../../node_modules/p-defer/index.js
9944
- function pDefer() {
9945
- const deferred = {};
9946
- deferred.promise = new Promise((resolve, reject) => {
9947
- deferred.resolve = resolve;
9948
- deferred.reject = reject;
9949
- });
9950
- return deferred;
9951
- }
9952
-
9953
9971
  // dist/src/sqlite3-messages.worker.js
9954
9972
  var encodeValue = (value) => {
9955
9973
  if (value instanceof Uint8Array) {
@@ -21434,9 +21452,9 @@ var create = async (directory) => {
21434
21452
  if (directory) {
21435
21453
  directory = directory.replace(/^\./, "");
21436
21454
  dbFileName = `${directory}/db.sqlite`;
21455
+ const poolDirectory = `${directory}/peerbit/sqlite-opfs-pool`;
21437
21456
  poolUtil = poolUtil || await sqlite3.installOpfsSAHPoolVfs({
21438
- directory: "peerbit/sqlite"
21439
- // encodeName("peerbit")
21457
+ directory: poolDirectory
21440
21458
  });
21441
21459
  await poolUtil.reserveMinimumCapacity(100);
21442
21460
  sqliteDb = new poolUtil.OpfsSAHPoolDb(dbFileName);
@@ -17350,9 +17350,9 @@ var create = async (directory) => {
17350
17350
  if (directory) {
17351
17351
  directory = directory.replace(/^\./, "");
17352
17352
  dbFileName = `${directory}/db.sqlite`;
17353
+ const poolDirectory = `${directory}/peerbit/sqlite-opfs-pool`;
17353
17354
  poolUtil = poolUtil || await sqlite3.installOpfsSAHPoolVfs({
17354
- directory: "peerbit/sqlite"
17355
- // encodeName("peerbit")
17355
+ directory: poolDirectory
17356
17356
  });
17357
17357
  await poolUtil.reserveMinimumCapacity(100);
17358
17358
  sqliteDb = new poolUtil.OpfsSAHPoolDb(dbFileName);
@@ -1,4 +1,5 @@
1
1
  import { Query, Sort } from "@peerbit/indexer-interface";
2
+ import { type DeferredPromise } from "p-defer";
2
3
  export interface QueryIndexPlanner {
3
4
  columnsToIndexes: Map<string, {
4
5
  results: {
@@ -6,6 +7,8 @@ export interface QueryIndexPlanner {
6
7
  avg: number;
7
8
  times: number[];
8
9
  indexKey: string;
10
+ created: () => boolean;
11
+ creationPromiseDeferred: DeferredPromise<void>;
9
12
  }[];
10
13
  }>;
11
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"query-planner.d.ts","sourceRoot":"","sources":["../../src/query-planner.ts"],"names":[],"mappings":"AAGA,OAAO,EAYN,KAAK,EACL,IAAI,EAGJ,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,iBAAiB;IAGjC,gBAAgB,EAAE,GAAG,CACpB,MAAM,EACN;QACC,OAAO,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,EAAE,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;SACjB,EAAE,CAAC;KACJ,CACD,CAAC;CACF;AAED,KAAK,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAUhD,eAAO,MAAM,YAAY,WAAsB;IAC9C,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;CACrB,KAAG,SAAS,CAAC;IAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;CAAE,GAAG,SAAS,CA4CjE,CAAC;AAgEF,qBAAa,cAAc;IAE1B,KAAK,EAAE,KAAK,EAAE,CAAC;IAGf,IAAI,EAAE,IAAI,EAAE,CAAC;gBAED,KAAK,EAAE;QAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;KAAE;IAS3D,IAAI,GAAG,IAAI,MAAM,CAOhB;CACD;AACD,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAEhE,qBAAa,YAAY;IAMvB,QAAQ,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;KAAE;IALhE,KAAK,EAAE,SAAS,CAAa;IAE7B,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAa;gBAGnD,KAAK,EAAE;QAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;KAAE;IAG1D,IAAI;IAOV,KAAK,CAAC,KAAK,EAAE,cAAc;;kCAkCC,MAAM,WAAW,MAAM,EAAE,KAAG,MAAM;kBAwC5C,CAAC,MAAM,MAAM,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAAC;;CAgCtD"}
1
+ {"version":3,"file":"query-planner.d.ts","sourceRoot":"","sources":["../../src/query-planner.ts"],"names":[],"mappings":"AAGA,OAAO,EAYN,KAAK,EACL,IAAI,EAGJ,MAAM,4BAA4B,CAAC;AAEpC,OAAe,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAGvD,MAAM,WAAW,iBAAiB;IAGjC,gBAAgB,EAAE,GAAG,CACpB,MAAM,EACN;QACC,OAAO,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,EAAE,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC;YACjB,OAAO,EAAE,MAAM,OAAO,CAAC;YACvB,uBAAuB,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;SAC/C,EAAE,CAAC;KACJ,CACD,CAAC;CACF;AAED,KAAK,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAUhD,eAAO,MAAM,YAAY,WAAsB;IAC9C,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;CACrB,KAAG,SAAS,CAAC;IAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;CAAE,GAAG,SAAS,CA4CjE,CAAC;AAgEF,qBAAa,cAAc;IAE1B,KAAK,EAAE,KAAK,EAAE,CAAC;IAGf,IAAI,EAAE,IAAI,EAAE,CAAC;gBAED,KAAK,EAAE;QAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;KAAE;IAS3D,IAAI,GAAG,IAAI,MAAM,CAOhB;CACD;AACD,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAEhE,qBAAa,YAAY;IAMvB,QAAQ,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;KAAE;IALhE,KAAK,EAAE,SAAS,CAAa;IAE7B,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAa;gBAGnD,KAAK,EAAE;QAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;KAAE;IAG1D,IAAI;IAOV,KAAK,CAAC,KAAK,EAAE,cAAc;;kCA6CC,MAAM,WAAW,MAAM,EAAE,KAAG,MAAM;kBAsD5C,CAAC,MAAM,MAAM,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAAC;;CAgCtD"}
@@ -12,6 +12,7 @@ import { field, serialize, vec } from "@dao-xyz/borsh";
12
12
  import { sha256Base64Sync } from "@peerbit/crypto";
13
13
  import { And, BigUnsignedIntegerValue, BoolQuery, ByteMatchQuery, Compare, IntegerCompare, IntegerValue, IsNull, Nested, Not, Or, Query, Sort, StringMatch, UnsignedIntegerValue, } from "@peerbit/indexer-interface";
14
14
  import { hrtime } from "@peerbit/time";
15
+ import pDefer, {} from "p-defer";
15
16
  import { escapeColumnName } from "./schema.js";
16
17
  const getSortedNameKey = (tableName, names) => [tableName, ...names.sort()].join(",");
17
18
  const createIndexKey = (tableName, fields) => `${tableName}_index_${fields.map((x) => x).join("_")}`;
@@ -179,18 +180,26 @@ export class QueryPlanner {
179
180
  // returns a function that takes column names and return the index to use
180
181
  let indexCreateCommands = undefined;
181
182
  let pickedIndexKeys = new Map(); // index key to column names key
183
+ let indexCreationPromiseToAwait = [];
182
184
  return {
183
185
  beforePrepare: async () => {
184
186
  // create missing indices
185
187
  if (indexCreateCommands != null) {
186
- for (const { key, cmd } of indexCreateCommands) {
187
- if (this.pendingIndexCreation.has(key)) {
188
- await this.pendingIndexCreation.get(key);
188
+ for (const { key, cmd, deferred } of indexCreateCommands) {
189
+ try {
190
+ if (this.pendingIndexCreation.has(key)) {
191
+ // TODO is this kind of debouncing needed? how do we end up here?
192
+ await this.pendingIndexCreation.get(key);
193
+ }
194
+ const promise = this.props.exec(cmd);
195
+ this.pendingIndexCreation.set(key, promise);
196
+ await promise;
197
+ this.pendingIndexCreation.delete(key);
198
+ deferred.resolve();
199
+ }
200
+ catch (error) {
201
+ deferred.reject(error);
189
202
  }
190
- const promise = this.props.exec(cmd);
191
- this.pendingIndexCreation.set(key, promise);
192
- await promise;
193
- this.pendingIndexCreation.delete(key);
194
203
  }
195
204
  }
196
205
  if (this.pendingIndexCreation.size > 0) {
@@ -198,6 +207,7 @@ export class QueryPlanner {
198
207
  await this.pendingIndexCreation.get(picked);
199
208
  }
200
209
  }
210
+ await Promise.all(indexCreationPromiseToAwait);
201
211
  },
202
212
  resolveIndex: (tableName, columns) => {
203
213
  // first we figure out whether we want to reuse the fastest index or try a new one
@@ -216,21 +226,32 @@ export class QueryPlanner {
216
226
  for (const columns of permutations) {
217
227
  const indexKey = createIndexKey(tableName, columns);
218
228
  const command = `create index if not exists ${indexKey} on ${tableName} (${columns.map((n) => escapeColumnName(n)).join(", ")})`;
229
+ let deferred = pDefer();
219
230
  (indexCreateCommands || (indexCreateCommands = [])).push({
220
231
  cmd: command,
221
232
  key: indexKey,
233
+ deferred,
234
+ });
235
+ let created = false;
236
+ deferred.promise.then(() => {
237
+ created = true;
222
238
  });
223
239
  indexStats.results.push({
224
240
  used: 0,
225
241
  times: [],
226
242
  avg: -1, // setting -1 will force the first time to be the fastest (i.e. new indices are always tested once)
227
243
  indexKey,
244
+ created: () => created,
245
+ creationPromiseDeferred: deferred,
228
246
  });
229
247
  }
230
248
  }
231
249
  // find the fastest index
232
250
  let fastestIndex = indexStats.results[0];
233
251
  fastestIndex.used++;
252
+ if (!fastestIndex.created()) {
253
+ indexCreationPromiseToAwait.push(fastestIndex.creationPromiseDeferred.promise);
254
+ }
234
255
  pickedIndexKeys.set(fastestIndex.indexKey, sortedNameKey);
235
256
  return fastestIndex.indexKey;
236
257
  },
@@ -1 +1 @@
1
- {"version":3,"file":"query-planner.js","sourceRoot":"","sources":["../../src/query-planner.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA2C;AAC3C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACN,GAAG,EACH,uBAAuB,EACvB,SAAS,EACT,cAAc,EACd,OAAO,EACP,cAAc,EACd,YAAY,EACZ,MAAM,EACN,MAAM,EACN,GAAG,EACH,EAAE,EACF,KAAK,EACL,IAAI,EACJ,WAAW,EACX,oBAAoB,GACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAoB/C,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,KAAe,EAAE,EAAE,CAC/D,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAE,MAAgB,EAAE,EAAE,CAC9D,GAAG,SAAS,UAAU,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAExD,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,eAAe;AAChD,MAAM,YAAY,GAAG,oBAAoB,CAAC,CAAC,eAAe;AAE1D,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC,EAAE,KAGtC;IACA,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,MAAM,KAAK,CAAC;IACpB,CAAC;IACD,uHAAuH;IAEvH,6DAA6D;IAC7D,IAAI,GAAG,GAAY,EAAE,CAAC;IACtB,IAAI,IAAI,GAAY,EAAE,CAAC;IACvB,IAAI,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACrB,IAAI,OAAO,EAAE,CAAC;gBACb,iCAAiC;gBACjC,MAAM,KAAK,CAAC;gBACZ,OAAO;YACR,CAAC;YAED,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,IAAI,CAAC;QAChB,CAAC;aAAM,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YAC7B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;QACF,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;IACF,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,2CAA2C;IAC/D,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;QAClD,MAAM;YACL,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;YAC5C,IAAI,EAAE,KAAK,CAAC,IAAI;SAChB,CAAC;QACF,OAAO;IACR,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM;YACL,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpD,IAAI,EAAE,KAAK,CAAC,IAAI;SAChB,CAAC;IACH,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAmB,EAAgB,EAAE;IAC9D,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC,MAAM,GAAG,YAAY;YACjC,CAAC,CAAC,IAAI,oBAAoB,CAAC,YAAY,CAAC;YACxC,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,YAAY,uBAAuB,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC,KAAK,GAAG,YAAY;YAChC,CAAC,CAAC,IAAI,uBAAuB,CAAC,YAAY,CAAC;YAC3C,CAAC,CAAC,IAAI,uBAAuB,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3E,CAAC,CAAC;AACF,MAAM,YAAY,GAAG,CAAC,KAAY,EAAS,EAAE;IAC5C,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;QACrC,OAAO,IAAI,cAAc,CAAC;YACzB,OAAO,EAAE,OAAO,CAAC,KAAK;YACtB,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;YACpC,GAAG,EAAE,KAAK,CAAC,GAAG;SACd,CAAC,CAAC;IACJ,CAAC;SAAM,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QACzC,OAAO,IAAI,WAAW,CAAC;YACtB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,KAAK,CAAC,MAAM;SACpB,CAAC,CAAC;IACJ,CAAC;SAAM,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;QAC5C,OAAO,IAAI,cAAc,CAAC;YACzB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,KAAK,EAAE,IAAI,UAAU,EAAE;SACvB,CAAC,CAAC;IACJ,CAAC;SAAM,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QACvC,OAAO,IAAI,SAAS,CAAC;YACpB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,KAAK,EAAE,KAAK;SACZ,CAAC,CAAC;IACJ,CAAC;SAAM,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;QACjC,IAAI,GAAG,GAAY,EAAE,CAAC;QACtB,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACnC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;SAAM,IAAI,KAAK,YAAY,EAAE,EAAE,CAAC;QAChC,IAAI,EAAE,GAAY,EAAE,CAAC;QACrB,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YAClC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;SAAM,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;QACjC,OAAO,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;QACpC,cAAc;QACd,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,OAAO,cAAc;IAE1B,KAAK,CAAU;IAGf,IAAI,CAAS;IAEb,YAAY,KAA+C;QAC1D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YACpC,CAAC,CAAC,KAAK,CAAC,IAAI;YACZ,CAAC,CAAC,KAAK,CAAC,IAAI;gBACX,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,CAAC,CAAC,EAAE,CAAC;IACR,CAAC;IAED,IAAI,GAAG;QACN,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,uBAAuB,GAAG,IAAI,cAAc,CAAC;YAChD,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI;SACf,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC7D,CAAC;CACD;AAtBA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;;6CACb;AAGf;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;;4CACd;AAsBd,MAAM,OAAO,YAAY;IAMd;IALV,KAAK,GAAc,IAAI,GAAG,EAAE,CAAC;IAE7B,oBAAoB,GAA+B,IAAI,GAAG,EAAE,CAAC;IAE7D,YACU,KAAsD;QAAtD,UAAK,GAAL,KAAK,CAAiD;IAC7D,CAAC;IAEJ,KAAK,CAAC,IAAI;QACT,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1D,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,KAAqB;QAC1B,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACvB,GAAG,GAAG;gBACL,gBAAgB,EAAE,IAAI,GAAG,EAAE;aAC3B,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,yEAAyE;QACzE,IAAI,mBAAmB,GACtB,SAAS,CAAC;QACX,IAAI,eAAe,GAAwB,IAAI,GAAG,EAAE,CAAC,CAAC,gCAAgC;QACtF,OAAO;YACN,aAAa,EAAE,KAAK,IAAI,EAAE;gBACzB,yBAAyB;gBACzB,IAAI,mBAAmB,IAAI,IAAI,EAAE,CAAC;oBACjC,KAAK,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,mBAAmB,EAAE,CAAC;wBAChD,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;4BACxC,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAC1C,CAAC;wBACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACrC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;wBAC5C,MAAM,OAAO,CAAC;wBACd,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACvC,CAAC;gBACF,CAAC;gBAED,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACxC,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;wBAC7C,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC7C,CAAC;gBACF,CAAC;YACF,CAAC;YACD,YAAY,EAAE,CAAC,SAAiB,EAAE,OAAiB,EAAU,EAAE;gBAC9D,kFAAkF;gBAClF,8FAA8F;gBAC9F,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC3D,IAAI,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACzD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC9B,UAAU,GAAG;wBACZ,OAAO,EAAE,EAAE;qBACX,CAAC;oBACF,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;gBACrD,CAAC;gBAED,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrC,gDAAgD;oBAChD,MAAM,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;oBACnD,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;wBACpC,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;wBACpD,MAAM,OAAO,GAAG,8BAA8B,QAAQ,OAAO,SAAS,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;wBAEjI,CAAC,mBAAmB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;4BACxD,GAAG,EAAE,OAAO;4BACZ,GAAG,EAAE,QAAQ;yBACb,CAAC,CAAC;wBAEH,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;4BACvB,IAAI,EAAE,CAAC;4BACP,KAAK,EAAE,EAAE;4BACT,GAAG,EAAE,CAAC,CAAC,EAAE,mGAAmG;4BAC5G,QAAQ;yBACR,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;gBAED,yBAAyB;gBACzB,IAAI,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzC,YAAY,CAAC,IAAI,EAAE,CAAC;gBACpB,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;gBAE1D,OAAO,YAAY,CAAC,QAAS,CAAC;YAC/B,CAAC;YACD,OAAO,EAAE,KAAK,EAAK,EAAoB,EAAc,EAAE;gBACtD,yEAAyE;gBACzE,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBACzB,MAAM,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;gBACvB,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;gBAE7B,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,eAAe,EAAE,CAAC;oBACtD,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACxD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;wBAC9B,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBAC1C,CAAC;oBACD,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;oBACtE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACzB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;oBACpC,CAAC;oBAED,6EAA6E;oBAC7E,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACvB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;wBAC7B,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACrB,CAAC;oBACD,KAAK,CAAC,GAAG;wBACR,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;oBAE7D,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B;gBAChF,CAAC;gBAED,OAAO,GAAG,CAAC;YACZ,CAAC;SACD,CAAC;IACH,CAAC;CACD;AAED,MAAM,oBAAoB,GAAG,CAAC,IAAc,EAAE,EAAE;IAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACpC,CAAC,CAAC;AACF;;;;;;;;;;;;;;;;;;IAkBI"}
1
+ {"version":3,"file":"query-planner.js","sourceRoot":"","sources":["../../src/query-planner.ts"],"names":[],"mappings":"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"}
@@ -101,10 +101,11 @@ const create = async (directory) => {
101
101
  // TODO show warning if directory is not absolute?
102
102
  directory = directory.replace(/^\./, "");
103
103
  dbFileName = `${directory}/db.sqlite`;
104
+ const poolDirectory = `${directory}/peerbit/sqlite-opfs-pool`;
104
105
  poolUtil =
105
106
  poolUtil ||
106
107
  (await sqlite3.installOpfsSAHPoolVfs({
107
- directory: "peerbit/sqlite", // encodeName("peerbit")
108
+ directory: poolDirectory,
108
109
  }));
109
110
  await poolUtil.reserveMinimumCapacity(100);
110
111
  sqliteDb = new poolUtil.OpfsSAHPoolDb(dbFileName);
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite3.wasm.js","sourceRoot":"","sources":["../../src/sqlite3.wasm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite3.wasm.js","sourceRoot":"","sources":["../../src/sqlite3.wasm.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,80 +1,80 @@
1
1
  {
2
- "name": "@peerbit/indexer-sqlite3",
3
- "version": "1.2.8",
4
- "description": "SQLite index for document store",
5
- "type": "module",
6
- "sideEffects": false,
7
- "types": "./dist/src/index.d.ts",
8
- "typesVersions": {
9
- "*": {
10
- "*": [
11
- "*",
12
- "dist/*",
13
- "dist/src/*",
14
- "dist/src/*/index"
15
- ],
16
- "src/*": [
17
- "*",
18
- "dist/*",
19
- "dist/src/*",
20
- "dist/src/*/index"
21
- ]
22
- }
23
- },
24
- "files": [
25
- "src",
26
- "dist",
27
- "!dist/e2e",
28
- "!dist/test",
29
- "!**/*.tsbuildinfo"
30
- ],
31
- "exports": {
32
- ".": {
33
- "types": "./dist/src/index.d.ts",
34
- "import": "./dist/src/index.js"
35
- },
36
- "./sqlite.org": {
37
- "types": "./dist/peerbit/sqlite.org/sqlite3.d.ts",
38
- "import": "./dist/peerbit/sqlite.org/sqlite3.js"
39
- }
40
- },
41
- "browser": {
42
- "./dist/src/sqlite3.js": "./dist/src/sqlite3.browser.js"
43
- },
44
- "eslintConfig": {
45
- "extends": "peerbit",
46
- "parserOptions": {
47
- "project": true,
48
- "sourceType": "module"
49
- },
50
- "ignorePatterns": [
51
- "!.aegir.js",
52
- "test/ts-use",
53
- "*.d.ts"
54
- ]
55
- },
56
- "publishConfig": {
57
- "access": "public"
58
- },
59
- "scripts": {
60
- "clean": "aegir clean",
61
- "copy-sqlite-wasm": "mkdir -p ./dist/peerbit/ && cp -r ../../../../node_modules/@sqlite.org/sqlite-wasm/sqlite-wasm/jswasm/. ./dist/peerbit/",
62
- "build-worker": "node ../../../../node_modules/esbuild/bin/esbuild --bundle ./src/sqlite3.worker.ts --format=esm --outfile=./dist/peerbit/sqlite3.worker.min.js",
63
- "build": "aegir build && npm run build-worker && npm run copy-sqlite-wasm",
64
- "test": "aegir test",
65
- "test:browser": "aegir clean && aegir test -t browser",
66
- "test:node": "aegir clean && aegir test -t node",
67
- "lint": "aegir lint"
68
- },
69
- "author": "dao.xyz",
70
- "license": "MIT",
71
- "dependencies": {
72
- "better-sqlite3": "^11.8.1",
73
- "@peerbit/indexer-interface": "^2.0.6",
74
- "@sqlite.org/sqlite-wasm": "^3.48.0-build4"
75
- },
76
- "devDependencies": {
77
- "@types/better-sqlite3": "^7.6.12",
78
- "@peerbit/indexer-tests": "^1.1.8"
79
- }
2
+ "name": "@peerbit/indexer-sqlite3",
3
+ "version": "1.2.9-12d090c",
4
+ "description": "SQLite index for document store",
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "types": "./dist/src/index.d.ts",
8
+ "typesVersions": {
9
+ "*": {
10
+ "*": [
11
+ "*",
12
+ "dist/*",
13
+ "dist/src/*",
14
+ "dist/src/*/index"
15
+ ],
16
+ "src/*": [
17
+ "*",
18
+ "dist/*",
19
+ "dist/src/*",
20
+ "dist/src/*/index"
21
+ ]
22
+ }
23
+ },
24
+ "files": [
25
+ "src",
26
+ "dist",
27
+ "!dist/e2e",
28
+ "!dist/test",
29
+ "!**/*.tsbuildinfo"
30
+ ],
31
+ "exports": {
32
+ ".": {
33
+ "types": "./dist/src/index.d.ts",
34
+ "import": "./dist/src/index.js"
35
+ },
36
+ "./sqlite.org": {
37
+ "types": "./dist/peerbit/sqlite.org/sqlite3.d.ts",
38
+ "import": "./dist/peerbit/sqlite.org/sqlite3.js"
39
+ }
40
+ },
41
+ "browser": {
42
+ "./dist/src/sqlite3.js": "./dist/src/sqlite3.browser.js"
43
+ },
44
+ "eslintConfig": {
45
+ "extends": "peerbit",
46
+ "parserOptions": {
47
+ "project": true,
48
+ "sourceType": "module"
49
+ },
50
+ "ignorePatterns": [
51
+ "!.aegir.js",
52
+ "test/ts-use",
53
+ "*.d.ts"
54
+ ]
55
+ },
56
+ "publishConfig": {
57
+ "access": "public"
58
+ },
59
+ "scripts": {
60
+ "clean": "aegir clean",
61
+ "copy-sqlite-wasm": "mkdir -p ./dist/peerbit/ && cp -r ../../../../node_modules/@sqlite.org/sqlite-wasm/sqlite-wasm/jswasm/. ./dist/peerbit/",
62
+ "build-worker": "node ../../../../node_modules/esbuild/bin/esbuild --bundle ./src/sqlite3.worker.ts --format=esm --outfile=./dist/peerbit/sqlite3.worker.min.js",
63
+ "build": "aegir build && npm run build-worker && npm run copy-sqlite-wasm",
64
+ "test": "aegir test",
65
+ "test:browser": "aegir clean && aegir test -t browser",
66
+ "test:node": "aegir clean && aegir test -t node",
67
+ "lint": "aegir lint"
68
+ },
69
+ "author": "dao.xyz",
70
+ "license": "MIT",
71
+ "dependencies": {
72
+ "better-sqlite3": "^11.8.1",
73
+ "@peerbit/indexer-interface": "2.0.6-12d090c",
74
+ "@sqlite.org/sqlite-wasm": "^3.48.0-build4"
75
+ },
76
+ "devDependencies": {
77
+ "@types/better-sqlite3": "^7.6.12",
78
+ "@peerbit/indexer-tests": "1.1.8-12d090c"
79
+ }
80
80
  }
@@ -19,6 +19,7 @@ import {
19
19
  UnsignedIntegerValue,
20
20
  } from "@peerbit/indexer-interface";
21
21
  import { hrtime } from "@peerbit/time";
22
+ import pDefer, { type DeferredPromise } from "p-defer";
22
23
  import { escapeColumnName } from "./schema.js";
23
24
 
24
25
  export interface QueryIndexPlanner {
@@ -32,6 +33,8 @@ export interface QueryIndexPlanner {
32
33
  avg: number;
33
34
  times: number[];
34
35
  indexKey: string;
36
+ created: () => boolean;
37
+ creationPromiseDeferred: DeferredPromise<void>;
35
38
  }[];
36
39
  }
37
40
  >; //
@@ -211,21 +214,30 @@ export class QueryPlanner {
211
214
  }
212
215
 
213
216
  // returns a function that takes column names and return the index to use
214
- let indexCreateCommands: { key: string; cmd: string }[] | undefined =
215
- undefined;
217
+ let indexCreateCommands:
218
+ | { key: string; cmd: string; deferred: DeferredPromise<void> }[]
219
+ | undefined = undefined;
216
220
  let pickedIndexKeys: Map<string, string> = new Map(); // index key to column names key
221
+ let indexCreationPromiseToAwait: Promise<void>[] = [];
217
222
  return {
218
223
  beforePrepare: async () => {
219
224
  // create missing indices
220
225
  if (indexCreateCommands != null) {
221
- for (const { key, cmd } of indexCreateCommands) {
222
- if (this.pendingIndexCreation.has(key)) {
223
- await this.pendingIndexCreation.get(key);
226
+ for (const { key, cmd, deferred } of indexCreateCommands) {
227
+ try {
228
+ if (this.pendingIndexCreation.has(key)) {
229
+ // TODO is this kind of debouncing needed? how do we end up here?
230
+ await this.pendingIndexCreation.get(key);
231
+ }
232
+ const promise = this.props.exec(cmd);
233
+ this.pendingIndexCreation.set(key, promise);
234
+ await promise;
235
+
236
+ this.pendingIndexCreation.delete(key);
237
+ deferred.resolve();
238
+ } catch (error) {
239
+ deferred.reject(error);
224
240
  }
225
- const promise = this.props.exec(cmd);
226
- this.pendingIndexCreation.set(key, promise);
227
- await promise;
228
- this.pendingIndexCreation.delete(key);
229
241
  }
230
242
  }
231
243
 
@@ -234,6 +246,8 @@ export class QueryPlanner {
234
246
  await this.pendingIndexCreation.get(picked);
235
247
  }
236
248
  }
249
+
250
+ await Promise.all(indexCreationPromiseToAwait);
237
251
  },
238
252
  resolveIndex: (tableName: string, columns: string[]): string => {
239
253
  // first we figure out whether we want to reuse the fastest index or try a new one
@@ -254,16 +268,24 @@ export class QueryPlanner {
254
268
  const indexKey = createIndexKey(tableName, columns);
255
269
  const command = `create index if not exists ${indexKey} on ${tableName} (${columns.map((n) => escapeColumnName(n)).join(", ")})`;
256
270
 
271
+ let deferred = pDefer<void>();
257
272
  (indexCreateCommands || (indexCreateCommands = [])).push({
258
273
  cmd: command,
259
274
  key: indexKey,
275
+ deferred,
260
276
  });
261
277
 
278
+ let created = false;
279
+ deferred.promise.then(() => {
280
+ created = true;
281
+ });
262
282
  indexStats.results.push({
263
283
  used: 0,
264
284
  times: [],
265
285
  avg: -1, // setting -1 will force the first time to be the fastest (i.e. new indices are always tested once)
266
286
  indexKey,
287
+ created: () => created,
288
+ creationPromiseDeferred: deferred,
267
289
  });
268
290
  }
269
291
  }
@@ -271,6 +293,12 @@ export class QueryPlanner {
271
293
  // find the fastest index
272
294
  let fastestIndex = indexStats.results[0];
273
295
  fastestIndex.used++;
296
+
297
+ if (!fastestIndex.created()) {
298
+ indexCreationPromiseToAwait.push(
299
+ fastestIndex.creationPromiseDeferred.promise,
300
+ );
301
+ }
274
302
  pickedIndexKeys.set(fastestIndex.indexKey, sortedNameKey);
275
303
 
276
304
  return fastestIndex.indexKey!;
@@ -129,11 +129,11 @@ const create = async (directory?: string) => {
129
129
  directory = directory.replace(/^\./, "");
130
130
 
131
131
  dbFileName = `${directory}/db.sqlite`;
132
-
132
+ const poolDirectory = `${directory}/peerbit/sqlite-opfs-pool`;
133
133
  poolUtil =
134
134
  poolUtil ||
135
135
  (await sqlite3!.installOpfsSAHPoolVfs({
136
- directory: "peerbit/sqlite", // encodeName("peerbit")
136
+ directory: poolDirectory,
137
137
  }));
138
138
 
139
139
  await poolUtil.reserveMinimumCapacity(100);