@peerbit/indexer-sqlite3 1.1.4 → 1.2.0

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.
Files changed (46) hide show
  1. package/dist/peerbit/sqlite3-bundler-friendly.mjs +7 -7
  2. package/dist/peerbit/sqlite3-node.mjs +7 -7
  3. package/dist/peerbit/sqlite3.js +7 -7
  4. package/dist/peerbit/sqlite3.min.js +688 -168
  5. package/dist/peerbit/sqlite3.mjs +7 -7
  6. package/dist/peerbit/sqlite3.wasm +0 -0
  7. package/dist/peerbit/sqlite3.worker.min.js +19 -5
  8. package/dist/src/engine.d.ts +4 -1
  9. package/dist/src/engine.d.ts.map +1 -1
  10. package/dist/src/engine.js +125 -48
  11. package/dist/src/engine.js.map +1 -1
  12. package/dist/src/query-planner.d.ts +47 -0
  13. package/dist/src/query-planner.d.ts.map +1 -0
  14. package/dist/src/query-planner.js +290 -0
  15. package/dist/src/query-planner.js.map +1 -0
  16. package/dist/src/schema.d.ts +31 -7
  17. package/dist/src/schema.d.ts.map +1 -1
  18. package/dist/src/schema.js +370 -123
  19. package/dist/src/schema.js.map +1 -1
  20. package/dist/src/sqlite3-messages.worker.d.ts +4 -1
  21. package/dist/src/sqlite3-messages.worker.d.ts.map +1 -1
  22. package/dist/src/sqlite3-messages.worker.js.map +1 -1
  23. package/dist/src/sqlite3.browser.d.ts.map +1 -1
  24. package/dist/src/sqlite3.browser.js +7 -0
  25. package/dist/src/sqlite3.browser.js.map +1 -1
  26. package/dist/src/sqlite3.d.ts.map +1 -1
  27. package/dist/src/sqlite3.js +24 -14
  28. package/dist/src/sqlite3.js.map +1 -1
  29. package/dist/src/sqlite3.wasm.d.ts +1 -0
  30. package/dist/src/sqlite3.wasm.d.ts.map +1 -1
  31. package/dist/src/sqlite3.wasm.js +9 -1
  32. package/dist/src/sqlite3.wasm.js.map +1 -1
  33. package/dist/src/sqlite3.worker.js +7 -0
  34. package/dist/src/sqlite3.worker.js.map +1 -1
  35. package/dist/src/types.d.ts +1 -0
  36. package/dist/src/types.d.ts.map +1 -1
  37. package/package.json +4 -4
  38. package/src/engine.ts +143 -68
  39. package/src/query-planner.ts +334 -0
  40. package/src/schema.ts +519 -164
  41. package/src/sqlite3-messages.worker.ts +5 -0
  42. package/src/sqlite3.browser.ts +8 -0
  43. package/src/sqlite3.ts +24 -13
  44. package/src/sqlite3.wasm.ts +11 -1
  45. package/src/sqlite3.worker.ts +6 -1
  46. package/src/types.ts +1 -0
