@quereus/quereus 4.9.0 → 4.10.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/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +19 -4
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/statement.d.ts.map +1 -1
- package/dist/src/core/statement.js +74 -15
- package/dist/src/core/statement.js.map +1 -1
- package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
- package/dist/src/func/builtins/aggregate.js +85 -33
- package/dist/src/func/builtins/aggregate.js.map +1 -1
- package/dist/src/func/builtins/explain.d.ts.map +1 -1
- package/dist/src/func/builtins/explain.js +9 -2
- package/dist/src/func/builtins/explain.js.map +1 -1
- package/dist/src/func/builtins/scalar.d.ts.map +1 -1
- package/dist/src/func/builtins/scalar.js +4 -2
- package/dist/src/func/builtins/scalar.js.map +1 -1
- package/dist/src/func/registration.d.ts +6 -0
- package/dist/src/func/registration.d.ts.map +1 -1
- package/dist/src/func/registration.js +1 -0
- package/dist/src/func/registration.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
- package/dist/src/planner/nodes/scalar.js +13 -1
- package/dist/src/planner/nodes/scalar.js.map +1 -1
- package/dist/src/runtime/emission-context.d.ts +14 -1
- package/dist/src/runtime/emission-context.d.ts.map +1 -1
- package/dist/src/runtime/emission-context.js +17 -5
- package/dist/src/runtime/emission-context.js.map +1 -1
- package/dist/src/runtime/emit/aggregate-setup.d.ts +44 -8
- package/dist/src/runtime/emit/aggregate-setup.d.ts.map +1 -1
- package/dist/src/runtime/emit/aggregate-setup.js +79 -15
- package/dist/src/runtime/emit/aggregate-setup.js.map +1 -1
- package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
- package/dist/src/runtime/emit/aggregate.js +21 -106
- package/dist/src/runtime/emit/aggregate.js.map +1 -1
- package/dist/src/runtime/emit/asof-scan.js +1 -1
- package/dist/src/runtime/emit/asof-scan.js.map +1 -1
- package/dist/src/runtime/emit/between.d.ts +2 -0
- package/dist/src/runtime/emit/between.d.ts.map +1 -1
- package/dist/src/runtime/emit/between.js +7 -8
- package/dist/src/runtime/emit/between.js.map +1 -1
- package/dist/src/runtime/emit/binary.d.ts +27 -5
- package/dist/src/runtime/emit/binary.d.ts.map +1 -1
- package/dist/src/runtime/emit/binary.js +266 -177
- package/dist/src/runtime/emit/binary.js.map +1 -1
- package/dist/src/runtime/emit/case.d.ts +34 -0
- package/dist/src/runtime/emit/case.d.ts.map +1 -1
- package/dist/src/runtime/emit/case.js +18 -11
- package/dist/src/runtime/emit/case.js.map +1 -1
- package/dist/src/runtime/emit/cast.d.ts +2 -0
- package/dist/src/runtime/emit/cast.d.ts.map +1 -1
- package/dist/src/runtime/emit/cast.js +7 -5
- package/dist/src/runtime/emit/cast.js.map +1 -1
- package/dist/src/runtime/emit/column-reference.d.ts +3 -1
- package/dist/src/runtime/emit/column-reference.d.ts.map +1 -1
- package/dist/src/runtime/emit/column-reference.js +6 -2
- package/dist/src/runtime/emit/column-reference.js.map +1 -1
- package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
- package/dist/src/runtime/emit/dml-executor.js +21 -0
- package/dist/src/runtime/emit/dml-executor.js.map +1 -1
- package/dist/src/runtime/emit/filter.d.ts +1 -1
- package/dist/src/runtime/emit/filter.js +1 -1
- package/dist/src/runtime/emit/hash-aggregate.d.ts.map +1 -1
- package/dist/src/runtime/emit/hash-aggregate.js +18 -88
- package/dist/src/runtime/emit/hash-aggregate.js.map +1 -1
- package/dist/src/runtime/emit/literal.d.ts +14 -1
- package/dist/src/runtime/emit/literal.d.ts.map +1 -1
- package/dist/src/runtime/emit/literal.js +33 -7
- package/dist/src/runtime/emit/literal.js.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts +7 -1
- package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
- package/dist/src/runtime/emit/materialized-view-helpers.js +121 -32
- package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
- package/dist/src/runtime/emit/parameter.d.ts +3 -1
- package/dist/src/runtime/emit/parameter.d.ts.map +1 -1
- package/dist/src/runtime/emit/parameter.js +7 -2
- package/dist/src/runtime/emit/parameter.js.map +1 -1
- package/dist/src/runtime/emit/scalar-function.d.ts +29 -1
- package/dist/src/runtime/emit/scalar-function.d.ts.map +1 -1
- package/dist/src/runtime/emit/scalar-function.js +66 -16
- package/dist/src/runtime/emit/scalar-function.js.map +1 -1
- package/dist/src/runtime/emit/scalar-op.d.ts +63 -0
- package/dist/src/runtime/emit/scalar-op.d.ts.map +1 -0
- package/dist/src/runtime/emit/scalar-op.js +37 -0
- package/dist/src/runtime/emit/scalar-op.js.map +1 -0
- package/dist/src/runtime/emit/scan.d.ts.map +1 -1
- package/dist/src/runtime/emit/scan.js +19 -1
- package/dist/src/runtime/emit/scan.js.map +1 -1
- package/dist/src/runtime/emit/temporal-arithmetic.d.ts +18 -8
- package/dist/src/runtime/emit/temporal-arithmetic.d.ts.map +1 -1
- package/dist/src/runtime/emit/temporal-arithmetic.js +29 -311
- package/dist/src/runtime/emit/temporal-arithmetic.js.map +1 -1
- package/dist/src/runtime/emit/unary.d.ts +2 -0
- package/dist/src/runtime/emit/unary.d.ts.map +1 -1
- package/dist/src/runtime/emit/unary.js +125 -53
- package/dist/src/runtime/emit/unary.js.map +1 -1
- package/dist/src/runtime/emitters.d.ts +22 -0
- package/dist/src/runtime/emitters.d.ts.map +1 -1
- package/dist/src/runtime/emitters.js +29 -0
- package/dist/src/runtime/emitters.js.map +1 -1
- package/dist/src/runtime/scalar-fusion.d.ts +47 -0
- package/dist/src/runtime/scalar-fusion.d.ts.map +1 -0
- package/dist/src/runtime/scalar-fusion.js +275 -0
- package/dist/src/runtime/scalar-fusion.js.map +1 -0
- package/dist/src/runtime/strict-flags.d.ts +9 -0
- package/dist/src/runtime/strict-flags.d.ts.map +1 -1
- package/dist/src/runtime/strict-flags.js +9 -0
- package/dist/src/runtime/strict-flags.js.map +1 -1
- package/dist/src/runtime/strict-fork.js +2 -2
- package/dist/src/runtime/strict-fork.js.map +1 -1
- package/dist/src/runtime/strict-representation.d.ts +78 -0
- package/dist/src/runtime/strict-representation.d.ts.map +1 -0
- package/dist/src/runtime/strict-representation.js +159 -0
- package/dist/src/runtime/strict-representation.js.map +1 -0
- package/dist/src/schema/function.d.ts +15 -0
- package/dist/src/schema/function.d.ts.map +1 -1
- package/dist/src/schema/function.js.map +1 -1
- package/dist/src/types/builtin-types.d.ts.map +1 -1
- package/dist/src/types/builtin-types.js +17 -8
- package/dist/src/types/builtin-types.js.map +1 -1
- package/dist/src/types/temporal-ops.d.ts +119 -0
- package/dist/src/types/temporal-ops.d.ts.map +1 -0
- package/dist/src/types/temporal-ops.js +348 -0
- package/dist/src/types/temporal-ops.js.map +1 -0
- package/dist/src/types/temporal-types.d.ts.map +1 -1
- package/dist/src/types/temporal-types.js +8 -3
- package/dist/src/types/temporal-types.js.map +1 -1
- package/dist/src/util/coercion.d.ts +22 -7
- package/dist/src/util/coercion.d.ts.map +1 -1
- package/dist/src/util/coercion.js +28 -15
- package/dist/src/util/coercion.js.map +1 -1
- package/dist/src/util/comparison.d.ts +25 -0
- package/dist/src/util/comparison.d.ts.map +1 -1
- package/dist/src/util/comparison.js +25 -0
- package/dist/src/util/comparison.js.map +1 -1
- package/dist/src/util/key-tuple-codec.d.ts +12 -3
- package/dist/src/util/key-tuple-codec.d.ts.map +1 -1
- package/dist/src/util/key-tuple-codec.js.map +1 -1
- package/dist/src/util/numeric-canonical.d.ts +26 -0
- package/dist/src/util/numeric-canonical.d.ts.map +1 -0
- package/dist/src/util/numeric-canonical.js +66 -0
- package/dist/src/util/numeric-canonical.js.map +1 -0
- package/dist/src/vtab/module.d.ts +25 -0
- package/dist/src/vtab/module.d.ts.map +1 -1
- package/package.json +4 -3
|
@@ -225,6 +225,21 @@ export interface ScalarFunctionSchema extends BaseFunctionSchema {
|
|
|
225
225
|
returnType: ScalarType;
|
|
226
226
|
/** Direct scalar function implementation */
|
|
227
227
|
implementation: ScalarFunc;
|
|
228
|
+
/**
|
|
229
|
+
* When `true`, {@link ScalarFunctionSchema.implementation} may return a Promise.
|
|
230
|
+
* Absent / `false` **declares the function synchronous**, which lets the engine
|
|
231
|
+
* fuse its calls into a direct closure instead of running a per-row sub-program
|
|
232
|
+
* (`runtime/scalar-fusion.ts`; see docs/runtime.md § Scalar fusion).
|
|
233
|
+
*
|
|
234
|
+
* A declared `async function` / `async` arrow is detected automatically and never
|
|
235
|
+
* needs this flag. It exists for the implementation that returns a Promise WITHOUT
|
|
236
|
+
* being declared `async` — a non-`async` function returning `somePromise`, or a
|
|
237
|
+
* `.bind()` / wrapper around an async one — which is invisible to that detection.
|
|
238
|
+
* Such a function that declares nothing fails loudly at its first fused call,
|
|
239
|
+
* naming itself and this flag, rather than letting a Promise flow on as if it were
|
|
240
|
+
* a value.
|
|
241
|
+
*/
|
|
242
|
+
isAsync?: boolean;
|
|
228
243
|
/**
|
|
229
244
|
* Optional type inference function for polymorphic functions.
|
|
230
245
|
* If provided, this function will be called at planning time to determine
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../../src/schema/function.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../../src/schema/function.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../../src/schema/function.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../../src/schema/function.ts"],"names":[],"mappings":"AAyUA;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CACnC,IAAuC,EACvC,QAAuC,EACvC,MAAiC;IAEjC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAChC,IAAI,CAAC;YACJ,OAAQ,IAA0B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,SAAS,CAAC;QAClB,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAuB;IAC7D,MAAM,SAAS,GAAG,OAAyF,CAAC;IAC5G,IAAI,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACrE,OAAO,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;IACnC,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAuED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAsB;IAC5D,OAAO,MAAM,CAAC,UAAU,EAAE,SAAS,KAAK,QAAQ,IAAI,gBAAgB,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU,CAAC;AAC/H,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAAsB;IACjE,OAAO,MAAM,CAAC,UAAU,EAAE,SAAS,KAAK,UAAU,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAsB;IAC/D,OAAO,cAAc,IAAI,MAAM,IAAI,kBAAkB,IAAI,MAAM,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,OAAe;IAC3D,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,OAAO,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin-types.d.ts","sourceRoot":"","sources":["../../../src/types/builtin-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAgB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"builtin-types.d.ts","sourceRoot":"","sources":["../../../src/types/builtin-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAIjF,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,oBAAoB,CAAC;AAkCjE;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,WAOvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,WAiD1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,WA4BvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,WAuBvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,WA6CvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,WA8B1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,WAkD1B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,WActB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC,GAAG,OAAO,CAK/E;AAcD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,GAAG,OAAO,CAKtG"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PhysicalType, compareNulls } from './logical-type.js';
|
|
2
2
|
import { compareSqlValuesFast, BINARY_COLLATION } from '../util/comparison.js';
|
|
3
3
|
import { valueToText } from '../util/value-text.js';
|
|
4
|
+
import { canonicalizeInteger } from '../util/numeric-canonical.js';
|
|
4
5
|
/**
|
|
5
6
|
* Orders a non-null `number | bigint` pair. JS relational operators compare the two
|
|
6
7
|
* representations by exact mathematical value, so no precision is lost past 2^53
|
|
@@ -61,12 +62,13 @@ export const INTEGER_TYPE = {
|
|
|
61
62
|
if (v === null)
|
|
62
63
|
return null;
|
|
63
64
|
if (typeof v === 'bigint')
|
|
64
|
-
return v;
|
|
65
|
+
return canonicalizeInteger(v);
|
|
65
66
|
if (typeof v === 'number') {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
// Truncate, then canonicalize: a finite whole value past the safe-integer
|
|
68
|
+
// boundary widens to an exact bigint (so `1e20` stores exactly, R1), while
|
|
69
|
+
// NaN/±Infinity pass through untouched for `validate` to reject with the
|
|
70
|
+
// existing MISMATCH message (`BigInt()` would throw a RangeError instead).
|
|
71
|
+
return canonicalizeInteger(Math.trunc(v));
|
|
70
72
|
}
|
|
71
73
|
if (typeof v === 'boolean')
|
|
72
74
|
return v ? 1 : 0;
|
|
@@ -85,7 +87,9 @@ export const INTEGER_TYPE = {
|
|
|
85
87
|
const parsed = Number(digits);
|
|
86
88
|
if (Number.isSafeInteger(parsed))
|
|
87
89
|
return parsed;
|
|
88
|
-
|
|
90
|
+
// Canonical by construction (a digit string whose Number() is unsafe names a
|
|
91
|
+
// value outside the safe range); wrapped anyway so R1 is locally evident.
|
|
92
|
+
return canonicalizeInteger(BigInt(digits[0] === '+' ? digits.slice(1) : digits));
|
|
89
93
|
}
|
|
90
94
|
throw new TypeError(`Cannot convert ${typeof v} to INTEGER`);
|
|
91
95
|
},
|
|
@@ -263,8 +267,12 @@ export const NUMERIC_TYPE = {
|
|
|
263
267
|
parse: (v) => {
|
|
264
268
|
if (v === null)
|
|
265
269
|
return null;
|
|
266
|
-
|
|
270
|
+
// The number arm accepts non-integers unchanged (NUMERIC's real half); only
|
|
271
|
+
// the bigint arm canonicalizes, narrowing a safe-range bigint to number (R1).
|
|
272
|
+
if (typeof v === 'number')
|
|
267
273
|
return v;
|
|
274
|
+
if (typeof v === 'bigint')
|
|
275
|
+
return canonicalizeInteger(v);
|
|
268
276
|
if (typeof v === 'boolean')
|
|
269
277
|
return v ? 1 : 0;
|
|
270
278
|
if (typeof v === 'string') {
|
|
@@ -280,7 +288,8 @@ export const NUMERIC_TYPE = {
|
|
|
280
288
|
const parsed = Number(trimmed);
|
|
281
289
|
if (Number.isSafeInteger(parsed))
|
|
282
290
|
return parsed;
|
|
283
|
-
|
|
291
|
+
// Canonical by construction — see INTEGER_TYPE.parse's string arm.
|
|
292
|
+
return canonicalizeInteger(BigInt(trimmed[0] === '+' ? trimmed.slice(1) : trimmed));
|
|
284
293
|
}
|
|
285
294
|
// Fall back to real
|
|
286
295
|
const parsed = parseFloat(trimmed);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin-types.js","sourceRoot":"","sources":["../../../src/types/builtin-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"builtin-types.js","sourceRoot":"","sources":["../../../src/types/builtin-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { Temporal } from 'temporal-polyfill';
|
|
2
|
+
import type { SqlValue } from '../common/types.js';
|
|
3
|
+
import type { LogicalType } from './logical-type.js';
|
|
4
|
+
/**
|
|
5
|
+
* The single table of supported temporal arithmetic operations, keyed by
|
|
6
|
+
* `(operator, left operand kind, right operand kind)`.
|
|
7
|
+
*
|
|
8
|
+
* Two ways in, and they must agree:
|
|
9
|
+
* - from *declared* logical types, via {@link temporalOpCaseForTypes} — the planner
|
|
10
|
+
* (`BinaryOpNode.generateType`) announces the case's `resultType` and the emitter
|
|
11
|
+
* (`buildNumericOpSpec`) bakes the same case's `apply` into the per-row body. One
|
|
12
|
+
* function for both, so the announced type and the executed case cannot diverge;
|
|
13
|
+
* - from the *values*, via `tryTemporalArithmetic` — the per-row path taken only when a
|
|
14
|
+
* declared type settles nothing (TEXT / ANY / NULL / TIMESTAMP / a plugin type).
|
|
15
|
+
*
|
|
16
|
+
* Before this table existed, the set of supported combinations lived only as control
|
|
17
|
+
* flow inside `tryTemporalArithmetic`, so the planner could not consult it and
|
|
18
|
+
* announced the left operand's type for every temporal pair — DATE for
|
|
19
|
+
* `date - date`, INTEGER for `2 * timespan`. Callers of the declared type
|
|
20
|
+
* (the numeric-fast arithmetic path, `create table … as select`, view column types,
|
|
21
|
+
* `Statement.getColumnType`) were reading a type that did not predict the value.
|
|
22
|
+
*
|
|
23
|
+
* Lives in `types/` rather than `runtime/emit/` precisely because both sides import
|
|
24
|
+
* it; `types/` already depends on temporal-polyfill, so nothing new is pulled in.
|
|
25
|
+
*/
|
|
26
|
+
/** The coarse operand shape temporal arithmetic dispatches on. */
|
|
27
|
+
export type TemporalOperandKind = 'date' | 'time' | 'datetime' | 'timespan' | 'number';
|
|
28
|
+
/** True for the four kinds that make an operation *temporal*; `'number'` alone does not. */
|
|
29
|
+
export declare function isTemporalKind(kind: TemporalOperandKind | undefined): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Plan-time operand kind from a declared logical type.
|
|
32
|
+
*
|
|
33
|
+
* Identity against the registered singletons (the precedent set by
|
|
34
|
+
* `runtime/emit/unary.ts`'s TIMESPAN negation arm): a plugin-registered type that
|
|
35
|
+
* shadows a built-in name is a different object, so it fails identity and the caller
|
|
36
|
+
* falls back to runtime sniffing rather than mis-specializing.
|
|
37
|
+
*
|
|
38
|
+
* Returns undefined for TEXT / ANY / BLOB / NULL and for TIMESTAMP. TIMESTAMP is
|
|
39
|
+
* deliberately excluded: it is `isTemporal` but not `isNumeric`, it is an integer
|
|
40
|
+
* instant rather than a string temporal, and it appears in no case below — so
|
|
41
|
+
* `ts_col + 1` keeps taking the runtime-sniffed path and today's announced type.
|
|
42
|
+
*/
|
|
43
|
+
export declare function temporalKindOfType(logical: LogicalType): TemporalOperandKind | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Runtime operand kind from an actual value — the shape probes that used to sit at the
|
|
46
|
+
* top of `tryTemporalArithmetic`, with unchanged semantics.
|
|
47
|
+
*
|
|
48
|
+
* The four string shapes are mutually exclusive on canonical values, so probe order is
|
|
49
|
+
* not observable.
|
|
50
|
+
*
|
|
51
|
+
* `bigint` deliberately yields undefined rather than `'number'` — see the NOTE on the
|
|
52
|
+
* `*` / `/` number cases below.
|
|
53
|
+
*/
|
|
54
|
+
export declare function temporalKindOfValue(v: SqlValue): TemporalOperandKind | undefined;
|
|
55
|
+
/** The one home for the "no such combination" error, so both callers spell it alike. */
|
|
56
|
+
export declare function unsupportedTemporalOp(): never;
|
|
57
|
+
export interface TemporalOpCase {
|
|
58
|
+
/** Logical type of the result — what `BinaryOpNode.generateType` announces. */
|
|
59
|
+
readonly resultType: LogicalType;
|
|
60
|
+
/** Perform the operation on two non-null values. May throw; callers wrap. */
|
|
61
|
+
readonly apply: (v1: SqlValue, v2: SqlValue) => SqlValue;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Check if a Temporal.Duration contains calendar units (years, months, weeks)
|
|
65
|
+
* that cannot be converted to a single time unit without a relativeTo reference.
|
|
66
|
+
*/
|
|
67
|
+
export declare function hasCalendarUnits(d: Temporal.Duration): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Scale each field of a duration by a factor.
|
|
70
|
+
* Works for both calendar and non-calendar durations.
|
|
71
|
+
*/
|
|
72
|
+
export declare function scaleDuration(d: Temporal.Duration, factor: number): Temporal.Duration;
|
|
73
|
+
/**
|
|
74
|
+
* Divide a duration's fields by a divisor, cascading remainders to smaller units.
|
|
75
|
+
* Cascade chain: years→months(×12), weeks→days(×7), days→hours(×24),
|
|
76
|
+
* hours→minutes(×60), minutes→seconds(×60), seconds→ms(×1000),
|
|
77
|
+
* ms→μs(×1000), μs→ns(×1000).
|
|
78
|
+
* Note: months cannot cascade to days (variable month length).
|
|
79
|
+
*/
|
|
80
|
+
export declare function divideDuration(d: Temporal.Duration, divisor: number): Temporal.Duration;
|
|
81
|
+
/**
|
|
82
|
+
* Look up the case for one `(operator, left kind, right kind)` triple.
|
|
83
|
+
* `undefined` means the combination is not supported.
|
|
84
|
+
*/
|
|
85
|
+
export declare function temporalOpCase(operator: string, left: TemporalOperandKind, right: TemporalOperandKind): TemporalOpCase | undefined;
|
|
86
|
+
/**
|
|
87
|
+
* What a pair of DECLARED logical types settles about the operation, resolved once at
|
|
88
|
+
* plan/emit time.
|
|
89
|
+
*
|
|
90
|
+
* `kinds` absent means at least one declared type settles nothing (TEXT / ANY / NULL /
|
|
91
|
+
* TIMESTAMP / a plugin-registered type), so the caller must derive the kinds from the
|
|
92
|
+
* runtime values instead. `kinds` present with `entry` absent means both kinds are known
|
|
93
|
+
* and the table has no case for them — statically unsupported, whatever the values are.
|
|
94
|
+
*/
|
|
95
|
+
export interface TemporalTypeLookup {
|
|
96
|
+
readonly kinds?: readonly [TemporalOperandKind, TemporalOperandKind];
|
|
97
|
+
readonly entry?: TemporalOpCase;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* The one route from two declared logical types to a case.
|
|
101
|
+
*
|
|
102
|
+
* Two callers must reach the same answer or the announced result type stops predicting
|
|
103
|
+
* the value: `BinaryOpNode.generateType` announces `entry.resultType`, and
|
|
104
|
+
* `buildNumericOpSpec`'s temporal branch emits a body that runs `entry.apply`. Neither
|
|
105
|
+
* re-spells the kind derivation, so the two cannot come to select different entries.
|
|
106
|
+
*/
|
|
107
|
+
export declare function temporalOpCaseForTypes(operator: string, left: LogicalType, right: LogicalType): TemporalTypeLookup;
|
|
108
|
+
/** Test-only view of the table's keys, so a spec can assert its shape without re-listing it. */
|
|
109
|
+
export declare function temporalOpCaseKeys(): readonly string[];
|
|
110
|
+
/**
|
|
111
|
+
* Run one case with the exact envelope `tryTemporalArithmetic` has always had:
|
|
112
|
+
* null propagation, then `apply`, with a malformed value degrading to null while an
|
|
113
|
+
* `UNSUPPORTED` error propagates.
|
|
114
|
+
*
|
|
115
|
+
* Both the runtime-sniffed path and the emit-time specialized path call this, so the
|
|
116
|
+
* two cannot diverge on null handling or on what a bad value does.
|
|
117
|
+
*/
|
|
118
|
+
export declare function runTemporalCase(entry: TemporalOpCase, v1: SqlValue, v2: SqlValue): SqlValue;
|
|
119
|
+
//# sourceMappingURL=temporal-ops.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporal-ops.d.ts","sourceRoot":"","sources":["../../../src/types/temporal-ops.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,kEAAkE;AAClE,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEvF,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,IAAI,EAAE,mBAAmB,GAAG,SAAS,GAAG,OAAO,CAE7E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,mBAAmB,GAAG,SAAS,CAWxF;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,QAAQ,GAAG,mBAAmB,GAAG,SAAS,CAchF;AAED,wFAAwF;AACxF,wBAAgB,qBAAqB,IAAI,KAAK,CAK7C;AAED,MAAM,WAAW,cAAc;IAC9B,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,KAAK,QAAQ,CAAC;CACzD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAE9D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAarF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAmDvF;AAgKD;;;GAGG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,mBAAmB,GACxB,cAAc,GAAG,SAAS,CAE5B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACrC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,WAAW,GAChB,kBAAkB,CAKpB;AAED,gGAAgG;AAChG,wBAAgB,kBAAkB,IAAI,SAAS,MAAM,EAAE,CAEtD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,QAAQ,CAU3F"}
|