@peerbit/indexer-sqlite3 1.1.2-c679a0d → 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 +78 -78
- 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) {
|