@@ -0,0 +1,290 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ // track timing for optimal index selection
11
+ import { field, serialize, vec } from "@dao-xyz/borsh";
12
+ import { sha256Base64Sync } from "@peerbit/crypto";
13
+ import { And, BigUnsignedIntegerValue, BoolQuery, ByteMatchQuery, Compare, IntegerCompare, IntegerValue, IsNull, Nested, Not, Or, Query, Sort, StringMatch, UnsignedIntegerValue, } from "@peerbit/indexer-interface";
14
+ import { hrtime } from "@peerbit/time";
15
+ import { escapeColumnName } from "./schema.js";
16
+ const getSortedNameKey = (tableName, names) => [tableName, ...names.sort()].join(",");
17
+ const createIndexKey = (tableName, fields) => `${tableName}_index_${fields.map((x) => x).join("_")}`;
18
+ const HALF_MAX_U32 = 2147483647; // rounded down
19
+ const HALF_MAX_U64 = 9223372036854775807n; // rounded down
20
+ export const flattenQuery = function* (props) {
21
+ if (!props) {
22
+ return yield props;
23
+ }
24
+ // if query contains OR statements, split query into multiple queries so we can run each query with union and then sort
25
+ // TODO this only works atm for one OR statement in the query
26
+ let ors = [];
27
+ let ands = [];
28
+ let stack = [...props.query];
29
+ let foundOr = false;
30
+ for (const q of stack) {
31
+ if (q instanceof Or) {
32
+ if (foundOr) {
33
+ // multiple ORs are not supported
34
+ yield props;
35
+ return;
36
+ }
37
+ ors = q.or;
38
+ foundOr = true;
39
+ }
40
+ else if (q instanceof And) {
41
+ for (const a of q.and) {
42
+ stack.push(a);
43
+ }
44
+ }
45
+ else {
46
+ ands.push(q);
47
+ }
48
+ }
49
+ let maxFlatten = 4; // max 4 ORs else the query will be too big
50
+ if (ors.length === 0 || ors.length >= maxFlatten) {
51
+ yield {
52
+ query: ands,
53
+ sort: props.sort,
54
+ };
55
+ return;
56
+ }
57
+ for (const or of ors) {
58
+ yield {
59
+ query: [...ands, ...(Array.isArray(or) ? or : [or])],
60
+ sort: props.sort,
61
+ };
62
+ }
63
+ };
64
+ const reduceResolution = (value) => {
65
+ if (value instanceof UnsignedIntegerValue) {
66
+ return value.number > HALF_MAX_U32
67
+ ? new UnsignedIntegerValue(HALF_MAX_U32)
68
+ : new UnsignedIntegerValue(0);
69
+ }
70
+ if (value instanceof BigUnsignedIntegerValue) {
71
+ return value.value > HALF_MAX_U64
72
+ ? new BigUnsignedIntegerValue(HALF_MAX_U64)
73
+ : new BigUnsignedIntegerValue(0n);
74
+ }
75
+ throw new Error("Unknown integer value type: " + value?.constructor.name);
76
+ };
77
+ const nullifyQuery = (query) => {
78
+ if (query instanceof IntegerCompare) {
79
+ return new IntegerCompare({
80
+ compare: Compare.Equal,
81
+ value: reduceResolution(query.value),
82
+ key: query.key,
83
+ });
84
+ }
85
+ else if (query instanceof StringMatch) {
86
+ return new StringMatch({
87
+ key: query.key,
88
+ value: "",
89
+ method: query.method,
90
+ });
91
+ }
92
+ else if (query instanceof ByteMatchQuery) {
93
+ return new ByteMatchQuery({
94
+ key: query.key,
95
+ value: new Uint8Array(),
96
+ });
97
+ }
98
+ else if (query instanceof BoolQuery) {
99
+ return new BoolQuery({
100
+ key: query.key,
101
+ value: false,
102
+ });
103
+ }
104
+ else if (query instanceof And) {
105
+ let and = [];
106
+ for (const condition of query.and) {
107
+ and.push(nullifyQuery(condition));
108
+ }
109
+ return new And(and);
110
+ }
111
+ else if (query instanceof Or) {
112
+ let or = [];
113
+ for (const condition of query.or) {
114
+ or.push(nullifyQuery(condition));
115
+ }
116
+ return new Or(or);
117
+ }
118
+ else if (query instanceof Not) {
119
+ return new Not(nullifyQuery(query.not));
120
+ }
121
+ else if (query instanceof IsNull) {
122
+ return query;
123
+ }
124
+ else if (query instanceof Nested) {
125
+ // TODO remove
126
+ throw new Error("Unsupported query type, deprecated");
127
+ }
128
+ throw new Error("Unknown query type: " + query?.constructor.name);
129
+ };
130
+ export class PlannableQuery {
131
+ query;
132
+ sort;
133
+ constructor(props) {
134
+ this.query = props.query;
135
+ this.sort = Array.isArray(props.sort)
136
+ ? props.sort
137
+ : props.sort
138
+ ? [props.sort]
139
+ : [];
140
+ }
141
+ get key() {
142
+ let query = this.query.map((x) => nullifyQuery(x));
143
+ let nullifiedPlannableQuery = new PlannableQuery({
144
+ query: query,
145
+ sort: this.sort,
146
+ });
147
+ return sha256Base64Sync(serialize(nullifiedPlannableQuery));
148
+ }
149
+ }
150
+ __decorate([
151
+ field({ type: vec(Query) }),
152
+ __metadata("design:type", Array)
153
+ ], PlannableQuery.prototype, "query", void 0);
154
+ __decorate([
155
+ field({ type: vec(Sort) }),
156
+ __metadata("design:type", Array)
157
+ ], PlannableQuery.prototype, "sort", void 0);
158
+ export class QueryPlanner {
159
+ props;
160
+ stats = new Map();
161
+ pendingIndexCreation = new Map();
162
+ constructor(props) {
163
+ this.props = props;
164
+ }
165
+ async stop() {
166
+ for (const promise of this.pendingIndexCreation.values()) {
167
+ await promise.catch(() => { });
168
+ }
169
+ this.stats.clear();
170
+ }
171
+ scope(query) {
172
+ let obj = this.stats.get(query.key);
173
+ if (obj === undefined) {
174
+ obj = {
175
+ columnsToIndexes: new Map(),
176
+ };
177
+ this.stats.set(query.key, obj);
178
+ }
179
+ // returns a function that takes column names and return the index to use
180
+ let indexCreateCommands = undefined;
181
+ let pickedIndexKeys = new Map(); // index key to column names key
182
+ return {
183
+ beforePrepare: async () => {
184
+ // create missing indices
185
+ if (indexCreateCommands != null) {
186
+ for (const { key, cmd } of indexCreateCommands) {
187
+ if (this.pendingIndexCreation.has(key)) {
188
+ await this.pendingIndexCreation.get(key);
189
+ }
190
+ const promise = this.props.exec(cmd);
191
+ this.pendingIndexCreation.set(key, promise);
192
+ await promise;
193
+ this.pendingIndexCreation.delete(key);
194
+ }
195
+ }
196
+ if (this.pendingIndexCreation.size > 0) {
197
+ for (const picked of pickedIndexKeys.keys()) {
198
+ await this.pendingIndexCreation.get(picked);
199
+ }
200
+ }
201
+ },
202
+ resolveIndex: (tableName, columns) => {
203
+ // first we figure out whether we want to reuse the fastest index or try a new one
204
+ // only assume we either do forward or backward column order for now (not all n! permutations)
205
+ const sortedNameKey = getSortedNameKey(tableName, columns);
206
+ let indexStats = obj.columnsToIndexes.get(sortedNameKey);
207
+ if (indexStats === undefined) {
208
+ indexStats = {
209
+ results: [],
210
+ };
211
+ obj.columnsToIndexes.set(sortedNameKey, indexStats);
212
+ }
213
+ if (indexStats.results.length === 0) {
214
+ // create both forward and backward permutations
215
+ const permutations = generatePermutations(columns);
216
+ for (const columns of permutations) {
217
+ const indexKey = createIndexKey(tableName, columns);
218
+ const command = `create index if not exists ${indexKey} on ${tableName} (${columns.map((n) => escapeColumnName(n)).join(", ")})`;
219
+ (indexCreateCommands || (indexCreateCommands = [])).push({
220
+ cmd: command,
221
+ key: indexKey,
222
+ });
223
+ indexStats.results.push({
224
+ used: 0,
225
+ times: [],
226
+ avg: -1, // setting -1 will force the first time to be the fastest (i.e. new indices are always tested once)
227
+ indexKey,
228
+ });
229
+ }
230
+ }
231
+ // find the fastest index
232
+ let fastestIndex = indexStats.results[0];
233
+ fastestIndex.used++;
234
+ pickedIndexKeys.set(fastestIndex.indexKey, sortedNameKey);
235
+ return fastestIndex.indexKey;
236
+ },
237
+ perform: async (fn) => {
238
+ // perform the query and meaasure time and updates stats for used indices
239
+ let t0 = hrtime.bigint();
240
+ const out = await fn();
241
+ let t1 = hrtime.bigint();
242
+ const time = Number(t1 - t0);
243
+ for (const [indexKey, columnsKey] of pickedIndexKeys) {
244
+ const indexStats = obj.columnsToIndexes.get(columnsKey);
245
+ if (indexStats === undefined) {
246
+ throw new Error("index stats not found");
247
+ }
248
+ const index = indexStats.results.find((x) => x.indexKey === indexKey);
249
+ if (index === undefined) {
250
+ throw new Error("index not found");
251
+ }
252
+ // recalculate the avg by updating the time array and calculating the average
253
+ index.times.push(time);
254
+ if (index.times.length > 20) {
255
+ index.times.shift();
256
+ }
257
+ index.avg =
258
+ index.times.reduce((a, b) => a + b, 0) / index.times.length;
259
+ indexStats.results.sort((a, b) => a.avg - b.avg); // make sure fastest is first
260
+ }
261
+ return out;
262
+ },
263
+ };
264
+ }
265
+ }
266
+ const generatePermutations = (list) => {
267
+ if (list.length === 1)
268
+ return [list];
269
+ return [list, [...list].reverse()];
270
+ };
271
+ /* const generatePermutations = (list: string[]) => {
272
+ const results: string[][] = [];
273
+
274
+ function permute(arr: string[], start: number) {
275
+ if (start === arr.length - 1) {
276
+ results.push([...arr]); // Push a copy of the current permutation
277
+ return;
278
+ }
279
+
280
+ for (let i = start; i < arr.length; i++) {
281
+ [arr[start], arr[i]] = [arr[i], arr[start]]; // Swap
282
+ permute(arr, start + 1); // Recurse
283
+ [arr[start], arr[i]] = [arr[i], arr[start]]; // Swap back (backtrack)
284
+ }
285
+ }
286
+
287
+ permute(list, 0);
288
+ return results;
289
+ } */
290
+ //# sourceMappingURL=query-planner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-planner.js","sourceRoot":"","sources":["../../src/query-planner.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  import { type AbstractType, type Constructor, type Field, type FieldType } from "@dao-xyz/borsh";
2
2
  import * as types from "@peerbit/indexer-interface";
