@peerbit/indexer-sqlite3 1.1.2 → 1.1.3
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/peerbit/sqlite3.min.js +88 -30
- package/dist/src/engine.d.ts.map +1 -1
- package/dist/src/engine.js +23 -12
- package/dist/src/engine.js.map +1 -1
- package/dist/src/schema.d.ts +7 -1
- package/dist/src/schema.d.ts.map +1 -1
- package/dist/src/schema.js +47 -14
- package/dist/src/schema.js.map +1 -1
- package/dist/src/sqlite3.d.ts.map +1 -1
- package/dist/src/sqlite3.js +2 -1
- package/dist/src/sqlite3.js.map +1 -1
- package/package.json +3 -3
- package/src/engine.ts +36 -18
- package/src/schema.ts +63 -13
- package/src/sqlite3.ts +2 -1
|
@@ -7429,8 +7429,8 @@ var BigUnsignedIntegerValue = class BigUnsignedIntegerValue2 extends IntegerValu
|
|
|
7429
7429
|
number;
|
|
7430
7430
|
constructor(number) {
|
|
7431
7431
|
super();
|
|
7432
|
-
if (number > 18446744073709551615n || number <
|
|
7433
|
-
throw new Error("Number is not
|
|
7432
|
+
if (number > 18446744073709551615n || number < 0n) {
|
|
7433
|
+
throw new Error("Number is not u64");
|
|
7434
7434
|
}
|
|
7435
7435
|
this.number = number;
|
|
7436
7436
|
}
|
|
@@ -7516,6 +7516,25 @@ IntegerKey = __decorate([
|
|
|
7516
7516
|
variant(2),
|
|
7517
7517
|
__metadata("design:paramtypes", [Number])
|
|
7518
7518
|
], IntegerKey);
|
|
7519
|
+
var LargeIntegerKey = class LargeIntegerKey2 extends IdKey {
|
|
7520
|
+
key;
|
|
7521
|
+
constructor(key) {
|
|
7522
|
+
super();
|
|
7523
|
+
this.key = key;
|
|
7524
|
+
}
|
|
7525
|
+
get primitive() {
|
|
7526
|
+
return this.key;
|
|
7527
|
+
}
|
|
7528
|
+
};
|
|
7529
|
+
__decorate([
|
|
7530
|
+
field({ type: "u64" }),
|
|
7531
|
+
__metadata("design:type", BigInt)
|
|
7532
|
+
], LargeIntegerKey.prototype, "key", void 0);
|
|
7533
|
+
LargeIntegerKey = __decorate([
|
|
7534
|
+
variant(3),
|
|
7535
|
+
__metadata("design:paramtypes", [BigInt])
|
|
7536
|
+
], LargeIntegerKey);
|
|
7537
|
+
var u64Max = 18446744073709551615n;
|
|
7519
7538
|
var toId = (obj) => {
|
|
7520
7539
|
if (typeof obj === "string") {
|
|
7521
7540
|
return new StringKey(obj);
|
|
@@ -7524,10 +7543,10 @@ var toId = (obj) => {
|
|
|
7524
7543
|
return new IntegerKey(obj);
|
|
7525
7544
|
}
|
|
7526
7545
|
if (typeof obj === "bigint") {
|
|
7527
|
-
if (obj <=
|
|
7528
|
-
return new
|
|
7546
|
+
if (obj <= u64Max && obj >= 0n) {
|
|
7547
|
+
return new LargeIntegerKey(obj);
|
|
7529
7548
|
}
|
|
7530
|
-
throw new Error("BigInt is not less than 2^
|
|
7549
|
+
throw new Error("BigInt is not less than 2^64 - 1. Max value is " + (2 ** 64 - 1) + ". Provided value: " + obj);
|
|
7531
7550
|
}
|
|
7532
7551
|
if (obj instanceof Uint8Array) {
|
|
7533
7552
|
return new Uint8ArrayKey(obj);
|
|
@@ -7960,12 +7979,18 @@ var SQLConversionMap = {
|
|
|
7960
7979
|
Date: "TEXT"
|
|
7961
7980
|
};
|
|
7962
7981
|
var WRAPPED_SIMPLE_VALUE_VARIANT = "wrapped";
|
|
7982
|
+
var u64ToI64 = (u64) => {
|
|
7983
|
+
return (typeof u64 === "number" ? BigInt(u64) : u64) - 9223372036854775808n;
|
|
7984
|
+
};
|
|
7985
|
+
var i64ToU64 = (i64) => (typeof i64 === "number" ? BigInt(i64) : i64) + 9223372036854775808n;
|
|
7963
7986
|
var convertToSQLType = (value, type) => {
|
|
7964
|
-
if (
|
|
7965
|
-
if (
|
|
7987
|
+
if (value != null) {
|
|
7988
|
+
if (type === "bool") {
|
|
7966
7989
|
return value ? 1 : 0;
|
|
7967
7990
|
}
|
|
7968
|
-
|
|
7991
|
+
if (type === "u64") {
|
|
7992
|
+
return u64ToI64(value);
|
|
7993
|
+
}
|
|
7969
7994
|
}
|
|
7970
7995
|
return value;
|
|
7971
7996
|
};
|
|
@@ -7988,7 +8013,13 @@ var convertFromSQLType = (value, type) => {
|
|
|
7988
8013
|
return typeof value === "bigint" || typeof value === "string" ? Number(value) : nullAsUndefined(value);
|
|
7989
8014
|
}
|
|
7990
8015
|
if (type === "u64") {
|
|
7991
|
-
|
|
8016
|
+
if (typeof value === "number" || typeof value === "bigint") {
|
|
8017
|
+
return i64ToU64(value);
|
|
8018
|
+
}
|
|
8019
|
+
if (value == null) {
|
|
8020
|
+
return nullAsUndefined(value);
|
|
8021
|
+
}
|
|
8022
|
+
throw new Error(`Unexpected value type for value ${value} expected number or bigint for u64 field`);
|
|
7992
8023
|
}
|
|
7993
8024
|
return nullAsUndefined(value);
|
|
7994
8025
|
};
|
|
@@ -8028,6 +8059,7 @@ var getSQLTable = (ctor, path, primary, inline, addJoinField, fromOptionalField
|
|
|
8028
8059
|
ctor: ctor2,
|
|
8029
8060
|
parentPath: path,
|
|
8030
8061
|
path: newPath,
|
|
8062
|
+
primaryField: fields.find((x) => x.isPrimary),
|
|
8031
8063
|
primary,
|
|
8032
8064
|
primaryIndex: fields.findIndex((x) => x.isPrimary),
|
|
8033
8065
|
children: dependencies,
|
|
@@ -8664,8 +8696,14 @@ var convertDeleteRequestToQuery = (request, tables, table) => {
|
|
|
8664
8696
|
};
|
|
8665
8697
|
var convertSumRequestToQuery = (request, tables, table) => {
|
|
8666
8698
|
const { query, bindable } = convertRequestToQuery("sum", request, tables, table);
|
|
8699
|
+
const inlineName = getInlineTableFieldName(request.key);
|
|
8700
|
+
const field2 = table.fields.find((x) => x.name === inlineName);
|
|
8701
|
+
if (unwrapNestedType(field2.from.type) === "u64") {
|
|
8702
|
+
throw new Error("Summing is not supported for u64 fields");
|
|
8703
|
+
}
|
|
8704
|
+
const column = `${table.name}.${getInlineTableFieldName(request.key)}`;
|
|
8667
8705
|
return {
|
|
8668
|
-
sql: `SELECT SUM(${
|
|
8706
|
+
sql: `SELECT SUM(${column}) as sum FROM ${table.name} ${query}`,
|
|
8669
8707
|
bindable
|
|
8670
8708
|
};
|
|
8671
8709
|
};
|
|
@@ -8676,18 +8714,20 @@ var convertCountRequestToQuery = (request, tables, table) => {
|
|
|
8676
8714
|
bindable
|
|
8677
8715
|
};
|
|
8678
8716
|
};
|
|
8679
|
-
var convertSearchRequestToQuery = (request, tables, rootTables,
|
|
8717
|
+
var convertSearchRequestToQuery = (request, tables, rootTables, options) => {
|
|
8680
8718
|
let unionBuilder = "";
|
|
8681
8719
|
let orderByClause = "";
|
|
8682
8720
|
let matchedOnce = false;
|
|
8683
8721
|
let lastError = void 0;
|
|
8684
|
-
const selectsPerTable = selectAllFieldsFromTables(rootTables, shape);
|
|
8722
|
+
const selectsPerTable = selectAllFieldsFromTables(rootTables, options?.shape);
|
|
8685
8723
|
let bindableBuilder = [];
|
|
8686
8724
|
for (const [i, table] of rootTables.entries()) {
|
|
8687
8725
|
const { selects, joins: joinFromSelect } = selectsPerTable[i];
|
|
8688
8726
|
const selectQuery = generateSelectQuery(table, selects);
|
|
8689
8727
|
try {
|
|
8690
|
-
const { orderBy, query, bindable } = convertRequestToQuery("iterate", request, tables, table, joinFromSelect
|
|
8728
|
+
const { orderBy, query, bindable } = convertRequestToQuery("iterate", request, tables, table, joinFromSelect, [], {
|
|
8729
|
+
stable: options?.stable
|
|
8730
|
+
});
|
|
8691
8731
|
unionBuilder += `${unionBuilder.length > 0 ? " UNION ALL " : ""} ${selectQuery} ${query}`;
|
|
8692
8732
|
orderByClause = orderBy?.length > 0 ? orderByClause.length > 0 ? orderByClause + ", " + orderBy : orderBy : orderByClause;
|
|
8693
8733
|
matchedOnce = true;
|
|
@@ -8711,7 +8751,7 @@ var convertSearchRequestToQuery = (request, tables, rootTables, shape) => {
|
|
|
8711
8751
|
function isIterateRequest(request, type) {
|
|
8712
8752
|
return type === "iterate";
|
|
8713
8753
|
}
|
|
8714
|
-
var convertRequestToQuery = (type, request, tables, table, extraJoin, path = []) => {
|
|
8754
|
+
var convertRequestToQuery = (type, request, tables, table, extraJoin, path = [], options) => {
|
|
8715
8755
|
let whereBuilder = "";
|
|
8716
8756
|
let bindableBuilder = [];
|
|
8717
8757
|
let orderByBuilder = void 0;
|
|
@@ -8727,19 +8767,23 @@ var convertRequestToQuery = (type, request, tables, table, extraJoin, path = [])
|
|
|
8727
8767
|
bindableBuilder.push(...bindable);
|
|
8728
8768
|
}
|
|
8729
8769
|
if (isIterateRequest(request, type)) {
|
|
8730
|
-
|
|
8731
|
-
|
|
8770
|
+
let sort = request?.sort;
|
|
8771
|
+
if (!sort && options?.stable) {
|
|
8772
|
+
sort = table.primary && path.length === 0 ? [{ key: [table.primary], direction: SortDirection.ASC }] : void 0;
|
|
8773
|
+
}
|
|
8774
|
+
if (sort) {
|
|
8775
|
+
let sortArr = Array.isArray(sort) ? sort : [sort];
|
|
8732
8776
|
if (sortArr.length > 0) {
|
|
8733
8777
|
orderByBuilder = "";
|
|
8734
8778
|
let once = false;
|
|
8735
|
-
for (const
|
|
8736
|
-
const { foreignTables, queryKey } = resolveTableToQuery(table, tables, joinBuilder, [...path, ...
|
|
8779
|
+
for (const sort2 of sortArr) {
|
|
8780
|
+
const { foreignTables, queryKey } = resolveTableToQuery(table, tables, joinBuilder, [...path, ...sort2.key], void 0, true);
|
|
8737
8781
|
for (const table2 of foreignTables) {
|
|
8738
8782
|
if (once) {
|
|
8739
8783
|
orderByBuilder += ", ";
|
|
8740
8784
|
}
|
|
8741
8785
|
once = true;
|
|
8742
|
-
orderByBuilder += `${table2.as}.${queryKey} ${
|
|
8786
|
+
orderByBuilder += `${table2.as}.${queryKey} ${sort2.direction === SortDirection.ASC ? "ASC" : "DESC"}`;
|
|
8743
8787
|
}
|
|
8744
8788
|
}
|
|
8745
8789
|
}
|
|
@@ -8963,7 +9007,11 @@ var convertStateFieldQuery = (query, tables, table, join, path, tableAlias = voi
|
|
|
8963
9007
|
} else {
|
|
8964
9008
|
throw new Error(`Unsupported compare type: ${query.compare}`);
|
|
8965
9009
|
}
|
|
8966
|
-
|
|
9010
|
+
if (unwrapNestedType(tableField.from.type) === "u64") {
|
|
9011
|
+
bindable.push(u64ToI64(query.value.value));
|
|
9012
|
+
} else {
|
|
9013
|
+
bindable.push(query.value.value);
|
|
9014
|
+
}
|
|
8967
9015
|
}
|
|
8968
9016
|
} else if (query instanceof IsNull) {
|
|
8969
9017
|
where = `${keyWithTable} IS NULL`;
|
|
@@ -9115,9 +9163,11 @@ var SQLLiteIndex = class {
|
|
|
9115
9163
|
async get(id, options) {
|
|
9116
9164
|
for (const table of this._rootTables) {
|
|
9117
9165
|
const { join: joinMap, selects } = selectAllFieldsFromTable(table, options?.shape);
|
|
9118
|
-
const sql = `${generateSelectQuery(table, selects)} ${buildJoin(joinMap, true)} where ${this.primaryKeyString} = ? `;
|
|
9166
|
+
const sql = `${generateSelectQuery(table, selects)} ${buildJoin(joinMap, true)} where ${this.primaryKeyString} = ? limit 1`;
|
|
9119
9167
|
const stmt = await this.properties.db.prepare(sql, sql);
|
|
9120
|
-
const rows = await stmt.get([
|
|
9168
|
+
const rows = await stmt.get([
|
|
9169
|
+
table.primaryField?.from?.type ? convertToSQLType(id.key, table.primaryField.from.type) : id.key
|
|
9170
|
+
]);
|
|
9121
9171
|
if (!rows) {
|
|
9122
9172
|
continue;
|
|
9123
9173
|
}
|
|
@@ -9151,37 +9201,44 @@ var SQLLiteIndex = class {
|
|
|
9151
9201
|
});
|
|
9152
9202
|
}
|
|
9153
9203
|
iterate(request, options) {
|
|
9154
|
-
let { sql: sqlFetch, bindable } = convertSearchRequestToQuery(request, this.tables, this._rootTables, options?.shape);
|
|
9155
9204
|
let offset = 0;
|
|
9156
9205
|
let once = false;
|
|
9157
9206
|
let requestId = v4_default();
|
|
9158
9207
|
let hasMore = true;
|
|
9159
9208
|
let stmt;
|
|
9160
9209
|
let kept = void 0;
|
|
9210
|
+
let bindable = [];
|
|
9211
|
+
let sqlFetch = void 0;
|
|
9161
9212
|
const fetch2 = async (amount) => {
|
|
9162
9213
|
kept = void 0;
|
|
9163
9214
|
if (!once) {
|
|
9215
|
+
let { sql, bindable: toBind } = convertSearchRequestToQuery(request, this.tables, this._rootTables, {
|
|
9216
|
+
shape: options?.shape,
|
|
9217
|
+
stable: typeof amount === "number"
|
|
9218
|
+
// if we are to fetch all, we dont need stable sorting
|
|
9219
|
+
});
|
|
9220
|
+
sqlFetch = sql;
|
|
9221
|
+
bindable = toBind;
|
|
9164
9222
|
stmt = await this.properties.db.prepare(sqlFetch, sqlFetch);
|
|
9165
9223
|
clearTimeout(iterator.timeout);
|
|
9166
9224
|
iterator.timeout = setTimeout(() => this.clearupIterator(requestId), this.iteratorTimeout);
|
|
9167
9225
|
}
|
|
9168
9226
|
once = true;
|
|
9169
|
-
const offsetStart = offset;
|
|
9170
9227
|
const allResults = await stmt.all([
|
|
9171
9228
|
...bindable,
|
|
9172
|
-
amount,
|
|
9173
|
-
|
|
9229
|
+
amount === "all" ? Number.MAX_SAFE_INTEGER : amount,
|
|
9230
|
+
offset
|
|
9174
9231
|
]);
|
|
9175
9232
|
let results = await Promise.all(allResults.map(async (row) => {
|
|
9176
9233
|
let selectedTable = this._rootTables.find((table) => row[getTablePrefixedField(table, this.primaryKeyString)] != null);
|
|
9177
9234
|
const value = await resolveInstanceFromValue(row, this.tables, selectedTable, this.resolveDependencies.bind(this), true, options?.shape);
|
|
9178
9235
|
return {
|
|
9179
9236
|
value,
|
|
9180
|
-
id: toId(row[getTablePrefixedField(selectedTable, this.primaryKeyString)])
|
|
9237
|
+
id: toId(convertFromSQLType(row[getTablePrefixedField(selectedTable, this.primaryKeyString)], selectedTable.primaryField.from.type))
|
|
9181
9238
|
};
|
|
9182
9239
|
}));
|
|
9183
9240
|
offset += results.length;
|
|
9184
|
-
if (results.length < amount) {
|
|
9241
|
+
if (amount === "all" || results.length < amount) {
|
|
9185
9242
|
hasMore = false;
|
|
9186
9243
|
await this.clearupIterator(requestId);
|
|
9187
9244
|
clearTimeout(iterator.timeout);
|
|
@@ -9283,10 +9340,11 @@ var SQLLiteIndex = class {
|
|
|
9283
9340
|
const stmt = await this.properties.db.prepare(sql, sql);
|
|
9284
9341
|
const result = await stmt.get(bindable);
|
|
9285
9342
|
if (result != null) {
|
|
9343
|
+
const value = result.sum;
|
|
9286
9344
|
if (ret == null) {
|
|
9287
|
-
ret =
|
|
9345
|
+
ret = value;
|
|
9288
9346
|
} else {
|
|
9289
|
-
ret +=
|
|
9347
|
+
ret += value;
|
|
9290
9348
|
}
|
|
9291
9349
|
once = true;
|
|
9292
9350
|
}
|
package/dist/src/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAA+B,MAAM,gBAAgB,CAAC;AAChF,OAAO,KAAK,EACX,KAAK,EACL,yBAAyB,EACzB,aAAa,EACb,KAAK,EACL,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC;AAEpD,OAAO,EAEN,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAA+B,MAAM,gBAAgB,CAAC;AAChF,OAAO,KAAK,EACX,KAAK,EACL,yBAAyB,EACzB,aAAa,EACb,KAAK,EACL,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC;AAEpD,OAAO,EAEN,KAAK,KAAK,EAmBV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,QAAQ,EAAa,MAAM,YAAY,CAAC;AAWtD,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACtD,YAAW,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;IAqBvB,QAAQ,CAAC,UAAU,EAAE;QACpB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,EAAE,EAAE,QAAQ,CAAC;QACb,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KAClC;IAzBF,aAAa,EAAG,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAG,MAAM,CAAC;IAC1B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,OAAO,CAOb;IAEF,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,OAAO,CAAQ;IAEvB,EAAE,EAAE,MAAM,CAAC;gBAED,UAAU,EAAE;QACpB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,EAAE,EAAE,QAAQ,CAAC;QACb,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KAClC,EACD,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE;IAWvC,IAAI,MAAM,uBAKT;IAED,IAAI,UAAU,YAKb;IAED,IAAI,MAAM;eA3CD,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC;iBAE1C,UAAU,CAAC,OAAO,UAAU,CAAC;OA8CvC;IAED,IAAI,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC,EAAE,GAAG,CAAC;IA0B5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAkEd,eAAe;IAOvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAerB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAkBb,mBAAmB;IAW3B,GAAG,CACR,EAAE,EAAE,KAAK,CAAC,KAAK,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,GACxB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IA+BlC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA8C7C,OAAO,CAAC,CAAC,SAAS,KAAK,GAAG,SAAS,EAClC,OAAO,CAAC,EAAE,KAAK,CAAC,cAAc,EAC9B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1C,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YA0Jd,eAAe;IAWvB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAY1B,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAoCvD,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAiDtD,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAiC1D,IAAI,WAAW,IAAI,MAAM,CAExB;CACD;AAED,qBAAa,aAAc,YAAW,KAAK,CAAC,OAAO;IAOjD,QAAQ,CAAC,UAAU,EAAE;QACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,EAAE,EAAE,QAAQ,CAAC;QACb,MAAM,CAAC,EAAE,aAAa,CAAC;KACvB;IAVF,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,MAAM,CAAQ;gBAGZ,UAAU,EAAE;QACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,EAAE,EAAE,QAAQ,CAAC;QACb,MAAM,CAAC,EAAE,aAAa,CAAC;KACvB;IAOI,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,EACnD,UAAU,EAAE,yBAAyB,CAAC,CAAC,EAAE,UAAU,CAAC,GAClD,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAoB1B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;IAgB3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IActB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAerB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAW3B"}
|
package/dist/src/engine.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { getSchema } from "@dao-xyz/borsh";
|
|
2
2
|
import * as types from "@peerbit/indexer-interface";
|
|
3
3
|
import { v4 as uuid } from "uuid";
|
|
4
|
-
import { MissingFieldError, buildJoin, convertCountRequestToQuery, convertDeleteRequestToQuery, convertSearchRequestToQuery,
|
|
4
|
+
import { MissingFieldError, buildJoin, convertCountRequestToQuery, convertDeleteRequestToQuery, convertFromSQLType, convertSearchRequestToQuery,
|
|
5
5
|
/* getTableName, */
|
|
6
|
-
convertSumRequestToQuery, escapeColumnName, generateSelectQuery, getInlineTableFieldName, getSQLTable, getTablePrefixedField, insert, resolveInstanceFromValue, resolveTable, selectAllFieldsFromTable, selectChildren, } from "./schema.js";
|
|
6
|
+
convertSumRequestToQuery, convertToSQLType, escapeColumnName, generateSelectQuery, getInlineTableFieldName, getSQLTable, getTablePrefixedField, insert, resolveInstanceFromValue, resolveTable, selectAllFieldsFromTable, selectChildren, } from "./schema.js";
|
|
7
7
|
const escapePathToSQLName = (path) => {
|
|
8
8
|
return path.map((x) => x.replace(/[^a-zA-Z0-9]/g, "_"));
|
|
9
9
|
};
|
|
@@ -147,9 +147,13 @@ export class SQLLiteIndex {
|
|
|
147
147
|
async get(id, options) {
|
|
148
148
|
for (const table of this._rootTables) {
|
|
149
149
|
const { join: joinMap, selects } = selectAllFieldsFromTable(table, options?.shape);
|
|
150
|
-
const sql = `${generateSelectQuery(table, selects)} ${buildJoin(joinMap, true)} where ${this.primaryKeyString} = ? `;
|
|
150
|
+
const sql = `${generateSelectQuery(table, selects)} ${buildJoin(joinMap, true)} where ${this.primaryKeyString} = ? limit 1`;
|
|
151
151
|
const stmt = await this.properties.db.prepare(sql, sql);
|
|
152
|
-
const rows = await stmt.get([
|
|
152
|
+
const rows = await stmt.get([
|
|
153
|
+
table.primaryField?.from?.type
|
|
154
|
+
? convertToSQLType(id.key, table.primaryField.from.type)
|
|
155
|
+
: id.key,
|
|
156
|
+
]);
|
|
153
157
|
if (!rows) {
|
|
154
158
|
continue;
|
|
155
159
|
}
|
|
@@ -187,7 +191,6 @@ export class SQLLiteIndex {
|
|
|
187
191
|
iterate(request, options) {
|
|
188
192
|
// create a sql statement where the offset and the limit id dynamic and can be updated
|
|
189
193
|
// TODO don't use offset but sort and limit 'next' calls by the last value of the sort
|
|
190
|
-
let { sql: sqlFetch, bindable } = convertSearchRequestToQuery(request, this.tables, this._rootTables, options?.shape);
|
|
191
194
|
/* const totalCountKey = "count"; */
|
|
192
195
|
/* const sqlTotalCount = convertCountRequestToQuery(new types.CountRequest({ query: request.query }), this.tables, this.tables.get(this.rootTableName)!)
|
|
193
196
|
const countStmt = await this.properties.db.prepare(sqlTotalCount); */
|
|
@@ -197,10 +200,18 @@ export class SQLLiteIndex {
|
|
|
197
200
|
let hasMore = true;
|
|
198
201
|
let stmt;
|
|
199
202
|
let kept = undefined;
|
|
203
|
+
let bindable = [];
|
|
204
|
+
let sqlFetch = undefined;
|
|
200
205
|
/* let totalCount: undefined | number = undefined; */
|
|
201
206
|
const fetch = async (amount) => {
|
|
202
207
|
kept = undefined;
|
|
203
208
|
if (!once) {
|
|
209
|
+
let { sql, bindable: toBind } = convertSearchRequestToQuery(request, this.tables, this._rootTables, {
|
|
210
|
+
shape: options?.shape,
|
|
211
|
+
stable: typeof amount === "number", // if we are to fetch all, we dont need stable sorting
|
|
212
|
+
});
|
|
213
|
+
sqlFetch = sql;
|
|
214
|
+
bindable = toBind;
|
|
204
215
|
stmt = await this.properties.db.prepare(sqlFetch, sqlFetch);
|
|
205
216
|
// stmt.reset?.(); // TODO dont invoke reset if not needed
|
|
206
217
|
/* countStmt.reset?.(); */
|
|
@@ -209,11 +220,10 @@ export class SQLLiteIndex {
|
|
|
209
220
|
iterator.timeout = setTimeout(() => this.clearupIterator(requestId), this.iteratorTimeout);
|
|
210
221
|
}
|
|
211
222
|
once = true;
|
|
212
|
-
const offsetStart = offset;
|
|
213
223
|
const allResults = await stmt.all([
|
|
214
224
|
...bindable,
|
|
215
|
-
amount,
|
|
216
|
-
|
|
225
|
+
amount === "all" ? Number.MAX_SAFE_INTEGER : amount,
|
|
226
|
+
offset,
|
|
217
227
|
]);
|
|
218
228
|
let results = await Promise.all(allResults.map(async (row) => {
|
|
219
229
|
let selectedTable = this._rootTables.find((table /* row["table_name"] === table.name, */) => row[getTablePrefixedField(table, this.primaryKeyString)] !=
|
|
@@ -221,7 +231,7 @@ export class SQLLiteIndex {
|
|
|
221
231
|
const value = await resolveInstanceFromValue(row, this.tables, selectedTable, this.resolveDependencies.bind(this), true, options?.shape);
|
|
222
232
|
return {
|
|
223
233
|
value,
|
|
224
|
-
id: types.toId(row[getTablePrefixedField(selectedTable, this.primaryKeyString)]),
|
|
234
|
+
id: types.toId(convertFromSQLType(row[getTablePrefixedField(selectedTable, this.primaryKeyString)], selectedTable.primaryField.from.type)),
|
|
225
235
|
};
|
|
226
236
|
}));
|
|
227
237
|
offset += results.length;
|
|
@@ -235,7 +245,7 @@ export class SQLLiteIndex {
|
|
|
235
245
|
} else {
|
|
236
246
|
iterator.kept = 0;
|
|
237
247
|
} */
|
|
238
|
-
if (results.length < amount) {
|
|
248
|
+
if (amount === "all" || results.length < amount) {
|
|
239
249
|
hasMore = false;
|
|
240
250
|
await this.clearupIterator(requestId);
|
|
241
251
|
clearTimeout(iterator.timeout);
|
|
@@ -347,11 +357,12 @@ export class SQLLiteIndex {
|
|
|
347
357
|
const stmt = await this.properties.db.prepare(sql, sql);
|
|
348
358
|
const result = await stmt.get(bindable);
|
|
349
359
|
if (result != null) {
|
|
360
|
+
const value = result.sum;
|
|
350
361
|
if (ret == null) {
|
|
351
|
-
ret =
|
|
362
|
+
ret = value;
|
|
352
363
|
}
|
|
353
364
|
else {
|
|
354
|
-
ret +=
|
|
365
|
+
ret += value;
|
|
355
366
|
}
|
|
356
367
|
once = true;
|
|
357
368
|
}
|
package/dist/src/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/src/schema.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import { type AbstractType, type Constructor, type Field, type FieldType } from
|
|
|
2
2
|
import * as types from "@peerbit/indexer-interface";
|
|
3
3
|
export type SQLLiteValue = string | number | null | bigint | Uint8Array | Int8Array | ArrayBuffer;
|
|
4
4
|
export type BindableValue = string | bigint | number | Uint8Array | Int8Array | ArrayBuffer | null;
|
|
5
|
+
export declare const u64ToI64: (u64: bigint | number) => bigint;
|
|
6
|
+
export declare const i64ToU64: (i64: number | bigint) => bigint;
|
|
5
7
|
export declare const convertToSQLType: (value: boolean | bigint | string | number | Uint8Array, type?: FieldType) => BindableValue;
|
|
6
8
|
export declare const escapeColumnName: (name: string) => string;
|
|
7
9
|
export declare class MissingFieldError extends Error {
|
|
@@ -28,6 +30,7 @@ export interface Table {
|
|
|
28
30
|
ctor: Constructor<any>;
|
|
29
31
|
primary: string | false;
|
|
30
32
|
primaryIndex: number;
|
|
33
|
+
primaryField?: SQLField;
|
|
31
34
|
path: string[];
|
|
32
35
|
parentPath: string[] | undefined;
|
|
33
36
|
fields: SQLField[];
|
|
@@ -86,7 +89,10 @@ export declare const convertCountRequestToQuery: (request: types.CountOptions |
|
|
|
86
89
|
sql: string;
|
|
87
90
|
bindable: any[];
|
|
88
91
|
};
|
|
89
|
-
export declare const convertSearchRequestToQuery: (request: types.IterateOptions | undefined, tables: Map<string, Table>, rootTables: Table[],
|
|
92
|
+
export declare const convertSearchRequestToQuery: (request: types.IterateOptions | undefined, tables: Map<string, Table>, rootTables: Table[], options?: {
|
|
93
|
+
shape?: types.Shape | undefined;
|
|
94
|
+
stable?: boolean;
|
|
95
|
+
}) => {
|
|
90
96
|
sql: string;
|
|
91
97
|
bindable: any[];
|
|
92
98
|
};
|
package/dist/src/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,SAAS,EAWd,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC;AAqBpD,MAAM,MAAM,YAAY,GACrB,MAAM,GACN,MAAM,GACN,IAAI,GACJ,MAAM,GACN,UAAU,GACV,SAAS,GACT,WAAW,CAAC;AAEf,MAAM,MAAM,aAAa,GACtB,MAAM,GACN,MAAM,GACN,MAAM,GACN,UAAU,GACV,SAAS,GACT,WAAW,GACX,IAAI,CAAC;AAER,eAAO,MAAM,gBAAgB,UACrB,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,SAC/C,SAAS,KACd,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/src/schema.js
CHANGED
|
@@ -27,13 +27,20 @@ const SQLConversionMap = {
|
|
|
27
27
|
Date: "TEXT",
|
|
28
28
|
};
|
|
29
29
|
const WRAPPED_SIMPLE_VALUE_VARIANT = "wrapped";
|
|
30
|
+
export const u64ToI64 = (u64) => {
|
|
31
|
+
return (typeof u64 === "number" ? BigInt(u64) : u64) - 9223372036854775808n;
|
|
32
|
+
};
|
|
33
|
+
export const i64ToU64 = (i64) => (typeof i64 === "number" ? BigInt(i64) : i64) + 9223372036854775808n;
|
|
30
34
|
export const convertToSQLType = (value, type) => {
|
|
31
35
|
// add bigint when https://github.com/TryGhost/node-sqlite3/pull/1501 fixed
|
|
32
|
-
if (
|
|
33
|
-
if (
|
|
36
|
+
if (value != null) {
|
|
37
|
+
if (type === "bool") {
|
|
34
38
|
return value ? 1 : 0;
|
|
35
39
|
}
|
|
36
|
-
|
|
40
|
+
if (type === "u64") {
|
|
41
|
+
// shift to fit in i64
|
|
42
|
+
return u64ToI64(value);
|
|
43
|
+
}
|
|
37
44
|
}
|
|
38
45
|
return value;
|
|
39
46
|
};
|
|
@@ -62,9 +69,13 @@ export const convertFromSQLType = (value, type) => {
|
|
|
62
69
|
: nullAsUndefined(value);
|
|
63
70
|
}
|
|
64
71
|
if (type === "u64") {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
72
|
+
if (typeof value === "number" || typeof value === "bigint") {
|
|
73
|
+
return i64ToU64(value); // TODO is not always value type bigint?
|
|
74
|
+
}
|
|
75
|
+
if (value == null) {
|
|
76
|
+
return nullAsUndefined(value);
|
|
77
|
+
}
|
|
78
|
+
throw new Error(`Unexpected value type for value ${value} expected number or bigint for u64 field`);
|
|
68
79
|
}
|
|
69
80
|
return nullAsUndefined(value);
|
|
70
81
|
};
|
|
@@ -108,6 +119,7 @@ export const getSQLTable = (ctor, path, primary, inline, addJoinField, fromOptio
|
|
|
108
119
|
ctor,
|
|
109
120
|
parentPath: path,
|
|
110
121
|
path: newPath,
|
|
122
|
+
primaryField: fields.find((x) => x.isPrimary),
|
|
111
123
|
primary,
|
|
112
124
|
primaryIndex: fields.findIndex((x) => x.isPrimary),
|
|
113
125
|
children: dependencies,
|
|
@@ -853,8 +865,14 @@ export const convertDeleteRequestToQuery = (request, tables, table) => {
|
|
|
853
865
|
};
|
|
854
866
|
export const convertSumRequestToQuery = (request, tables, table) => {
|
|
855
867
|
const { query, bindable } = convertRequestToQuery("sum", request, tables, table);
|
|
868
|
+
const inlineName = getInlineTableFieldName(request.key);
|
|
869
|
+
const field = table.fields.find((x) => x.name === inlineName);
|
|
870
|
+
if (unwrapNestedType(field.from.type) === "u64") {
|
|
871
|
+
throw new Error("Summing is not supported for u64 fields");
|
|
872
|
+
}
|
|
873
|
+
const column = `${table.name}.${getInlineTableFieldName(request.key)}`;
|
|
856
874
|
return {
|
|
857
|
-
sql: `SELECT SUM(${
|
|
875
|
+
sql: `SELECT SUM(${column}) as sum FROM ${table.name} ${query}`,
|
|
858
876
|
bindable,
|
|
859
877
|
};
|
|
860
878
|
};
|
|
@@ -865,18 +883,20 @@ export const convertCountRequestToQuery = (request, tables, table) => {
|
|
|
865
883
|
bindable,
|
|
866
884
|
};
|
|
867
885
|
};
|
|
868
|
-
export const convertSearchRequestToQuery = (request, tables, rootTables,
|
|
886
|
+
export const convertSearchRequestToQuery = (request, tables, rootTables, options) => {
|
|
869
887
|
let unionBuilder = "";
|
|
870
888
|
let orderByClause = "";
|
|
871
889
|
let matchedOnce = false;
|
|
872
890
|
let lastError = undefined;
|
|
873
|
-
const selectsPerTable = selectAllFieldsFromTables(rootTables, shape);
|
|
891
|
+
const selectsPerTable = selectAllFieldsFromTables(rootTables, options?.shape);
|
|
874
892
|
let bindableBuilder = [];
|
|
875
893
|
for (const [i, table] of rootTables.entries()) {
|
|
876
894
|
const { selects, joins: joinFromSelect } = selectsPerTable[i];
|
|
877
895
|
const selectQuery = generateSelectQuery(table, selects);
|
|
878
896
|
try {
|
|
879
|
-
const { orderBy, query, bindable } = convertRequestToQuery("iterate", request, tables, table, joinFromSelect
|
|
897
|
+
const { orderBy, query, bindable } = convertRequestToQuery("iterate", request, tables, table, joinFromSelect, [], {
|
|
898
|
+
stable: options?.stable,
|
|
899
|
+
});
|
|
880
900
|
unionBuilder += `${unionBuilder.length > 0 ? " UNION ALL " : ""} ${selectQuery} ${query}`;
|
|
881
901
|
orderByClause =
|
|
882
902
|
orderBy?.length > 0
|
|
@@ -906,7 +926,7 @@ export const convertSearchRequestToQuery = (request, tables, rootTables, shape)
|
|
|
906
926
|
function isIterateRequest(request, type) {
|
|
907
927
|
return type === "iterate";
|
|
908
928
|
}
|
|
909
|
-
const convertRequestToQuery = (type, request, tables, table, extraJoin, path = []) => {
|
|
929
|
+
const convertRequestToQuery = (type, request, tables, table, extraJoin, path = [], options) => {
|
|
910
930
|
let whereBuilder = "";
|
|
911
931
|
let bindableBuilder = [];
|
|
912
932
|
let orderByBuilder = undefined;
|
|
@@ -924,8 +944,15 @@ const convertRequestToQuery = (type, request, tables, table, extraJoin, path = [
|
|
|
924
944
|
bindableBuilder.push(...bindable);
|
|
925
945
|
}
|
|
926
946
|
if (isIterateRequest(request, type)) {
|
|
927
|
-
|
|
928
|
-
|
|
947
|
+
let sort = request?.sort;
|
|
948
|
+
if (!sort && options?.stable) {
|
|
949
|
+
sort =
|
|
950
|
+
table.primary && path.length === 0
|
|
951
|
+
? [{ key: [table.primary], direction: types.SortDirection.ASC }]
|
|
952
|
+
: undefined;
|
|
953
|
+
}
|
|
954
|
+
if (sort) {
|
|
955
|
+
let sortArr = Array.isArray(sort) ? sort : [sort];
|
|
929
956
|
if (sortArr.length > 0) {
|
|
930
957
|
orderByBuilder = "";
|
|
931
958
|
let once = false;
|
|
@@ -1206,7 +1233,13 @@ const convertStateFieldQuery = (query, tables, table, join, path, tableAlias = u
|
|
|
1206
1233
|
else {
|
|
1207
1234
|
throw new Error(`Unsupported compare type: ${query.compare}`);
|
|
1208
1235
|
}
|
|
1209
|
-
|
|
1236
|
+
if (unwrapNestedType(tableField.from.type) === "u64") {
|
|
1237
|
+
// shift left because that is how we insert the value
|
|
1238
|
+
bindable.push(u64ToI64(query.value.value));
|
|
1239
|
+
}
|
|
1240
|
+
else {
|
|
1241
|
+
bindable.push(query.value.value);
|
|
1242
|
+
}
|
|
1210
1243
|
}
|
|
1211
1244
|
}
|
|
1212
1245
|
else if (query instanceof types.IsNull) {
|
package/dist/src/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite3.d.ts","sourceRoot":"","sources":["../../src/sqlite3.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,QAAQ,IAAI,SAAS,EAErB,MAAM,YAAY,CAAC;AAEpB,QAAA,IAAI,MAAM,eAAsB,MAAM,
|
|
1
|
+
{"version":3,"file":"sqlite3.d.ts","sourceRoot":"","sources":["../../src/sqlite3.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,QAAQ,IAAI,SAAS,EAErB,MAAM,YAAY,CAAC;AAEpB,QAAA,IAAI,MAAM,eAAsB,MAAM,uBAmErC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
package/dist/src/sqlite3.js
CHANGED
|
@@ -32,7 +32,8 @@ let create = async (directory) => {
|
|
|
32
32
|
fileMustExist: false,
|
|
33
33
|
readonly: false /* , verbose: (message) => console.log(message) */,
|
|
34
34
|
});
|
|
35
|
-
|
|
35
|
+
// TODO this test makes things faster, but for benchmarking it might yield wierd results where some runs are faster than others
|
|
36
|
+
db.pragma("journal_mode = WAL");
|
|
36
37
|
db.pragma("foreign_keys = on");
|
|
37
38
|
db.defaultSafeIntegers(true);
|
|
38
39
|
};
|
package/dist/src/sqlite3.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite3.js","sourceRoot":"","sources":["../../src/sqlite3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChC,OAAO,EAAE,MAAM,IAAI,CAAC;AAMpB,IAAI,MAAM,GAAG,KAAK,EAAE,SAAkB,EAAE,EAAE;IACzC,IAAI,EAAE,GAA4B,SAAS,CAAC;IAC5C,IAAI,UAAU,GAA4B,IAAI,GAAG,EAAE,CAAC;IAEpD,IAAI,KAAK,GAAG,GAAG,EAAE;QAChB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnB,CAAC;QACD,UAAU,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,EAAE,EAAE,CAAC;YACR,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,EAAE,GAAG,SAAS,CAAC;QAChB,CAAC;IACF,CAAC,CAAC;IACF,IAAI,IAAI,GAAG,GAAG,EAAE;QACf,IAAI,EAAE,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;QACX,CAAC;QAED,IAAI,UAAkB,CAAC;QACvB,IAAI,SAAS,EAAE,CAAC;YACf,uEAAuE;YACvE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,UAAU,GAAG,GAAG,SAAS,YAAY,CAAC;QACvC,CAAC;aAAM,CAAC;YACP,UAAU,GAAG,UAAU,CAAC;QACzB,CAAC;QAED,EAAE,GAAG,IAAI,EAAE,CAAC,UAAU,EAAE;YACvB,aAAa,EAAE,KAAK;YACpB,QAAQ,EAAE,KAAK,CAAC,mDAAmD;SACnE,CAAC,CAAC;QACH,
|
|
1
|
+
{"version":3,"file":"sqlite3.js","sourceRoot":"","sources":["../../src/sqlite3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChC,OAAO,EAAE,MAAM,IAAI,CAAC;AAMpB,IAAI,MAAM,GAAG,KAAK,EAAE,SAAkB,EAAE,EAAE;IACzC,IAAI,EAAE,GAA4B,SAAS,CAAC;IAC5C,IAAI,UAAU,GAA4B,IAAI,GAAG,EAAE,CAAC;IAEpD,IAAI,KAAK,GAAG,GAAG,EAAE;QAChB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnB,CAAC;QACD,UAAU,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,EAAE,EAAE,CAAC;YACR,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,EAAE,GAAG,SAAS,CAAC;QAChB,CAAC;IACF,CAAC,CAAC;IACF,IAAI,IAAI,GAAG,GAAG,EAAE;QACf,IAAI,EAAE,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;QACX,CAAC;QAED,IAAI,UAAkB,CAAC;QACvB,IAAI,SAAS,EAAE,CAAC;YACf,uEAAuE;YACvE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,UAAU,GAAG,GAAG,SAAS,YAAY,CAAC;QACvC,CAAC;aAAM,CAAC;YACP,UAAU,GAAG,UAAU,CAAC;QACzB,CAAC;QAED,EAAE,GAAG,IAAI,EAAE,CAAC,UAAU,EAAE;YACvB,aAAa,EAAE,KAAK;YACpB,QAAQ,EAAE,KAAK,CAAC,mDAAmD;SACnE,CAAC,CAAC;QACH,+HAA+H;QAC/H,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAChC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC/B,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,OAAO;QACN,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;YACrB,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,EAAW;YACrC,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC9C,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;gBAChB,IAAI,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAE9B,IAAI,IAAI,EAAE,CAAC;oBACV,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;oBACrB,OAAO,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;YACD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAsB,CAAC,CAAC,aAAa;YAChE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;gBAChB,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QACD,UAAU;QACV,KAAK;QACL,IAAI;QACJ,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;KACzB,CAAC,CAAC,gBAAgB;AACjC,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peerbit/indexer-sqlite3",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "SQLite index for document store",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -70,11 +70,11 @@
|
|
|
70
70
|
"license": "MIT",
|
|
71
71
|
"dependencies": {
|
|
72
72
|
"better-sqlite3": "^11.5.0",
|
|
73
|
-
"@peerbit/indexer-interface": "^
|
|
73
|
+
"@peerbit/indexer-interface": "^2.0.0",
|
|
74
74
|
"@sqlite.org/sqlite-wasm": "^3.47.0-build1"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
77
|
"@types/better-sqlite3": "^7.6.11",
|
|
78
|
-
"@peerbit/indexer-tests": "^1.1.
|
|
78
|
+
"@peerbit/indexer-tests": "^1.1.2"
|
|
79
79
|
}
|
|
80
80
|
}
|
package/src/engine.ts
CHANGED
|
@@ -13,9 +13,11 @@ import {
|
|
|
13
13
|
buildJoin,
|
|
14
14
|
convertCountRequestToQuery,
|
|
15
15
|
convertDeleteRequestToQuery,
|
|
16
|
+
convertFromSQLType,
|
|
16
17
|
convertSearchRequestToQuery,
|
|
17
18
|
/* getTableName, */
|
|
18
19
|
convertSumRequestToQuery,
|
|
20
|
+
convertToSQLType,
|
|
19
21
|
escapeColumnName,
|
|
20
22
|
generateSelectQuery,
|
|
21
23
|
getInlineTableFieldName,
|
|
@@ -251,9 +253,13 @@ export class SQLLiteIndex<T extends Record<string, any>>
|
|
|
251
253
|
table,
|
|
252
254
|
options?.shape,
|
|
253
255
|
);
|
|
254
|
-
const sql = `${generateSelectQuery(table, selects)} ${buildJoin(joinMap, true)} where ${this.primaryKeyString} = ? `;
|
|
256
|
+
const sql = `${generateSelectQuery(table, selects)} ${buildJoin(joinMap, true)} where ${this.primaryKeyString} = ? limit 1`;
|
|
255
257
|
const stmt = await this.properties.db.prepare(sql, sql);
|
|
256
|
-
const rows = await stmt.get([
|
|
258
|
+
const rows = await stmt.get([
|
|
259
|
+
table.primaryField?.from?.type
|
|
260
|
+
? convertToSQLType(id.key, table.primaryField.from.type)
|
|
261
|
+
: id.key,
|
|
262
|
+
]);
|
|
257
263
|
if (!rows) {
|
|
258
264
|
continue;
|
|
259
265
|
}
|
|
@@ -324,12 +330,6 @@ export class SQLLiteIndex<T extends Record<string, any>>
|
|
|
324
330
|
): types.IndexIterator<T, S> {
|
|
325
331
|
// create a sql statement where the offset and the limit id dynamic and can be updated
|
|
326
332
|
// TODO don't use offset but sort and limit 'next' calls by the last value of the sort
|
|
327
|
-
let { sql: sqlFetch, bindable } = convertSearchRequestToQuery(
|
|
328
|
-
request,
|
|
329
|
-
this.tables,
|
|
330
|
-
this._rootTables,
|
|
331
|
-
options?.shape,
|
|
332
|
-
);
|
|
333
333
|
|
|
334
334
|
/* const totalCountKey = "count"; */
|
|
335
335
|
/* const sqlTotalCount = convertCountRequestToQuery(new types.CountRequest({ query: request.query }), this.tables, this.tables.get(this.rootTableName)!)
|
|
@@ -342,11 +342,25 @@ export class SQLLiteIndex<T extends Record<string, any>>
|
|
|
342
342
|
|
|
343
343
|
let stmt: Statement;
|
|
344
344
|
let kept: number | undefined = undefined;
|
|
345
|
+
let bindable: any[] = [];
|
|
346
|
+
let sqlFetch: string | undefined = undefined;
|
|
345
347
|
|
|
346
348
|
/* let totalCount: undefined | number = undefined; */
|
|
347
|
-
const fetch = async (amount: number) => {
|
|
349
|
+
const fetch = async (amount: number | "all") => {
|
|
348
350
|
kept = undefined;
|
|
349
351
|
if (!once) {
|
|
352
|
+
let { sql, bindable: toBind } = convertSearchRequestToQuery(
|
|
353
|
+
request,
|
|
354
|
+
this.tables,
|
|
355
|
+
this._rootTables,
|
|
356
|
+
{
|
|
357
|
+
shape: options?.shape,
|
|
358
|
+
stable: typeof amount === "number", // if we are to fetch all, we dont need stable sorting
|
|
359
|
+
},
|
|
360
|
+
);
|
|
361
|
+
sqlFetch = sql;
|
|
362
|
+
bindable = toBind;
|
|
363
|
+
|
|
350
364
|
stmt = await this.properties.db.prepare(sqlFetch, sqlFetch);
|
|
351
365
|
// stmt.reset?.(); // TODO dont invoke reset if not needed
|
|
352
366
|
/* countStmt.reset?.(); */
|
|
@@ -360,12 +374,11 @@ export class SQLLiteIndex<T extends Record<string, any>>
|
|
|
360
374
|
}
|
|
361
375
|
|
|
362
376
|
once = true;
|
|
363
|
-
const offsetStart = offset;
|
|
364
377
|
|
|
365
378
|
const allResults: Record<string, any>[] = await stmt.all([
|
|
366
379
|
...bindable,
|
|
367
|
-
amount,
|
|
368
|
-
|
|
380
|
+
amount === "all" ? Number.MAX_SAFE_INTEGER : amount,
|
|
381
|
+
offset,
|
|
369
382
|
]);
|
|
370
383
|
|
|
371
384
|
let results: IndexedResult<types.ReturnTypeFromShape<T, S>>[] =
|
|
@@ -389,9 +402,12 @@ export class SQLLiteIndex<T extends Record<string, any>>
|
|
|
389
402
|
return {
|
|
390
403
|
value,
|
|
391
404
|
id: types.toId(
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
405
|
+
convertFromSQLType(
|
|
406
|
+
row[
|
|
407
|
+
getTablePrefixedField(selectedTable, this.primaryKeyString)
|
|
408
|
+
],
|
|
409
|
+
selectedTable.primaryField!.from!.type,
|
|
410
|
+
),
|
|
395
411
|
),
|
|
396
412
|
};
|
|
397
413
|
}),
|
|
@@ -410,7 +426,7 @@ export class SQLLiteIndex<T extends Record<string, any>>
|
|
|
410
426
|
iterator.kept = 0;
|
|
411
427
|
} */
|
|
412
428
|
|
|
413
|
-
if (results.length < amount) {
|
|
429
|
+
if (amount === "all" || results.length < amount) {
|
|
414
430
|
hasMore = false;
|
|
415
431
|
await this.clearupIterator(requestId);
|
|
416
432
|
clearTimeout(iterator.timeout);
|
|
@@ -548,10 +564,12 @@ export class SQLLiteIndex<T extends Record<string, any>>
|
|
|
548
564
|
const stmt = await this.properties.db.prepare(sql, sql);
|
|
549
565
|
const result = await stmt.get(bindable);
|
|
550
566
|
if (result != null) {
|
|
567
|
+
const value = result.sum as number;
|
|
568
|
+
|
|
551
569
|
if (ret == null) {
|
|
552
|
-
|
|
570
|
+
ret = value;
|
|
553
571
|
} else {
|
|
554
|
-
|
|
572
|
+
ret += value;
|
|
555
573
|
}
|
|
556
574
|
once = true;
|
|
557
575
|
}
|
package/src/schema.ts
CHANGED
|
@@ -54,17 +54,27 @@ export type BindableValue =
|
|
|
54
54
|
| ArrayBuffer
|
|
55
55
|
| null;
|
|
56
56
|
|
|
57
|
+
export const u64ToI64 = (u64: bigint | number) => {
|
|
58
|
+
return (typeof u64 === "number" ? BigInt(u64) : u64) - 9223372036854775808n;
|
|
59
|
+
};
|
|
60
|
+
export const i64ToU64 = (i64: number | bigint) =>
|
|
61
|
+
(typeof i64 === "number" ? BigInt(i64) : i64) + 9223372036854775808n;
|
|
62
|
+
|
|
57
63
|
export const convertToSQLType = (
|
|
58
64
|
value: boolean | bigint | string | number | Uint8Array,
|
|
59
65
|
type?: FieldType,
|
|
60
66
|
): BindableValue => {
|
|
61
67
|
// add bigint when https://github.com/TryGhost/node-sqlite3/pull/1501 fixed
|
|
62
68
|
|
|
63
|
-
if (
|
|
64
|
-
if (
|
|
69
|
+
if (value != null) {
|
|
70
|
+
if (type === "bool") {
|
|
65
71
|
return value ? 1 : 0;
|
|
66
72
|
}
|
|
67
|
-
|
|
73
|
+
if (type === "u64") {
|
|
74
|
+
// shift to fit in i64
|
|
75
|
+
|
|
76
|
+
return u64ToI64(value as number | bigint);
|
|
77
|
+
}
|
|
68
78
|
}
|
|
69
79
|
return value as BindableValue;
|
|
70
80
|
};
|
|
@@ -101,9 +111,15 @@ export const convertFromSQLType = (
|
|
|
101
111
|
: nullAsUndefined(value);
|
|
102
112
|
}
|
|
103
113
|
if (type === "u64") {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
114
|
+
if (typeof value === "number" || typeof value === "bigint") {
|
|
115
|
+
return i64ToU64(value as number | bigint); // TODO is not always value type bigint?
|
|
116
|
+
}
|
|
117
|
+
if (value == null) {
|
|
118
|
+
return nullAsUndefined(value);
|
|
119
|
+
}
|
|
120
|
+
throw new Error(
|
|
121
|
+
`Unexpected value type for value ${value} expected number or bigint for u64 field`,
|
|
122
|
+
);
|
|
107
123
|
}
|
|
108
124
|
return nullAsUndefined(value);
|
|
109
125
|
};
|
|
@@ -145,7 +161,8 @@ export interface Table {
|
|
|
145
161
|
name: string;
|
|
146
162
|
ctor: Constructor<any>;
|
|
147
163
|
primary: string | false;
|
|
148
|
-
primaryIndex: number;
|
|
164
|
+
primaryIndex: number; // can be -1 for nested tables TODO make it more clear
|
|
165
|
+
primaryField?: SQLField; // can be undefined for nested tables TODO make it required
|
|
149
166
|
path: string[];
|
|
150
167
|
parentPath: string[] | undefined; // field path of the parent where this table originates from
|
|
151
168
|
fields: SQLField[];
|
|
@@ -195,6 +212,7 @@ export const getSQLTable = (
|
|
|
195
212
|
ctor,
|
|
196
213
|
parentPath: path,
|
|
197
214
|
path: newPath,
|
|
215
|
+
primaryField: fields.find((x) => x.isPrimary)!,
|
|
198
216
|
primary,
|
|
199
217
|
primaryIndex: fields.findIndex((x) => x.isPrimary),
|
|
200
218
|
children: dependencies,
|
|
@@ -1254,8 +1272,16 @@ export const convertSumRequestToQuery = (
|
|
|
1254
1272
|
tables,
|
|
1255
1273
|
table,
|
|
1256
1274
|
);
|
|
1275
|
+
|
|
1276
|
+
const inlineName = getInlineTableFieldName(request.key);
|
|
1277
|
+
const field = table.fields.find((x) => x.name === inlineName);
|
|
1278
|
+
if (unwrapNestedType(field!.from!.type) === "u64") {
|
|
1279
|
+
throw new Error("Summing is not supported for u64 fields");
|
|
1280
|
+
}
|
|
1281
|
+
const column = `${table.name}.${getInlineTableFieldName(request.key)}`;
|
|
1282
|
+
|
|
1257
1283
|
return {
|
|
1258
|
-
sql: `SELECT SUM(${
|
|
1284
|
+
sql: `SELECT SUM(${column}) as sum FROM ${table.name} ${query}`,
|
|
1259
1285
|
bindable,
|
|
1260
1286
|
};
|
|
1261
1287
|
};
|
|
@@ -1281,7 +1307,10 @@ export const convertSearchRequestToQuery = (
|
|
|
1281
1307
|
request: types.IterateOptions | undefined,
|
|
1282
1308
|
tables: Map<string, Table>,
|
|
1283
1309
|
rootTables: Table[],
|
|
1284
|
-
|
|
1310
|
+
options?: {
|
|
1311
|
+
shape?: types.Shape | undefined;
|
|
1312
|
+
stable?: boolean;
|
|
1313
|
+
},
|
|
1285
1314
|
): { sql: string; bindable: any[] } => {
|
|
1286
1315
|
let unionBuilder = "";
|
|
1287
1316
|
let orderByClause: string = "";
|
|
@@ -1289,7 +1318,7 @@ export const convertSearchRequestToQuery = (
|
|
|
1289
1318
|
let matchedOnce = false;
|
|
1290
1319
|
let lastError: Error | undefined = undefined;
|
|
1291
1320
|
|
|
1292
|
-
const selectsPerTable = selectAllFieldsFromTables(rootTables, shape);
|
|
1321
|
+
const selectsPerTable = selectAllFieldsFromTables(rootTables, options?.shape);
|
|
1293
1322
|
let bindableBuilder: any[] = [];
|
|
1294
1323
|
for (const [i, table] of rootTables.entries()) {
|
|
1295
1324
|
const { selects, joins: joinFromSelect } = selectsPerTable[i];
|
|
@@ -1301,6 +1330,10 @@ export const convertSearchRequestToQuery = (
|
|
|
1301
1330
|
tables,
|
|
1302
1331
|
table,
|
|
1303
1332
|
joinFromSelect,
|
|
1333
|
+
[],
|
|
1334
|
+
{
|
|
1335
|
+
stable: options?.stable,
|
|
1336
|
+
},
|
|
1304
1337
|
);
|
|
1305
1338
|
unionBuilder += `${unionBuilder.length > 0 ? " UNION ALL " : ""} ${selectQuery} ${query}`;
|
|
1306
1339
|
orderByClause =
|
|
@@ -1358,6 +1391,9 @@ const convertRequestToQuery = <
|
|
|
1358
1391
|
table: Table,
|
|
1359
1392
|
extraJoin?: Map<string, JoinTable>,
|
|
1360
1393
|
path: string[] = [],
|
|
1394
|
+
options?: {
|
|
1395
|
+
stable?: boolean;
|
|
1396
|
+
},
|
|
1361
1397
|
): R => {
|
|
1362
1398
|
let whereBuilder = "";
|
|
1363
1399
|
let bindableBuilder: any[] = [];
|
|
@@ -1388,8 +1424,16 @@ const convertRequestToQuery = <
|
|
|
1388
1424
|
}
|
|
1389
1425
|
|
|
1390
1426
|
if (isIterateRequest(request, type)) {
|
|
1391
|
-
|
|
1392
|
-
|
|
1427
|
+
let sort = request?.sort;
|
|
1428
|
+
if (!sort && options?.stable) {
|
|
1429
|
+
sort =
|
|
1430
|
+
table.primary && path.length === 0
|
|
1431
|
+
? [{ key: [table.primary], direction: types.SortDirection.ASC }]
|
|
1432
|
+
: undefined;
|
|
1433
|
+
}
|
|
1434
|
+
|
|
1435
|
+
if (sort) {
|
|
1436
|
+
let sortArr = Array.isArray(sort) ? sort : [sort];
|
|
1393
1437
|
if (sortArr.length > 0) {
|
|
1394
1438
|
orderByBuilder = "";
|
|
1395
1439
|
let once = false;
|
|
@@ -1793,7 +1837,13 @@ const convertStateFieldQuery = (
|
|
|
1793
1837
|
} else {
|
|
1794
1838
|
throw new Error(`Unsupported compare type: ${query.compare}`);
|
|
1795
1839
|
}
|
|
1796
|
-
|
|
1840
|
+
|
|
1841
|
+
if (unwrapNestedType(tableField.from!.type) === "u64") {
|
|
1842
|
+
// shift left because that is how we insert the value
|
|
1843
|
+
bindable.push(u64ToI64(query.value.value));
|
|
1844
|
+
} else {
|
|
1845
|
+
bindable.push(query.value.value);
|
|
1846
|
+
}
|
|
1797
1847
|
}
|
|
1798
1848
|
} else if (query instanceof types.IsNull) {
|
|
1799
1849
|
where = `${keyWithTable} IS NULL`;
|
package/src/sqlite3.ts
CHANGED
|
@@ -40,7 +40,8 @@ let create = async (directory?: string) => {
|
|
|
40
40
|
fileMustExist: false,
|
|
41
41
|
readonly: false /* , verbose: (message) => console.log(message) */,
|
|
42
42
|
});
|
|
43
|
-
|
|
43
|
+
// TODO this test makes things faster, but for benchmarking it might yield wierd results where some runs are faster than others
|
|
44
|
+
db.pragma("journal_mode = WAL");
|
|
44
45
|
db.pragma("foreign_keys = on");
|
|
45
46
|
db.defaultSafeIntegers(true);
|
|
46
47
|
};
|