@bjornpagen/bumbledb 1.2.1 → 1.3.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.
- package/COOKBOOK.md +178 -0
- package/README.md +2 -2
- package/dist/alternatives.d.ts +25 -0
- package/dist/alternatives.d.ts.map +1 -0
- package/dist/alternatives.js +59 -0
- package/dist/alternatives.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/native.d.ts +14 -0
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js.map +1 -1
- package/dist/query/atom.d.ts +2 -1
- package/dist/query/atom.d.ts.map +1 -1
- package/dist/query/atom.js.map +1 -1
- package/dist/query/compute.d.ts +16 -1
- package/dist/query/compute.d.ts.map +1 -1
- package/dist/query/compute.js +15 -2
- package/dist/query/compute.js.map +1 -1
- package/dist/query/description.d.ts +10 -2
- package/dist/query/description.d.ts.map +1 -1
- package/dist/query/description.js +10 -1
- package/dist/query/description.js.map +1 -1
- package/dist/query/find.d.ts +13 -6
- package/dist/query/find.d.ts.map +1 -1
- package/dist/query/find.js +1 -1
- package/dist/query/find.js.map +1 -1
- package/dist/query/lower.d.ts +3 -0
- package/dist/query/lower.d.ts.map +1 -1
- package/dist/query/lower.js +37 -28
- package/dist/query/lower.js.map +1 -1
- package/dist/query/parse-ir.d.ts.map +1 -1
- package/dist/query/parse-ir.js +24 -1
- package/dist/query/parse-ir.js.map +1 -1
- package/dist/query/segments.d.ts +20 -0
- package/dist/query/segments.d.ts.map +1 -0
- package/dist/query/segments.js +35 -0
- package/dist/query/segments.js.map +1 -0
- package/dist/scalar.d.ts +30 -8
- package/dist/scalar.d.ts.map +1 -1
- package/dist/scalar.js +80 -2
- package/dist/scalar.js.map +1 -1
- package/pack-provenance.json +3 -3
- package/package.json +4 -4
- package/src/alternatives.ts +95 -0
- package/src/index.ts +12 -1
- package/src/native.ts +14 -0
- package/src/query/atom.ts +2 -0
- package/src/query/compute.ts +41 -2
- package/src/query/description.ts +34 -4
- package/src/query/find.ts +37 -26
- package/src/query/lower.ts +35 -29
- package/src/query/parse-ir.ts +23 -1
- package/src/query/segments.ts +61 -0
- package/src/scalar.ts +140 -7
package/dist/scalar.d.ts
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
import type { ScalarExprIr } from "./native.js";
|
|
1
2
|
import type { ValueSpec } from "./spec.js";
|
|
2
3
|
/** F0: leaf scope for the shared AST (C1). Query vars are typed; source fields stay unresolved. */
|
|
3
4
|
export type ScalarLeafScope = "query-var" | "source-field";
|
|
4
5
|
/** The engine's scalar result vocabulary — distinct at the type level. */
|
|
5
6
|
type ScalarKind = "u64" | "i64" | "f64" | "bool";
|
|
6
7
|
/** Cached result kind: known only when derivable; otherwise honestly unresolved. */
|
|
7
|
-
type
|
|
8
|
+
type IntervalKind = "intervalU64" | "intervalI64" | "intervalF64";
|
|
9
|
+
type ScalarInputKind = ScalarKind | IntervalKind;
|
|
10
|
+
type ScalarResultKind = ScalarInputKind | "unresolved";
|
|
11
|
+
type Rounding = "towardZero" | "nearestTiesAwayFromZero" | "nearestTiesToEven";
|
|
8
12
|
/** Host value for a derived scalar kind. */
|
|
9
13
|
type ScalarValue<K extends ScalarKind> = K extends "f64" ? number : K extends "bool" ? boolean : bigint;
|
|
10
14
|
type NumericCast = "toF64" | "toF64Exact" | "toI64Exact" | "toU64Exact";
|
|
@@ -26,7 +30,7 @@ type ScalarLiteral = {
|
|
|
26
30
|
} | {
|
|
27
31
|
readonly f64: number;
|
|
28
32
|
};
|
|
29
|
-
type ScalarOpKind = "literal" | "negate" | "isNaN" | "isFinite" | "add" | "subtract" | "multiply" | "divide" | "cast";
|
|
33
|
+
type ScalarOpKind = "literal" | "negate" | "isNaN" | "isFinite" | "add" | "subtract" | "multiply" | "divide" | "cast" | "mulDiv" | "measure";
|
|
30
34
|
/**
|
|
31
35
|
* Structural query-variable leaf. The query layer supplies a bound variable
|
|
32
36
|
* whose field kind is already a schema kind; this module does not import
|
|
@@ -47,7 +51,16 @@ type SourceFieldLeaf = {
|
|
|
47
51
|
readonly name: string;
|
|
48
52
|
};
|
|
49
53
|
type ScalarLeaf<S extends ScalarLeafScope> = S extends "query-var" ? QueryVarLeaf : SourceFieldLeaf;
|
|
50
|
-
type ScalarNodeBody<S extends ScalarLeafScope> =
|
|
54
|
+
type ScalarNodeBody<S extends ScalarLeafScope> = {
|
|
55
|
+
readonly kind: "measure";
|
|
56
|
+
readonly expr: ScalarNode<S>;
|
|
57
|
+
} | {
|
|
58
|
+
readonly kind: "mulDiv";
|
|
59
|
+
readonly a: ScalarNode<S>;
|
|
60
|
+
readonly b: ScalarNode<S>;
|
|
61
|
+
readonly divisor: ScalarNode<S>;
|
|
62
|
+
readonly rounding: Rounding;
|
|
63
|
+
} | ScalarLeaf<S> | {
|
|
51
64
|
readonly kind: "literal";
|
|
52
65
|
readonly value: ScalarLiteral;
|
|
53
66
|
} | {
|
|
@@ -109,15 +122,18 @@ declare function literalValue(value: ScalarLiteral): ScalarLiteral;
|
|
|
109
122
|
declare function literalWireOf(value: ScalarLiteral): ValueSpec;
|
|
110
123
|
declare function literalKindOf(value: ScalarLiteral): ScalarKind;
|
|
111
124
|
declare function assertDepth(where: string, depth: number): void;
|
|
112
|
-
declare function assertNumeric(where: string, kind:
|
|
113
|
-
declare function assertSameKind(where: string, left:
|
|
125
|
+
declare function assertNumeric(where: string, kind: ScalarInputKind): asserts kind is NumericKind;
|
|
126
|
+
declare function assertSameKind(where: string, left: ScalarInputKind, right: ScalarInputKind): ScalarInputKind;
|
|
114
127
|
declare function isScalarNode(value: unknown): value is ScalarNode;
|
|
115
128
|
declare function isUnresolvedScalar(node: ScalarNode): boolean;
|
|
116
129
|
/** Query-var leaf — kind is the variable's schema kind, already known. */
|
|
117
|
-
declare function queryVarLeaf<K extends
|
|
130
|
+
declare function queryVarLeaf<K extends ScalarInputKind>(ref: ScalarQueryVar, kind: K): ScalarNode<"query-var", K>;
|
|
118
131
|
declare function scalarLiteral<S extends ScalarLeafScope>(scope: S, value: ScalarLiteral): ScalarNode<S, ScalarKind>;
|
|
119
132
|
type BinaryOp = "add" | "subtract" | "multiply" | "divide";
|
|
120
133
|
declare function scalarBinary<S extends ScalarLeafScope>(where: string, op: BinaryOp, left: ScalarNode<S>, right: ScalarNode<S>): ScalarNode<S, ScalarResultKind>;
|
|
134
|
+
declare function roundingMode(value: unknown): Rounding;
|
|
135
|
+
declare function scalarMulDiv<S extends ScalarLeafScope>(where: string, a: ScalarNode<S>, b: ScalarNode<S>, divisor: ScalarNode<S>, rounding: Rounding): ScalarNode<S>;
|
|
136
|
+
declare function scalarMeasure<S extends ScalarLeafScope>(where: string, expr: ScalarNode<S>): ScalarNode<S>;
|
|
121
137
|
declare function scalarNegate<S extends ScalarLeafScope>(where: string, expr: ScalarNode<S>): ScalarNode<S, ScalarResultKind>;
|
|
122
138
|
declare function scalarCast<S extends ScalarLeafScope>(where: string, cast: NumericCast, result: ScalarKind, expr: ScalarNode<S>): ScalarNode<S, ScalarKind>;
|
|
123
139
|
declare function scalarFloatPredicate<S extends ScalarLeafScope>(where: string, op: "isNaN" | "isFinite", expr: ScalarNode<S>): ScalarNode<S, "bool">;
|
|
@@ -134,12 +150,16 @@ declare function add<L extends NumericOrUnresolved, R extends CombineNumeric<L,
|
|
|
134
150
|
declare function subtract<L extends NumericOrUnresolved, R extends CombineNumeric<L, R> extends never ? never : NumericOrUnresolved>(left: ScalarExpr<L>, right: ScalarExpr<R>): ScalarExpr<CombineNumeric<L, R>>;
|
|
135
151
|
declare function multiply<L extends NumericOrUnresolved, R extends CombineNumeric<L, R> extends never ? never : NumericOrUnresolved>(left: ScalarExpr<L>, right: ScalarExpr<R>): ScalarExpr<CombineNumeric<L, R>>;
|
|
136
152
|
declare function divide<L extends NumericOrUnresolved, R extends CombineNumeric<L, R> extends never ? never : NumericOrUnresolved>(left: ScalarExpr<L>, right: ScalarExpr<R>): ScalarExpr<CombineNumeric<L, R>>;
|
|
153
|
+
declare function mulDiv<L extends "i64" | "u64" | "unresolved", R extends CombineNumeric<L, R> extends never ? never : "i64" | "u64" | "unresolved", D extends CombineNumeric<L, D> extends never ? never : CombineNumeric<R, D> extends never ? never : "i64" | "u64" | "unresolved">(a: ScalarExpr<L>, b: ScalarExpr<R>, divisor: ScalarExpr<D>, rounding: Rounding): ScalarExpr<CombineNumeric<CombineNumeric<L, R>, D>>;
|
|
154
|
+
declare function measure(expr: ScalarFieldRef): ScalarExpr<"unresolved">;
|
|
137
155
|
declare function toF64(expr: ScalarExpr<NumericOrUnresolved>): ScalarExpr<"f64">;
|
|
138
156
|
declare function toF64Exact(expr: ScalarExpr<NumericOrUnresolved>): ScalarExpr<"f64">;
|
|
139
157
|
declare function toI64Exact(expr: ScalarExpr<NumericOrUnresolved>): ScalarExpr<"i64">;
|
|
140
158
|
declare function toU64Exact(expr: ScalarExpr<NumericOrUnresolved>): ScalarExpr<"u64">;
|
|
141
159
|
declare function isNaNExpr(expr: ScalarExpr<"f64" | "unresolved">): ScalarExpr<"bool">;
|
|
142
160
|
declare function isFiniteExpr(expr: ScalarExpr<"f64" | "unresolved">): ScalarExpr<"bool">;
|
|
161
|
+
/** One lowering walk for query variables and row-field bindings. */
|
|
162
|
+
declare function scalarWire(node: ScalarNode, leaf: (node: QueryVarLeaf | SourceFieldLeaf) => number): ScalarExprIr;
|
|
143
163
|
/** The authoring namespace: `Scalar.field("units")`, `Scalar.add(...)`. */
|
|
144
164
|
declare const Scalar: Readonly<{
|
|
145
165
|
field: typeof field;
|
|
@@ -153,6 +173,8 @@ declare const Scalar: Readonly<{
|
|
|
153
173
|
subtract: typeof subtract;
|
|
154
174
|
multiply: typeof multiply;
|
|
155
175
|
divide: typeof divide;
|
|
176
|
+
mulDiv: typeof mulDiv;
|
|
177
|
+
measure: typeof measure;
|
|
156
178
|
toF64: typeof toF64;
|
|
157
179
|
toF64Exact: typeof toF64Exact;
|
|
158
180
|
toI64Exact: typeof toI64Exact;
|
|
@@ -160,6 +182,6 @@ declare const Scalar: Readonly<{
|
|
|
160
182
|
isNaN: typeof isNaNExpr;
|
|
161
183
|
isFinite: typeof isFiniteExpr;
|
|
162
184
|
}>;
|
|
163
|
-
export type { CombineNumeric, NumericCast, NumericKind, NumericOrUnresolved, QueryVarLeaf, ScalarExpr, ScalarFieldRef, ScalarKind, ScalarLiteral, ScalarNode, ScalarOpKind, ScalarQueryVar, ScalarResultKind, ScalarValue, SourceFieldLeaf };
|
|
164
|
-
export { assertDepth, assertNumeric, assertSameKind, checkBool, checkF64, checkI64, checkU64, isScalarNode, isUnresolvedScalar, literalKindOf, literalValue, literalWireOf, MAX_SCALAR_DEPTH, queryVarLeaf, queryVarsOf, Scalar, scalarAuthoringWork, scalarBinary, scalarCast, scalarFloatPredicate, scalarLiteral, scalarNegate };
|
|
185
|
+
export type { CombineNumeric, IntervalKind, NumericCast, NumericKind, NumericOrUnresolved, QueryVarLeaf, Rounding, ScalarExpr, ScalarFieldRef, ScalarInputKind, ScalarKind, ScalarLiteral, ScalarNode, ScalarOpKind, ScalarQueryVar, ScalarResultKind, ScalarValue, SourceFieldLeaf };
|
|
186
|
+
export { assertDepth, assertNumeric, assertSameKind, checkBool, checkF64, checkI64, checkU64, isScalarNode, isUnresolvedScalar, literalKindOf, literalValue, literalWireOf, MAX_SCALAR_DEPTH, queryVarLeaf, queryVarsOf, roundingMode, Scalar, scalarAuthoringWork, scalarBinary, scalarCast, scalarFloatPredicate, scalarLiteral, scalarMeasure, scalarMulDiv, scalarNegate, scalarWire };
|
|
165
187
|
//# sourceMappingURL=scalar.d.ts.map
|
package/dist/scalar.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scalar.d.ts","sourceRoot":"","sources":["../src/scalar.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzC,mGAAmG;AACnG,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,cAAc,CAAA;AAE1D,0EAA0E;AAC1E,KAAK,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;AAEhD,oFAAoF;AACpF,KAAK,
|
|
1
|
+
{"version":3,"file":"scalar.d.ts","sourceRoot":"","sources":["../src/scalar.ts"],"names":[],"mappings":"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"}
|
package/dist/scalar.js
CHANGED
|
@@ -86,7 +86,7 @@ function assertDepth(where, depth) {
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
function assertNumeric(where, kind) {
|
|
89
|
-
if (kind
|
|
89
|
+
if (kind !== "u64" && kind !== "i64" && kind !== "f64") {
|
|
90
90
|
throw new AuthoringError({ message: `${where}: the operand is bool, not numeric (u64/i64/f64)` });
|
|
91
91
|
}
|
|
92
92
|
}
|
|
@@ -200,6 +200,47 @@ function scalarBinary(where, op, left, right) {
|
|
|
200
200
|
depth: Math.max(left.depth, right.depth) + 1
|
|
201
201
|
});
|
|
202
202
|
}
|
|
203
|
+
function roundingMode(value) {
|
|
204
|
+
if (value !== "towardZero" && value !== "nearestTiesAwayFromZero" && value !== "nearestTiesToEven")
|
|
205
|
+
throw new AuthoringError({ message: "unknown integer rounding mode" });
|
|
206
|
+
return value;
|
|
207
|
+
}
|
|
208
|
+
function scalarMulDiv(where, a, b, divisor, rounding) {
|
|
209
|
+
const scope = assertScope(where, a, b);
|
|
210
|
+
assertScope(where, a, divisor);
|
|
211
|
+
let known;
|
|
212
|
+
for (const operand of [a, b, divisor]) {
|
|
213
|
+
if (operand.result === "unresolved")
|
|
214
|
+
continue;
|
|
215
|
+
if ((operand.result !== "i64" && operand.result !== "u64") || (known !== undefined && known !== operand.result))
|
|
216
|
+
throw new AuthoringError({ message: `${where}: operands must have one matching integer kind` });
|
|
217
|
+
known = operand.result;
|
|
218
|
+
}
|
|
219
|
+
return admit(where, {
|
|
220
|
+
kind: "mulDiv",
|
|
221
|
+
a,
|
|
222
|
+
b,
|
|
223
|
+
divisor,
|
|
224
|
+
rounding: roundingMode(rounding),
|
|
225
|
+
scope,
|
|
226
|
+
result: a.result === "unresolved" || b.result === "unresolved" || divisor.result === "unresolved"
|
|
227
|
+
? "unresolved"
|
|
228
|
+
: a.result,
|
|
229
|
+
depth: Math.max(a.depth, b.depth, divisor.depth) + 1
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
function scalarMeasure(where, expr) {
|
|
233
|
+
const kind = expr.result;
|
|
234
|
+
if (kind !== "unresolved" && kind !== "intervalU64" && kind !== "intervalI64" && kind !== "intervalF64")
|
|
235
|
+
throw new AuthoringError({ message: `${where}: measure requires an interval` });
|
|
236
|
+
return admit(where, {
|
|
237
|
+
kind: "measure",
|
|
238
|
+
expr,
|
|
239
|
+
scope: expr.scope,
|
|
240
|
+
result: { unresolved: "unresolved", intervalF64: "f64", intervalI64: "u64", intervalU64: "u64" }[kind],
|
|
241
|
+
depth: expr.depth + 1
|
|
242
|
+
});
|
|
243
|
+
}
|
|
203
244
|
function scalarNegate(where, expr) {
|
|
204
245
|
return admit(where, {
|
|
205
246
|
kind: "negate",
|
|
@@ -245,12 +286,16 @@ function queryVarsOf(node) {
|
|
|
245
286
|
break;
|
|
246
287
|
case "literal":
|
|
247
288
|
break;
|
|
289
|
+
case "measure":
|
|
248
290
|
case "negate":
|
|
249
291
|
case "isNaN":
|
|
250
292
|
case "isFinite":
|
|
251
293
|
case "cast":
|
|
252
294
|
pending.push(next.expr);
|
|
253
295
|
break;
|
|
296
|
+
case "mulDiv":
|
|
297
|
+
pending.push(next.a, next.b, next.divisor);
|
|
298
|
+
break;
|
|
254
299
|
case "add":
|
|
255
300
|
case "subtract":
|
|
256
301
|
case "multiply":
|
|
@@ -302,6 +347,12 @@ function multiply(left, right) {
|
|
|
302
347
|
function divide(left, right) {
|
|
303
348
|
return scalarBinary("Scalar.divide", "divide", left, right);
|
|
304
349
|
}
|
|
350
|
+
function mulDiv(a, b, divisor, rounding) {
|
|
351
|
+
return scalarMulDiv("Scalar.mulDiv", a, b, divisor, rounding);
|
|
352
|
+
}
|
|
353
|
+
function measure(expr) {
|
|
354
|
+
return scalarMeasure("Scalar.measure", expr);
|
|
355
|
+
}
|
|
305
356
|
function toF64(expr) {
|
|
306
357
|
return scalarCast("Scalar.toF64", "toF64", "f64", expr);
|
|
307
358
|
}
|
|
@@ -320,6 +371,31 @@ function isNaNExpr(expr) {
|
|
|
320
371
|
function isFiniteExpr(expr) {
|
|
321
372
|
return scalarFloatPredicate("Scalar.isFinite", "isFinite", expr);
|
|
322
373
|
}
|
|
374
|
+
/** One lowering walk for query variables and row-field bindings. */
|
|
375
|
+
function scalarWire(node, leaf) {
|
|
376
|
+
const walk = (expr) => scalarWire(expr, leaf);
|
|
377
|
+
switch (node.kind) {
|
|
378
|
+
case "var":
|
|
379
|
+
case "field":
|
|
380
|
+
return { kind: "var", var: leaf(node) };
|
|
381
|
+
case "literal":
|
|
382
|
+
return { kind: "literal", value: literalWireOf(node.value) };
|
|
383
|
+
case "measure":
|
|
384
|
+
case "negate":
|
|
385
|
+
case "isNaN":
|
|
386
|
+
case "isFinite":
|
|
387
|
+
return { kind: node.kind, expr: walk(node.expr) };
|
|
388
|
+
case "cast":
|
|
389
|
+
return { kind: node.kind, cast: node.cast, expr: walk(node.expr) };
|
|
390
|
+
case "mulDiv":
|
|
391
|
+
return { kind: node.kind, a: walk(node.a), b: walk(node.b), divisor: walk(node.divisor), rounding: node.rounding };
|
|
392
|
+
case "add":
|
|
393
|
+
case "subtract":
|
|
394
|
+
case "multiply":
|
|
395
|
+
case "divide":
|
|
396
|
+
return { kind: node.kind, left: walk(node.left), right: walk(node.right) };
|
|
397
|
+
}
|
|
398
|
+
}
|
|
323
399
|
/** The authoring namespace: `Scalar.field("units")`, `Scalar.add(...)`. */
|
|
324
400
|
const Scalar = Object.freeze({
|
|
325
401
|
field,
|
|
@@ -333,6 +409,8 @@ const Scalar = Object.freeze({
|
|
|
333
409
|
subtract,
|
|
334
410
|
multiply,
|
|
335
411
|
divide,
|
|
412
|
+
mulDiv,
|
|
413
|
+
measure,
|
|
336
414
|
toF64,
|
|
337
415
|
toF64Exact,
|
|
338
416
|
toI64Exact,
|
|
@@ -340,5 +418,5 @@ const Scalar = Object.freeze({
|
|
|
340
418
|
isNaN: isNaNExpr,
|
|
341
419
|
isFinite: isFiniteExpr
|
|
342
420
|
});
|
|
343
|
-
export { assertDepth, assertNumeric, assertSameKind, checkBool, checkF64, checkI64, checkU64, isScalarNode, isUnresolvedScalar, literalKindOf, literalValue, literalWireOf, MAX_SCALAR_DEPTH, queryVarLeaf, queryVarsOf, Scalar, scalarAuthoringWork, scalarBinary, scalarCast, scalarFloatPredicate, scalarLiteral, scalarNegate };
|
|
421
|
+
export { assertDepth, assertNumeric, assertSameKind, checkBool, checkF64, checkI64, checkU64, isScalarNode, isUnresolvedScalar, literalKindOf, literalValue, literalWireOf, MAX_SCALAR_DEPTH, queryVarLeaf, queryVarsOf, roundingMode, Scalar, scalarAuthoringWork, scalarBinary, scalarCast, scalarFloatPredicate, scalarLiteral, scalarMeasure, scalarMulDiv, scalarNegate, scalarWire };
|
|
344
422
|
//# sourceMappingURL=scalar.js.map
|
package/dist/scalar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scalar.js","sourceRoot":"","sources":["../src/scalar.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scalar.js","sourceRoot":"","sources":["../src/scalar.ts"],"names":[],"mappings":"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"}
|
package/pack-provenance.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"candidateSourceDigest": "
|
|
2
|
+
"candidateSourceDigest": "cf0cd07de3f8596acc7b15601063911472272a859f0fad176c3f75cd48f95719",
|
|
3
3
|
"specificationRevision": "87e9a83ee21d1f843c73ac6e7057b2b740db75aae70a553b8053b4f38e87bd2d",
|
|
4
|
-
"stagedAt": "2026-09-
|
|
4
|
+
"stagedAt": "2026-09-11T16:23:11.093Z",
|
|
5
5
|
"package": "@bjornpagen/bumbledb",
|
|
6
|
-
"version": "1.
|
|
6
|
+
"version": "1.3.0"
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bjornpagen/bumbledb",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Effect-native embedded relational database for TypeScript: typed schemas and queries, exact floats, commit-time constraints",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -57,8 +57,8 @@
|
|
|
57
57
|
},
|
|
58
58
|
"private": false,
|
|
59
59
|
"optionalDependencies": {
|
|
60
|
-
"@bjornpagen/bumbledb-darwin-arm64": "1.
|
|
61
|
-
"@bjornpagen/bumbledb-linux-arm64": "1.
|
|
62
|
-
"@bjornpagen/bumbledb-linux-x64": "1.
|
|
60
|
+
"@bjornpagen/bumbledb-darwin-arm64": "1.3.0",
|
|
61
|
+
"@bjornpagen/bumbledb-linux-arm64": "1.3.0",
|
|
62
|
+
"@bjornpagen/bumbledb-linux-x64": "1.3.0"
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { type AnyClosed, closedDescriptor, closedId, sealedFieldOf } from "#closed.ts"
|
|
2
|
+
import { AuthoringError } from "#errors.ts"
|
|
3
|
+
import type { Face, SameArity, SameShapes } from "#face.ts"
|
|
4
|
+
import { type ClosedIdField, signaturesAgree } from "#fields.ts"
|
|
5
|
+
import type { RelationFields } from "#relation.ts"
|
|
6
|
+
import {
|
|
7
|
+
type ContainmentStatement,
|
|
8
|
+
type KeyStatement,
|
|
9
|
+
type MirrorsStatement,
|
|
10
|
+
statementDescriptor
|
|
11
|
+
} from "#statements.ts"
|
|
12
|
+
import { recordValue } from "#values.ts"
|
|
13
|
+
|
|
14
|
+
type KeyFace<K extends KeyStatement> = Face<K["owner"], K["projection"]>
|
|
15
|
+
type ScalarKey<K extends KeyStatement> =
|
|
16
|
+
Extract<RelationFields<K["owner"]>[K["projection"][number]], { readonly kind: "interval" }> extends never
|
|
17
|
+
? unknown
|
|
18
|
+
: { readonly "alternative identity keys must be scalar": never }
|
|
19
|
+
type Discriminator<P extends KeyStatement, C extends AnyClosed> = {
|
|
20
|
+
[F in keyof RelationFields<P["owner"]>]: RelationFields<P["owner"]>[F] extends ClosedIdField<C["name"], C["handles"]>
|
|
21
|
+
? F
|
|
22
|
+
: never
|
|
23
|
+
}[keyof RelationFields<P["owner"]>] &
|
|
24
|
+
string
|
|
25
|
+
|
|
26
|
+
function scalarKey(input: KeyStatement): KeyStatement {
|
|
27
|
+
const checked = statementDescriptor(input)
|
|
28
|
+
if (checked.kind !== "key") throw new AuthoringError({ message: "alternatives: expected a key statement" })
|
|
29
|
+
for (const name of checked.projection) {
|
|
30
|
+
if (sealedFieldOf(checked.owner, name)?.kind === "interval")
|
|
31
|
+
throw new AuthoringError({
|
|
32
|
+
message: "alternatives: identity keys must be scalar; interval keys prove point coverage"
|
|
33
|
+
})
|
|
34
|
+
}
|
|
35
|
+
return checked
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Exhaustive closed alternatives, expanded into ordinary laws. Declare the
|
|
40
|
+
* supplied keys in the schema once; this helper emits only the discriminator
|
|
41
|
+
* containment followed by one mirrors statement per handle in roster order.
|
|
42
|
+
* No new statement kind or assembled payload representation is introduced.
|
|
43
|
+
*/
|
|
44
|
+
function alternatives<
|
|
45
|
+
P extends KeyStatement,
|
|
46
|
+
C extends AnyClosed,
|
|
47
|
+
const Arms extends Record<C["handles"][number], KeyStatement>
|
|
48
|
+
>(
|
|
49
|
+
parent: P & ScalarKey<P>,
|
|
50
|
+
discriminator: Discriminator<NoInfer<P>, NoInfer<C>>,
|
|
51
|
+
roster: C,
|
|
52
|
+
arms: Arms &
|
|
53
|
+
Record<Exclude<keyof Arms, C["handles"][number]>, never> & {
|
|
54
|
+
readonly [H in C["handles"][number]]: ScalarKey<Arms[H]> &
|
|
55
|
+
SameArity<KeyFace<P>, KeyFace<Arms[H]>> &
|
|
56
|
+
SameShapes<KeyFace<P>, KeyFace<Arms[H]>>
|
|
57
|
+
}
|
|
58
|
+
): readonly (ContainmentStatement | MirrorsStatement)[] {
|
|
59
|
+
const primary = scalarKey(parent)
|
|
60
|
+
const closed = closedDescriptor(roster)
|
|
61
|
+
const field = sealedFieldOf(primary.owner, discriminator)
|
|
62
|
+
if (field === undefined || !signaturesAgree(field, closedId(closed)))
|
|
63
|
+
throw new AuthoringError({ message: "alternatives: discriminator must reference the supplied closed roster" })
|
|
64
|
+
const payloads = recordValue("alternative arms", arms, closed.handles)
|
|
65
|
+
const statements: (ContainmentStatement | MirrorsStatement)[] = [
|
|
66
|
+
statementDescriptor({
|
|
67
|
+
kind: "containment",
|
|
68
|
+
source: { owner: primary.owner, projection: [discriminator], selection: [] },
|
|
69
|
+
target: { owner: closed, projection: ["id"], selection: [] }
|
|
70
|
+
})
|
|
71
|
+
]
|
|
72
|
+
const children = new Set<string>([primary.owner.name])
|
|
73
|
+
for (const handle of closed.handles) {
|
|
74
|
+
const child = scalarKey(payloads[handle] as KeyStatement)
|
|
75
|
+
if (children.has(child.owner.name))
|
|
76
|
+
throw new AuthoringError({
|
|
77
|
+
message: `alternatives: each arm needs its own payload relation (${child.owner.name})`
|
|
78
|
+
})
|
|
79
|
+
children.add(child.owner.name)
|
|
80
|
+
statements.push(
|
|
81
|
+
statementDescriptor({
|
|
82
|
+
kind: "mirrors",
|
|
83
|
+
source: {
|
|
84
|
+
owner: primary.owner,
|
|
85
|
+
projection: primary.projection,
|
|
86
|
+
selection: [{ field: discriminator, set: { kind: "one", literal: { kind: "handle", handle } } }]
|
|
87
|
+
},
|
|
88
|
+
target: { owner: child.owner, projection: child.projection, selection: [] }
|
|
89
|
+
})
|
|
90
|
+
)
|
|
91
|
+
}
|
|
92
|
+
return Object.freeze(statements)
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export { alternatives }
|
package/src/index.ts
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* or disposal twin. The raw native bridge is not exported from this barrel.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
export { alternatives } from "#alternatives.ts"
|
|
9
10
|
export type {
|
|
10
11
|
BoundsOnTarget,
|
|
11
12
|
CapacityWeight,
|
|
@@ -112,7 +113,13 @@ export type { FindColumn } from "#query/atom.ts"
|
|
|
112
113
|
export { ALLEN } from "#query/atom.ts"
|
|
113
114
|
export type { AnyComputeExpr, ComputeExpr, ComputeValue, QueryNode } from "#query/compute.ts"
|
|
114
115
|
export { Compute } from "#query/compute.ts"
|
|
115
|
-
export type {
|
|
116
|
+
export type {
|
|
117
|
+
DescriptionHead,
|
|
118
|
+
DescriptionParameter,
|
|
119
|
+
DescriptionRow,
|
|
120
|
+
DescriptionTable,
|
|
121
|
+
QueryDescription
|
|
122
|
+
} from "#query/description.ts"
|
|
116
123
|
export { describeQuery, queryFromDescription } from "#query/description.ts"
|
|
117
124
|
export type { Agg, HeadRecordOf, RowOfFind } from "#query/find.ts"
|
|
118
125
|
export type {
|
|
@@ -147,6 +154,7 @@ export type {
|
|
|
147
154
|
VarsOf
|
|
148
155
|
} from "#query/scope.ts"
|
|
149
156
|
export { v } from "#query/scope.ts"
|
|
157
|
+
export type { IntervalVar, SegmentOp, Segments } from "#query/segments.ts"
|
|
150
158
|
export type {
|
|
151
159
|
AnyRelation,
|
|
152
160
|
Fact,
|
|
@@ -164,9 +172,12 @@ export { NativeRuntime } from "#runtime.ts"
|
|
|
164
172
|
export type { CloseReport, OutstandingWork } from "#runtime-errors.ts"
|
|
165
173
|
export { CloseFailure, DbError, dbError, runtimeErrorCodes } from "#runtime-errors.ts"
|
|
166
174
|
export type {
|
|
175
|
+
IntervalKind,
|
|
167
176
|
NumericCast,
|
|
177
|
+
Rounding,
|
|
168
178
|
ScalarExpr,
|
|
169
179
|
ScalarFieldRef,
|
|
180
|
+
ScalarInputKind,
|
|
170
181
|
ScalarKind,
|
|
171
182
|
ScalarLeafScope,
|
|
172
183
|
ScalarLiteral,
|
package/src/native.ts
CHANGED
|
@@ -89,6 +89,14 @@ type HeadOpIr = "sum" | "mean" | "min" | "max" | "count" | "pack"
|
|
|
89
89
|
type NumericCastIr = "toF64" | "toF64Exact" | "toI64Exact" | "toU64Exact"
|
|
90
90
|
|
|
91
91
|
type ScalarExprIr =
|
|
92
|
+
| { readonly kind: "measure"; readonly expr: ScalarExprIr }
|
|
93
|
+
| {
|
|
94
|
+
readonly kind: "mulDiv"
|
|
95
|
+
readonly a: ScalarExprIr
|
|
96
|
+
readonly b: ScalarExprIr
|
|
97
|
+
readonly divisor: ScalarExprIr
|
|
98
|
+
readonly rounding: import("#scalar.ts").Rounding
|
|
99
|
+
}
|
|
92
100
|
| { readonly kind: "var"; readonly var: number }
|
|
93
101
|
| { readonly kind: "literal"; readonly value: TaggedValue }
|
|
94
102
|
| { readonly kind: "negate"; readonly expr: ScalarExprIr }
|
|
@@ -114,6 +122,12 @@ type FoldOpIr =
|
|
|
114
122
|
| { readonly kind: "max" }
|
|
115
123
|
|
|
116
124
|
type FindTermIr =
|
|
125
|
+
| {
|
|
126
|
+
readonly kind: "segments"
|
|
127
|
+
readonly op: import("#query/segments.ts").SegmentOp
|
|
128
|
+
readonly left: number
|
|
129
|
+
readonly right: number
|
|
130
|
+
}
|
|
117
131
|
| { readonly kind: "var"; readonly var: number }
|
|
118
132
|
| { readonly kind: "compute"; readonly expr: ScalarExprIr }
|
|
119
133
|
| { readonly kind: "count" }
|
package/src/query/atom.ts
CHANGED
|
@@ -16,6 +16,7 @@ import type {
|
|
|
16
16
|
ShapeOf
|
|
17
17
|
} from "#query/scope.ts"
|
|
18
18
|
import { isTerm, term } from "#query/scope.ts"
|
|
19
|
+
import type { Segments } from "#query/segments.ts"
|
|
19
20
|
import type { FieldsShape } from "#relation.ts"
|
|
20
21
|
import type { ScalarKind } from "#scalar.ts"
|
|
21
22
|
import type { Uuid } from "#uuid.ts"
|
|
@@ -75,6 +76,7 @@ type AggData =
|
|
|
75
76
|
|
|
76
77
|
/** Compute `expr` is the shared `#scalar.ts` query-var node (one grammar). */
|
|
77
78
|
type FindEntryData =
|
|
79
|
+
| Segments
|
|
78
80
|
| { readonly kind: "var"; readonly over: AnyVar }
|
|
79
81
|
| { readonly kind: "aggregate"; readonly agg: AggData }
|
|
80
82
|
| { readonly kind: "compute"; readonly expr: QueryNode; readonly result: ScalarKind }
|
package/src/query/compute.ts
CHANGED
|
@@ -13,7 +13,7 @@ import type { AnyField } from "#fields.ts"
|
|
|
13
13
|
import { bool as boolField, f64 as f64Field, i64 as i64Field, rosterOf, u64 as u64Field } from "#fields.ts"
|
|
14
14
|
import type { AnyVar } from "#query/scope.ts"
|
|
15
15
|
import { isTerm, term } from "#query/scope.ts"
|
|
16
|
-
import type { ScalarKind, ScalarLiteral, ScalarNode } from "#scalar.ts"
|
|
16
|
+
import type { Rounding, ScalarKind, ScalarLiteral, ScalarNode } from "#scalar.ts"
|
|
17
17
|
import {
|
|
18
18
|
checkBool,
|
|
19
19
|
checkF64,
|
|
@@ -27,6 +27,8 @@ import {
|
|
|
27
27
|
scalarCast,
|
|
28
28
|
scalarFloatPredicate,
|
|
29
29
|
scalarLiteral,
|
|
30
|
+
scalarMeasure,
|
|
31
|
+
scalarMulDiv,
|
|
30
32
|
scalarNegate
|
|
31
33
|
} from "#scalar.ts"
|
|
32
34
|
|
|
@@ -61,7 +63,11 @@ type OperandKind<O> =
|
|
|
61
63
|
: never
|
|
62
64
|
|
|
63
65
|
function isComputeExpr(value: unknown): value is AnyComputeExpr {
|
|
64
|
-
return
|
|
66
|
+
return (
|
|
67
|
+
isScalarNode(value) &&
|
|
68
|
+
value.scope === "query-var" &&
|
|
69
|
+
(value.result === "u64" || value.result === "i64" || value.result === "f64" || value.result === "bool")
|
|
70
|
+
)
|
|
65
71
|
}
|
|
66
72
|
|
|
67
73
|
function varKindOf(where: string, ref: AnyVar): ScalarKind {
|
|
@@ -167,6 +173,37 @@ function negate<O extends SignedOperand>(operand: O): ComputeExpr<OperandKind<O>
|
|
|
167
173
|
return scalarNegate(where, asQueryNode(where, operand)) as ComputeExpr<OperandKind<O> & ("i64" | "f64")>
|
|
168
174
|
}
|
|
169
175
|
|
|
176
|
+
type IntegerOperand =
|
|
177
|
+
| ComputeExpr<"u64">
|
|
178
|
+
| ComputeExpr<"i64">
|
|
179
|
+
| (AnyVar & { readonly field: { readonly kind: "i64" | "u64" } })
|
|
180
|
+
|
|
181
|
+
function mulDiv<A extends IntegerOperand, B extends IntegerOperand, D extends IntegerOperand>(
|
|
182
|
+
a: A,
|
|
183
|
+
b: B & (OperandKind<A> extends OperandKind<B> ? unknown : never),
|
|
184
|
+
divisor: D & (OperandKind<A> extends OperandKind<D> ? unknown : never),
|
|
185
|
+
rounding: Rounding
|
|
186
|
+
): ComputeExpr<OperandKind<A>> {
|
|
187
|
+
return scalarMulDiv(
|
|
188
|
+
"Compute.mulDiv",
|
|
189
|
+
asQueryNode("Compute.mulDiv", a),
|
|
190
|
+
asQueryNode("Compute.mulDiv", b),
|
|
191
|
+
asQueryNode("Compute.mulDiv", divisor),
|
|
192
|
+
rounding
|
|
193
|
+
) as ComputeExpr<OperandKind<A>>
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
function measure<V extends AnyVar & { readonly field: { readonly kind: "interval" } }>(
|
|
197
|
+
interval: V
|
|
198
|
+
): ComputeExpr<V["field"] extends { readonly element: "f64" } ? "f64" : "u64"> {
|
|
199
|
+
if (!isTerm(interval) || interval[term] !== "var" || interval.field.kind !== "interval")
|
|
200
|
+
throw new AuthoringError({ message: "Compute.measure: expected an interval variable" })
|
|
201
|
+
const kind = { u64: "intervalU64", i64: "intervalI64", f64: "intervalF64" } as const
|
|
202
|
+
return scalarMeasure("Compute.measure", queryVarLeaf(interval, kind[interval.field.element])) as ComputeExpr<
|
|
203
|
+
V["field"] extends { readonly element: "f64" } ? "f64" : "u64"
|
|
204
|
+
>
|
|
205
|
+
}
|
|
206
|
+
|
|
170
207
|
function toF64(operand: ArithmeticOperand): ComputeExpr<"f64"> {
|
|
171
208
|
const where = "Compute.toF64"
|
|
172
209
|
return scalarCast(where, "toF64", "f64", asQueryNode(where, operand)) as ComputeExpr<"f64">
|
|
@@ -225,6 +262,8 @@ const Compute = Object.freeze({
|
|
|
225
262
|
subtract,
|
|
226
263
|
multiply,
|
|
227
264
|
divide,
|
|
265
|
+
mulDiv,
|
|
266
|
+
measure,
|
|
228
267
|
toF64,
|
|
229
268
|
toF64Exact,
|
|
230
269
|
toI64Exact,
|