3
+ import { type PlanningSession } from "./query-planner.js";
3
4
  export type SQLLiteValue = string | number | null | bigint | Uint8Array | Int8Array | ArrayBuffer;
4
5
  export type BindableValue = string | bigint | number | Uint8Array | Int8Array | ArrayBuffer | null;
6
+ export declare const u64ToI64: (u64: bigint | number) => bigint;
7
+ export declare const i64ToU64: (i64: number | bigint) => bigint;
5
8
  export declare const convertToSQLType: (value: boolean | bigint | string | number | Uint8Array, type?: FieldType) => BindableValue;
6
- export declare const escapeColumnName: (name: string) => string;
9
+ export declare const escapeColumnName: (name: string, char?: string) => string;
7
10
  export declare class MissingFieldError extends Error {
8
11
  constructor(message: string);
9
12
  }
@@ -16,6 +19,7 @@ type SQLField = {
16
19
  type: string;
17
20
  isPrimary: boolean;
18
21
  from: Field | undefined;
22
+ unwrappedType: FieldType | undefined;
19
23
  path: string[];
20
24
  describesExistenceOfAnother?: string;
21
25
  };
@@ -38,9 +42,10 @@ export interface Table {
38
42
  parent: Table | undefined;
39
43
  referencedInArray: boolean;
40
44
  isSimpleValue: boolean;
45
+ indices: Set<string>;
41
46
  }
42
47
  export declare const getSQLTable: (ctor: AbstractType<any>, path: string[], primary: string | false, inline: boolean, addJoinField: ((fields: SQLField[], constraints: SQLConstraint[]) => void) | undefined, fromOptionalField?: boolean) => Table[];
43
- export declare const getTableName: (path: string[] | undefined, clazz: string | Constructor<any>) => string;
48
+ export declare const getTableName: (path: string[] | undefined, clazz: string | Constructor<any>) => any;
44
49
  export declare const CHILD_TABLE_ID = "__id";
45
50
  export declare const ARRAY_INDEX_COLUMN = "__index";
46
51
  export declare const PARENT_TABLE_ID = "__parent_id";
@@ -64,9 +69,11 @@ export declare const selectAllFieldsFromTables: (tables: Table[], shape: types.S
64
69
  from: string;
65
70
  as: string;
66
71
  }[];
67
- joins: Map<string, JoinTable>;
72
+ joins: Map<string, JoinOrRootTable>;
73
+ groupBy: string | undefined;
68
74
  }[];
69
75
  export declare const selectAllFieldsFromTable: (table: Table, shape: types.Shape | undefined) => {
76
+ groupBy: string | undefined;
70
77
  selects: {
71
78
  from: string;
72
79
  as: string;
@@ -87,21 +94,38 @@ export declare const convertCountRequestToQuery: (request: types.CountOptions |
87
94
  sql: string;
88
95
  bindable: any[];
89
96
  };
90
- export declare const convertSearchRequestToQuery: (request: types.IterateOptions | undefined, tables: Map<string, Table>, rootTables: Table[], options?: {
97
+ export declare const convertSearchRequestToQuery: (request: {
98
+ query: types.Query[];
99
+ sort?: types.Sort[] | types.Sort;
100
+ } | undefined, tables: Map<string, Table>, rootTables: Table[], options?: {
91
101
  shape?: types.Shape | undefined;
92
- stable?: boolean;
102
+ fetchAll?: boolean;
103
+ planner?: PlanningSession;
93
104
  }) => {
94
105
  sql: string;
95
106
  bindable: any[];
96
107
  };
97
- export declare const buildJoin: (joinBuilder: Map<string, JoinTable>, resolveAllColumns: boolean) => string;
98
- export declare const convertQueryToSQLQuery: (query: types.Query, tables: Map<string, Table>, table: Table, joinBuilder: Map<string, JoinTable>, path?: string[], tableAlias?: string | undefined) => {
108
+ export declare const buildJoin: (joinBuilder: Map<string, JoinOrRootTable>, options?: {
109
+ planner?: PlanningSession;
110
+ }) => {
111
+ join: string;
112
+ };
113
+ export declare const convertQueryToSQLQuery: (query: types.Query, tables: Map<string, Table>, table: Table, joinBuilder: Map<string, JoinOrRootTable>, path: string[], tableAlias: string | undefined, skipKeys: number) => {
99
114
  where: string;
100
115
  bindable: any[];
101
116
  };
117
+ type JoinOrRootTable = JoinTable | RootTable;
102
118
  type JoinTable = {
103
119
  table: Table;
104
120
  as: string;
121
+ type: "left" | "cross";
122
+ columns: string[];
123
+ };
124
+ type RootTable = {
125
+ type: "root";
126
+ table: Table;
127
+ as: string;
128
+ columns: string[];
105
129
  };
106
130
  export {};
107
131
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}