@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
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
import { Temporal } from 'temporal-polyfill';
|
|
2
|
+
import { StatusCode } from '../common/types.js';
|
|
3
|
+
import { QuereusError } from '../common/errors.js';
|
|
4
|
+
import { DATE_TYPE, TIME_TYPE, DATETIME_TYPE, TIMESPAN_TYPE } from './temporal-types.js';
|
|
5
|
+
import { REAL_TYPE } from './builtin-types.js';
|
|
6
|
+
/** True for the four kinds that make an operation *temporal*; `'number'` alone does not. */
|
|
7
|
+
export function isTemporalKind(kind) {
|
|
8
|
+
return kind !== undefined && kind !== 'number';
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Plan-time operand kind from a declared logical type.
|
|
12
|
+
*
|
|
13
|
+
* Identity against the registered singletons (the precedent set by
|
|
14
|
+
* `runtime/emit/unary.ts`'s TIMESPAN negation arm): a plugin-registered type that
|
|
15
|
+
* shadows a built-in name is a different object, so it fails identity and the caller
|
|
16
|
+
* falls back to runtime sniffing rather than mis-specializing.
|
|
17
|
+
*
|
|
18
|
+
* Returns undefined for TEXT / ANY / BLOB / NULL and for TIMESTAMP. TIMESTAMP is
|
|
19
|
+
* deliberately excluded: it is `isTemporal` but not `isNumeric`, it is an integer
|
|
20
|
+
* instant rather than a string temporal, and it appears in no case below — so
|
|
21
|
+
* `ts_col + 1` keeps taking the runtime-sniffed path and today's announced type.
|
|
22
|
+
*/
|
|
23
|
+
export function temporalKindOfType(logical) {
|
|
24
|
+
if (logical === DATE_TYPE)
|
|
25
|
+
return 'date';
|
|
26
|
+
if (logical === TIME_TYPE)
|
|
27
|
+
return 'time';
|
|
28
|
+
if (logical === DATETIME_TYPE)
|
|
29
|
+
return 'datetime';
|
|
30
|
+
if (logical === TIMESPAN_TYPE)
|
|
31
|
+
return 'timespan';
|
|
32
|
+
// NULL_TYPE is not `isNumeric`, so a NULL-typed operand lands here as undefined
|
|
33
|
+
// and no case is selected. Either way the answer is NULL — both
|
|
34
|
+
// `tryTemporalArithmetic` and `runTemporalCase` short-circuit on a null value
|
|
35
|
+
// before any kind is consulted.
|
|
36
|
+
if (logical.isNumeric && !logical.isTemporal)
|
|
37
|
+
return 'number';
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Runtime operand kind from an actual value — the shape probes that used to sit at the
|
|
42
|
+
* top of `tryTemporalArithmetic`, with unchanged semantics.
|
|
43
|
+
*
|
|
44
|
+
* The four string shapes are mutually exclusive on canonical values, so probe order is
|
|
45
|
+
* not observable.
|
|
46
|
+
*
|
|
47
|
+
* `bigint` deliberately yields undefined rather than `'number'` — see the NOTE on the
|
|
48
|
+
* `*` / `/` number cases below.
|
|
49
|
+
*/
|
|
50
|
+
export function temporalKindOfValue(v) {
|
|
51
|
+
if (typeof v === 'string') {
|
|
52
|
+
// ISO 8601 date (YYYY-MM-DD)
|
|
53
|
+
if (/^\d{4}-\d{2}-\d{2}$/.test(v))
|
|
54
|
+
return 'date';
|
|
55
|
+
// ISO 8601 datetime (with T separator)
|
|
56
|
+
if (v.includes('T') && /^\d{4}-\d{2}-\d{2}T/.test(v))
|
|
57
|
+
return 'datetime';
|
|
58
|
+
// ISO 8601 time (HH:MM:SS)
|
|
59
|
+
if (/^\d{2}:\d{2}:\d{2}/.test(v))
|
|
60
|
+
return 'time';
|
|
61
|
+
// ISO 8601 duration (starts with P, or -P when negative)
|
|
62
|
+
if (v.startsWith('P') || v.startsWith('-P'))
|
|
63
|
+
return 'timespan';
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
if (typeof v === 'number')
|
|
67
|
+
return 'number';
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
/** The one home for the "no such combination" error, so both callers spell it alike. */
|
|
71
|
+
export function unsupportedTemporalOp() {
|
|
72
|
+
throw new QuereusError(`Unsupported temporal operation`, StatusCode.UNSUPPORTED);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Check if a Temporal.Duration contains calendar units (years, months, weeks)
|
|
76
|
+
* that cannot be converted to a single time unit without a relativeTo reference.
|
|
77
|
+
*/
|
|
78
|
+
export function hasCalendarUnits(d) {
|
|
79
|
+
return d.years !== 0 || d.months !== 0 || d.weeks !== 0;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Scale each field of a duration by a factor.
|
|
83
|
+
* Works for both calendar and non-calendar durations.
|
|
84
|
+
*/
|
|
85
|
+
export function scaleDuration(d, factor) {
|
|
86
|
+
return Temporal.Duration.from({
|
|
87
|
+
years: d.years * factor,
|
|
88
|
+
months: d.months * factor,
|
|
89
|
+
weeks: d.weeks * factor,
|
|
90
|
+
days: d.days * factor,
|
|
91
|
+
hours: d.hours * factor,
|
|
92
|
+
minutes: d.minutes * factor,
|
|
93
|
+
seconds: d.seconds * factor,
|
|
94
|
+
milliseconds: d.milliseconds * factor,
|
|
95
|
+
microseconds: d.microseconds * factor,
|
|
96
|
+
nanoseconds: d.nanoseconds * factor,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Divide a duration's fields by a divisor, cascading remainders to smaller units.
|
|
101
|
+
* Cascade chain: years→months(×12), weeks→days(×7), days→hours(×24),
|
|
102
|
+
* hours→minutes(×60), minutes→seconds(×60), seconds→ms(×1000),
|
|
103
|
+
* ms→μs(×1000), μs→ns(×1000).
|
|
104
|
+
* Note: months cannot cascade to days (variable month length).
|
|
105
|
+
*/
|
|
106
|
+
export function divideDuration(d, divisor) {
|
|
107
|
+
// Cascade pairs: [field, next-field, conversion-factor]
|
|
108
|
+
const cascade = [
|
|
109
|
+
['years', 'months', 12],
|
|
110
|
+
// months→days gap: no fixed conversion
|
|
111
|
+
['weeks', 'days', 7],
|
|
112
|
+
['days', 'hours', 24],
|
|
113
|
+
['hours', 'minutes', 60],
|
|
114
|
+
['minutes', 'seconds', 60],
|
|
115
|
+
['seconds', 'milliseconds', 1000],
|
|
116
|
+
['milliseconds', 'microseconds', 1000],
|
|
117
|
+
['microseconds', 'nanoseconds', 1000],
|
|
118
|
+
];
|
|
119
|
+
// Build a mutable map of field values
|
|
120
|
+
const fields = {
|
|
121
|
+
years: d.years, months: d.months, weeks: d.weeks,
|
|
122
|
+
days: d.days, hours: d.hours, minutes: d.minutes,
|
|
123
|
+
seconds: d.seconds, milliseconds: d.milliseconds,
|
|
124
|
+
microseconds: d.microseconds, nanoseconds: d.nanoseconds,
|
|
125
|
+
};
|
|
126
|
+
for (const [field, nextField, factor] of cascade) {
|
|
127
|
+
const value = fields[field];
|
|
128
|
+
const quotient = Math.trunc(value / divisor);
|
|
129
|
+
const remainder = value - quotient * divisor;
|
|
130
|
+
fields[field] = quotient;
|
|
131
|
+
fields[nextField] += remainder * factor;
|
|
132
|
+
}
|
|
133
|
+
// Final field (nanoseconds) — just divide, truncate to integer
|
|
134
|
+
fields['nanoseconds'] = Math.trunc(fields['nanoseconds'] / divisor);
|
|
135
|
+
// Months divide independently: the cascade above already folded years into them, but
|
|
136
|
+
// a month has no fixed day count, so the sub-month remainder cannot cascade onward.
|
|
137
|
+
// NOTE: that remainder is truncated away — `timespan('P1M') / 2` is `PT0S`, not `P15D`.
|
|
138
|
+
// Preserved as found; revisit if a caller needs a reference-date-relative division.
|
|
139
|
+
fields['months'] = Math.trunc(fields['months'] / divisor);
|
|
140
|
+
return Temporal.Duration.from({
|
|
141
|
+
years: fields['years'],
|
|
142
|
+
months: fields['months'],
|
|
143
|
+
weeks: fields['weeks'],
|
|
144
|
+
days: fields['days'],
|
|
145
|
+
hours: fields['hours'],
|
|
146
|
+
minutes: fields['minutes'],
|
|
147
|
+
seconds: fields['seconds'],
|
|
148
|
+
milliseconds: fields['milliseconds'],
|
|
149
|
+
microseconds: fields['microseconds'],
|
|
150
|
+
nanoseconds: fields['nanoseconds'],
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
/** A DATE or DATETIME operand as a PlainDate. */
|
|
154
|
+
function asPlainDate(v, kind) {
|
|
155
|
+
return kind === 'datetime'
|
|
156
|
+
? Temporal.PlainDateTime.from(v).toPlainDate()
|
|
157
|
+
: Temporal.PlainDate.from(v);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* DATE/DATETIME − DATE/DATETIME → TIMESPAN.
|
|
161
|
+
*
|
|
162
|
+
* NOTE: both sides collapse to a PlainDate first, so the time of day is dropped —
|
|
163
|
+
* `datetime('2024-01-20T10:00:00') - datetime('2024-01-15T08:00:00')` is `'P5D'`, not
|
|
164
|
+
* `'P5DT2H'`. Preserved verbatim from the cascade this table replaces; the fix is
|
|
165
|
+
* tracked separately as `bug-datetime-difference-drops-time-of-day`.
|
|
166
|
+
*/
|
|
167
|
+
function dateDifference(lk, rk) {
|
|
168
|
+
return {
|
|
169
|
+
resultType: TIMESPAN_TYPE,
|
|
170
|
+
apply: (v1, v2) => asPlainDate(v1, lk).since(asPlainDate(v2, rk)).toString(),
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
/** DATE ± TIMESPAN → DATE. */
|
|
174
|
+
function dateShift(sign) {
|
|
175
|
+
return {
|
|
176
|
+
resultType: DATE_TYPE,
|
|
177
|
+
apply: (date, ts) => Temporal.PlainDate.from(date)[sign](Temporal.Duration.from(ts)).toString(),
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
/** DATETIME ± TIMESPAN → DATETIME. */
|
|
181
|
+
function dateTimeShift(sign) {
|
|
182
|
+
return {
|
|
183
|
+
resultType: DATETIME_TYPE,
|
|
184
|
+
apply: (dt, ts) => Temporal.PlainDateTime.from(dt)[sign](Temporal.Duration.from(ts)).toString(),
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
/** TIME ± TIMESPAN → TIME. */
|
|
188
|
+
function timeShift(sign) {
|
|
189
|
+
return {
|
|
190
|
+
resultType: TIME_TYPE,
|
|
191
|
+
apply: (t, ts) => Temporal.PlainTime.from(t)[sign](Temporal.Duration.from(ts)).toString(),
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
/** The commuted form of a shift case: `TIMESPAN + DATE` reads the same as `DATE + TIMESPAN`. */
|
|
195
|
+
function commuted(entry) {
|
|
196
|
+
return { resultType: entry.resultType, apply: (v1, v2) => entry.apply(v2, v1) };
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* TIMESPAN * NUMBER → TIMESPAN.
|
|
200
|
+
*
|
|
201
|
+
* NOTE: the `typeof n === 'number'` guard rejects `bigint`, so
|
|
202
|
+
* `timespan('PT1H') * 9007199254740993` raises `Unsupported temporal operation`.
|
|
203
|
+
* That is preserved-as-found (the old cascade's match condition was literally
|
|
204
|
+
* `typeof v2 === 'number'`), not designed — widening it to accept bigint is a
|
|
205
|
+
* separate call. The guard is unreachable on the runtime-sniffed path, where the
|
|
206
|
+
* kind was derived from `typeof`; it is load-bearing on the emit-time path, where a
|
|
207
|
+
* declared INTEGER operand can hold a bigint.
|
|
208
|
+
*/
|
|
209
|
+
function scaleTimespan(ts, n) {
|
|
210
|
+
if (typeof n !== 'number')
|
|
211
|
+
unsupportedTemporalOp();
|
|
212
|
+
const duration = Temporal.Duration.from(ts);
|
|
213
|
+
if (hasCalendarUnits(duration)) {
|
|
214
|
+
return scaleDuration(duration, n).toString();
|
|
215
|
+
}
|
|
216
|
+
const totalSeconds = duration.total({ unit: 'seconds' });
|
|
217
|
+
return Temporal.Duration.from({ seconds: totalSeconds * n }).toString();
|
|
218
|
+
}
|
|
219
|
+
/** TIMESPAN / NUMBER → TIMESPAN. Divisor `0` → null. Same bigint NOTE as {@link scaleTimespan}. */
|
|
220
|
+
function divideTimespanByNumber(ts, n) {
|
|
221
|
+
if (typeof n !== 'number')
|
|
222
|
+
unsupportedTemporalOp();
|
|
223
|
+
if (n === 0)
|
|
224
|
+
return null;
|
|
225
|
+
const duration = Temporal.Duration.from(ts);
|
|
226
|
+
if (hasCalendarUnits(duration)) {
|
|
227
|
+
return divideDuration(duration, n).toString();
|
|
228
|
+
}
|
|
229
|
+
const totalSeconds = duration.total({ unit: 'seconds' });
|
|
230
|
+
return Temporal.Duration.from({ seconds: totalSeconds / n }).toString();
|
|
231
|
+
}
|
|
232
|
+
/** TIMESPAN / TIMESPAN → REAL (ratio of elapsed seconds). */
|
|
233
|
+
function timespanRatio(v1, v2) {
|
|
234
|
+
const d1 = Temporal.Duration.from(v1);
|
|
235
|
+
const d2 = Temporal.Duration.from(v2);
|
|
236
|
+
if (hasCalendarUnits(d1) || hasCalendarUnits(d2)) {
|
|
237
|
+
// Cannot compute a numeric ratio when calendar units are involved
|
|
238
|
+
// (months/years have variable lengths without a reference date)
|
|
239
|
+
return null;
|
|
240
|
+
}
|
|
241
|
+
const total1 = d1.total({ unit: 'seconds' });
|
|
242
|
+
const total2 = d2.total({ unit: 'seconds' });
|
|
243
|
+
if (total2 === 0)
|
|
244
|
+
return null;
|
|
245
|
+
return total1 / total2;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* NOTE: the value-sniffed path builds one of these strings per row, where the old cascade
|
|
249
|
+
* allocated nothing. Immaterial next to the `Temporal.Duration.from` parse that follows it
|
|
250
|
+
* on the same row, and the emit-time specialization hoists the lookup out of the row loop
|
|
251
|
+
* entirely; if temporal arithmetic ever shows up in a profile without that hoist, nest the
|
|
252
|
+
* table two levels deep instead of keying on a concatenation.
|
|
253
|
+
*/
|
|
254
|
+
function key(operator, left, right) {
|
|
255
|
+
return `${operator}|${left}|${right}`;
|
|
256
|
+
}
|
|
257
|
+
const DATE_PLUS_TIMESPAN = dateShift('add');
|
|
258
|
+
const DATETIME_PLUS_TIMESPAN = dateTimeShift('add');
|
|
259
|
+
const TIME_PLUS_TIMESPAN = timeShift('add');
|
|
260
|
+
/**
|
|
261
|
+
* Every supported `(operator, left kind, right kind)` combination. Anything absent —
|
|
262
|
+
* `%` on any pair, DATE + DATE, DATE * NUMBER, TIME − DATE, DATE − NUMBER — is
|
|
263
|
+
* unsupported and raises {@link unsupportedTemporalOp} at runtime.
|
|
264
|
+
*/
|
|
265
|
+
const TEMPORAL_OP_CASES = new Map([
|
|
266
|
+
// difference of two instants → elapsed time
|
|
267
|
+
[key('-', 'date', 'date'), dateDifference('date', 'date')],
|
|
268
|
+
[key('-', 'date', 'datetime'), dateDifference('date', 'datetime')],
|
|
269
|
+
[key('-', 'datetime', 'date'), dateDifference('datetime', 'date')],
|
|
270
|
+
[key('-', 'datetime', 'datetime'), dateDifference('datetime', 'datetime')],
|
|
271
|
+
[key('-', 'time', 'time'), {
|
|
272
|
+
resultType: TIMESPAN_TYPE,
|
|
273
|
+
apply: (v1, v2) => Temporal.PlainTime.from(v1).since(Temporal.PlainTime.from(v2)).toString(),
|
|
274
|
+
}],
|
|
275
|
+
// instant shifted by an elapsed time → same kind of instant
|
|
276
|
+
[key('+', 'date', 'timespan'), DATE_PLUS_TIMESPAN],
|
|
277
|
+
[key('+', 'timespan', 'date'), commuted(DATE_PLUS_TIMESPAN)],
|
|
278
|
+
[key('-', 'date', 'timespan'), dateShift('subtract')],
|
|
279
|
+
[key('+', 'datetime', 'timespan'), DATETIME_PLUS_TIMESPAN],
|
|
280
|
+
[key('+', 'timespan', 'datetime'), commuted(DATETIME_PLUS_TIMESPAN)],
|
|
281
|
+
[key('-', 'datetime', 'timespan'), dateTimeShift('subtract')],
|
|
282
|
+
[key('+', 'time', 'timespan'), TIME_PLUS_TIMESPAN],
|
|
283
|
+
[key('+', 'timespan', 'time'), commuted(TIME_PLUS_TIMESPAN)],
|
|
284
|
+
[key('-', 'time', 'timespan'), timeShift('subtract')],
|
|
285
|
+
// elapsed time combined with elapsed time
|
|
286
|
+
[key('+', 'timespan', 'timespan'), {
|
|
287
|
+
resultType: TIMESPAN_TYPE,
|
|
288
|
+
apply: (v1, v2) => Temporal.Duration.from(v1).add(Temporal.Duration.from(v2)).toString(),
|
|
289
|
+
}],
|
|
290
|
+
[key('-', 'timespan', 'timespan'), {
|
|
291
|
+
resultType: TIMESPAN_TYPE,
|
|
292
|
+
apply: (v1, v2) => Temporal.Duration.from(v1).subtract(Temporal.Duration.from(v2)).toString(),
|
|
293
|
+
}],
|
|
294
|
+
[key('/', 'timespan', 'timespan'), { resultType: REAL_TYPE, apply: timespanRatio }],
|
|
295
|
+
// elapsed time scaled by a plain number
|
|
296
|
+
[key('*', 'timespan', 'number'), { resultType: TIMESPAN_TYPE, apply: scaleTimespan }],
|
|
297
|
+
[key('*', 'number', 'timespan'), { resultType: TIMESPAN_TYPE, apply: (v1, v2) => scaleTimespan(v2, v1) }],
|
|
298
|
+
[key('/', 'timespan', 'number'), { resultType: TIMESPAN_TYPE, apply: divideTimespanByNumber }],
|
|
299
|
+
]);
|
|
300
|
+
/**
|
|
301
|
+
* Look up the case for one `(operator, left kind, right kind)` triple.
|
|
302
|
+
* `undefined` means the combination is not supported.
|
|
303
|
+
*/
|
|
304
|
+
export function temporalOpCase(operator, left, right) {
|
|
305
|
+
return TEMPORAL_OP_CASES.get(key(operator, left, right));
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* The one route from two declared logical types to a case.
|
|
309
|
+
*
|
|
310
|
+
* Two callers must reach the same answer or the announced result type stops predicting
|
|
311
|
+
* the value: `BinaryOpNode.generateType` announces `entry.resultType`, and
|
|
312
|
+
* `buildNumericOpSpec`'s temporal branch emits a body that runs `entry.apply`. Neither
|
|
313
|
+
* re-spells the kind derivation, so the two cannot come to select different entries.
|
|
314
|
+
*/
|
|
315
|
+
export function temporalOpCaseForTypes(operator, left, right) {
|
|
316
|
+
const lk = temporalKindOfType(left);
|
|
317
|
+
const rk = temporalKindOfType(right);
|
|
318
|
+
if (!lk || !rk)
|
|
319
|
+
return {};
|
|
320
|
+
return { kinds: [lk, rk], entry: temporalOpCase(operator, lk, rk) };
|
|
321
|
+
}
|
|
322
|
+
/** Test-only view of the table's keys, so a spec can assert its shape without re-listing it. */
|
|
323
|
+
export function temporalOpCaseKeys() {
|
|
324
|
+
return [...TEMPORAL_OP_CASES.keys()];
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Run one case with the exact envelope `tryTemporalArithmetic` has always had:
|
|
328
|
+
* null propagation, then `apply`, with a malformed value degrading to null while an
|
|
329
|
+
* `UNSUPPORTED` error propagates.
|
|
330
|
+
*
|
|
331
|
+
* Both the runtime-sniffed path and the emit-time specialized path call this, so the
|
|
332
|
+
* two cannot diverge on null handling or on what a bad value does.
|
|
333
|
+
*/
|
|
334
|
+
export function runTemporalCase(entry, v1, v2) {
|
|
335
|
+
if (v1 === null || v2 === null)
|
|
336
|
+
return null;
|
|
337
|
+
try {
|
|
338
|
+
return entry.apply(v1, v2);
|
|
339
|
+
}
|
|
340
|
+
catch (e) {
|
|
341
|
+
// UNSUPPORTED propagates; anything else means the value did not parse as the
|
|
342
|
+
// shape its kind promised, which is a null result rather than an error.
|
|
343
|
+
if (e instanceof QuereusError)
|
|
344
|
+
throw e;
|
|
345
|
+
return null;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
//# sourceMappingURL=temporal-ops.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporal-ops.js","sourceRoot":"","sources":["../../../src/types/temporal-ops.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA4B/C,4FAA4F;AAC5F,MAAM,UAAU,cAAc,CAAC,IAAqC;IACnE,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,CAAC;AAChD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAoB;IACtD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACzC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACzC,IAAI,OAAO,KAAK,aAAa;QAAE,OAAO,UAAU,CAAC;IACjD,IAAI,OAAO,KAAK,aAAa;QAAE,OAAO,UAAU,CAAC;IACjD,gFAAgF;IAChF,gEAAgE;IAChE,8EAA8E;IAC9E,gCAAgC;IAChC,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU;QAAE,OAAO,QAAQ,CAAC;IAC9D,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAW;IAC9C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3B,6BAA6B;QAC7B,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC;QACjD,uCAAuC;QACvC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,UAAU,CAAC;QACxE,2BAA2B;QAC3B,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC;QAChD,yDAAyD;QACzD,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,UAAU,CAAC;QAC/D,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC3C,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,qBAAqB;IACpC,MAAM,IAAI,YAAY,CACrB,gCAAgC,EAChC,UAAU,CAAC,WAAW,CACtB,CAAC;AACH,CAAC;AASD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAoB;IACpD,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,CAAoB,EAAE,MAAc;IACjE,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC7B,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,MAAM;QACvB,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG,MAAM;QACzB,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,MAAM;QACvB,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM;QACrB,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,MAAM;QACvB,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,MAAM;QAC3B,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,MAAM;QAC3B,YAAY,EAAE,CAAC,CAAC,YAAY,GAAG,MAAM;QACrC,YAAY,EAAE,CAAC,CAAC,YAAY,GAAG,MAAM;QACrC,WAAW,EAAE,CAAC,CAAC,WAAW,GAAG,MAAM;KACnC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,CAAoB,EAAE,OAAe;IACnE,wDAAwD;IACxD,MAAM,OAAO,GAA+B;QAC3C,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC;QACvB,uCAAuC;QACvC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACpB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;QACrB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC;QACxB,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC;QAC1B,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC;QACjC,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,CAAC;QACtC,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC;KACrC,CAAC;IAEF,sCAAsC;IACtC,MAAM,MAAM,GAA2B;QACtC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK;QAChD,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO;QAChD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY;QAChD,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW;KACxD,CAAC;IAEF,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;QACzB,MAAM,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,MAAM,CAAC;IACzC,CAAC;IAED,+DAA+D;IAC/D,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,CAAC;IAEpE,qFAAqF;IACrF,oFAAoF;IACpF,wFAAwF;IACxF,oFAAoF;IACpF,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC;IAE1D,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC,cAAc,CAAC;QACpC,YAAY,EAAE,MAAM,CAAC,cAAc,CAAC;QACpC,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;KAClC,CAAC,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,SAAS,WAAW,CAAC,CAAW,EAAE,IAAyB;IAC1D,OAAO,IAAI,KAAK,UAAU;QACzB,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC,WAAW,EAAE;QACxD,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,EAAuB,EAAE,EAAuB;IACvE,OAAO;QACN,UAAU,EAAE,aAAa;QACzB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC5E,CAAC;AACH,CAAC;AAED,8BAA8B;AAC9B,SAAS,SAAS,CAAC,IAAwB;IAC1C,OAAO;QACN,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAc,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;KACnH,CAAC;AACH,CAAC;AAED,sCAAsC;AACtC,SAAS,aAAa,CAAC,IAAwB;IAC9C,OAAO;QACN,UAAU,EAAE,aAAa;QACzB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAY,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;KACnH,CAAC;AACH,CAAC;AAED,8BAA8B;AAC9B,SAAS,SAAS,CAAC,IAAwB;IAC1C,OAAO;QACN,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC7G,CAAC;AACH,CAAC;AAED,gGAAgG;AAChG,SAAS,QAAQ,CAAC,KAAqB;IACtC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AACjF,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,aAAa,CAAC,EAAY,EAAE,CAAW;IAC/C,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,qBAAqB,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAY,CAAC,CAAC;IACtD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,OAAO,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;AACzE,CAAC;AAED,mGAAmG;AACnG,SAAS,sBAAsB,CAAC,EAAY,EAAE,CAAW;IACxD,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,qBAAqB,EAAE,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAY,CAAC,CAAC;IACtD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,OAAO,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;IACD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;AACzE,CAAC;AAED,6DAA6D;AAC7D,SAAS,aAAa,CAAC,EAAY,EAAE,EAAY;IAChD,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAY,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAY,CAAC,CAAC;IAChD,IAAI,gBAAgB,CAAC,EAAE,CAAC,IAAI,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC;QAClD,kEAAkE;QAClE,gEAAgE;QAChE,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,MAAM,GAAG,MAAM,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,GAAG,CAAC,QAAgB,EAAE,IAAyB,EAAE,KAA0B;IACnF,OAAO,GAAG,QAAQ,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,kBAAkB,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5C,MAAM,sBAAsB,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AACpD,MAAM,kBAAkB,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAE5C;;;;GAIG;AACH,MAAM,iBAAiB,GAAwC,IAAI,GAAG,CAAyB;IAC9F,4CAA4C;IAC5C,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1E,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;YAC1B,UAAU,EAAE,aAAa;YACzB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAY,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;SAChH,CAAC;IAEF,4DAA4D;IAC5D,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAClD,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC5D,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,sBAAsB,CAAC;IAC1D,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACpE,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7D,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAClD,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC5D,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAErD,0CAA0C;IAC1C,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;YAClC,UAAU,EAAE,aAAa;YACzB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAY,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC5G,CAAC;IACF,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE;YAClC,UAAU,EAAE,aAAa;YACzB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;SACjH,CAAC;IACF,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAEnF,wCAAwC;IACxC,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IACrF,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IACzG,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;CAC9F,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC7B,QAAgB,EAChB,IAAyB,EACzB,KAA0B;IAE1B,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC1D,CAAC;AAgBD;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACrC,QAAgB,EAChB,IAAiB,EACjB,KAAkB;IAElB,MAAM,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IAC1B,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,kBAAkB;IACjC,OAAO,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,KAAqB,EAAE,EAAY,EAAE,EAAY;IAChF,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,CAAC;QACJ,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,6EAA6E;QAC7E,wEAAwE;QACxE,IAAI,CAAC,YAAY,YAAY;YAAE,MAAM,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"temporal-types.d.ts","sourceRoot":"","sources":["../../../src/types/temporal-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAgB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"temporal-types.d.ts","sourceRoot":"","sources":["../../../src/types/temporal-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAoBjF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,WA+DvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,WA2DvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,WAoD3B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,EAAE,WAsE5B,CAAC;AAwEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,WAmE3B,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PhysicalType, compareNulls } from './logical-type.js';
|
|
2
2
|
import { BINARY_COLLATION } from '../util/comparison.js';
|
|
3
|
+
import { canonicalizeInteger } from '../util/numeric-canonical.js';
|
|
3
4
|
import { Temporal } from 'temporal-polyfill';
|
|
4
5
|
/**
|
|
5
6
|
* Parse any string ISO datetime form into a UTC PlainDateTime — the canonical
|
|
@@ -247,13 +248,17 @@ export const TIMESTAMP_TYPE = {
|
|
|
247
248
|
parse: (v) => {
|
|
248
249
|
if (v === null)
|
|
249
250
|
return null;
|
|
251
|
+
// TIMESTAMP's value space is the integer domain (physicalType INTEGER), so its
|
|
252
|
+
// arms canonicalize exactly like INTEGER_TYPE.parse: a safe-range bigint narrows
|
|
253
|
+
// to number, a whole number past the boundary widens to an exact bigint (R1,
|
|
254
|
+
// util/numeric-canonical.ts).
|
|
250
255
|
if (typeof v === 'bigint')
|
|
251
|
-
return v;
|
|
256
|
+
return canonicalizeInteger(v);
|
|
252
257
|
if (typeof v === 'number') {
|
|
253
258
|
if (!Number.isInteger(v)) {
|
|
254
259
|
throw new TypeError(`Cannot convert non-integer number '${v}' to TIMESTAMP`);
|
|
255
260
|
}
|
|
256
|
-
return v;
|
|
261
|
+
return canonicalizeInteger(v);
|
|
257
262
|
}
|
|
258
263
|
if (typeof v === 'string') {
|
|
259
264
|
const trimmed = v.trim();
|
|
@@ -266,7 +271,7 @@ export const TIMESTAMP_TYPE = {
|
|
|
266
271
|
const parsed = Number(trimmed);
|
|
267
272
|
if (Number.isSafeInteger(parsed))
|
|
268
273
|
return parsed;
|
|
269
|
-
return BigInt(trimmed[0] === '+' ? trimmed.slice(1) : trimmed);
|
|
274
|
+
return canonicalizeInteger(BigInt(trimmed[0] === '+' ? trimmed.slice(1) : trimmed));
|
|
270
275
|
}
|
|
271
276
|
// ISO 8601 datetime string → epoch milliseconds. Bare datetimes are
|
|
272
277
|
// treated as UTC wall-clock; offset/zone-bearing inputs convert to UTC —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"temporal-types.js","sourceRoot":"","sources":["../../../src/types/temporal-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"temporal-types.js","sourceRoot":"","sources":["../../../src/types/temporal-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,17 +34,32 @@ export declare function coerceToNumberForArithmetic(value: SqlValue): number;
|
|
|
34
34
|
*/
|
|
35
35
|
export declare function coerceForComparison(v1: SqlValue, v2: SqlValue): [SqlValue, SqlValue];
|
|
36
36
|
/**
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
37
|
+
* Does this aggregate read its arguments numerically? False for COUNT, GROUP_CONCAT and
|
|
38
|
+
* the `JSON_*` family, which take their arguments as-is.
|
|
39
|
+
*
|
|
40
|
+
* Split out so the routing decision has one home: the aggregate emitters resolve it once
|
|
41
|
+
* per call site at emit time (`computeAggregateValueTransforms`,
|
|
42
|
+
* runtime/emit/aggregate-setup.ts) rather than per row, and must reach the same verdict
|
|
43
|
+
* this function does.
|
|
44
|
+
*/
|
|
45
|
+
export declare function aggregateCoercesArguments(functionName: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* The value-level half of aggregate-argument coercion: a numeric-looking string becomes
|
|
48
|
+
* a number, everything else passes through. Callers that have already established the
|
|
49
|
+
* aggregate coerces at all (see {@link aggregateCoercesArguments}) use this directly.
|
|
40
50
|
*
|
|
41
51
|
* NOTE: this converts a numeric-looking string for min/max too, so `min('5','10')`
|
|
42
52
|
* over a plain TEXT column returns the NUMBER 5 — disagreeing with
|
|
43
53
|
* `order by … limit 1`, which keeps text order. Predates the semantic-ordering
|
|
44
|
-
* min/max binding and is unchanged by it (the emitters skip
|
|
45
|
-
*
|
|
46
|
-
* `
|
|
47
|
-
|
|
54
|
+
* min/max binding and is unchanged by it (the emitters skip the transform entirely when
|
|
55
|
+
* every argument type is numeric or carries semantic ordering). Tracked as backlog
|
|
56
|
+
* `bug-text-minmax-numeric-coercion`.
|
|
57
|
+
*/
|
|
58
|
+
export declare function coerceAggregateValue(value: SqlValue): SqlValue;
|
|
59
|
+
/**
|
|
60
|
+
* Coerces a value for aggregate function arguments.
|
|
61
|
+
* Most aggregate functions should accept numeric strings as numbers.
|
|
62
|
+
* For COUNT, no coercion needed. For SUM/AVG, numeric strings should be converted.
|
|
48
63
|
*/
|
|
49
64
|
export declare function coerceForAggregate(value: SqlValue, functionName: string): SqlValue;
|
|
50
65
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coercion.d.ts","sourceRoot":"","sources":["../../../src/util/coercion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAU3D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAWnE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAyBpF;AAKD
|
|
1
|
+
{"version":3,"file":"coercion.d.ts","sourceRoot":"","sources":["../../../src/util/coercion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAU3D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAWnE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAyBpF;AAKD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAGvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,CAElF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CASvD"}
|
|
@@ -80,27 +80,40 @@ export function coerceForComparison(v1, v2) {
|
|
|
80
80
|
/** Aggregates that never want their argument read as a number. */
|
|
81
81
|
const NON_NUMERIC_AGGREGATES = new Set(['COUNT', 'GROUP_CONCAT']);
|
|
82
82
|
/**
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
83
|
+
* Does this aggregate read its arguments numerically? False for COUNT, GROUP_CONCAT and
|
|
84
|
+
* the `JSON_*` family, which take their arguments as-is.
|
|
85
|
+
*
|
|
86
|
+
* Split out so the routing decision has one home: the aggregate emitters resolve it once
|
|
87
|
+
* per call site at emit time (`computeAggregateValueTransforms`,
|
|
88
|
+
* runtime/emit/aggregate-setup.ts) rather than per row, and must reach the same verdict
|
|
89
|
+
* this function does.
|
|
90
|
+
*/
|
|
91
|
+
export function aggregateCoercesArguments(functionName) {
|
|
92
|
+
const upperName = functionName.toUpperCase();
|
|
93
|
+
return !NON_NUMERIC_AGGREGATES.has(upperName) && !upperName.startsWith('JSON_');
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The value-level half of aggregate-argument coercion: a numeric-looking string becomes
|
|
97
|
+
* a number, everything else passes through. Callers that have already established the
|
|
98
|
+
* aggregate coerces at all (see {@link aggregateCoercesArguments}) use this directly.
|
|
86
99
|
*
|
|
87
100
|
* NOTE: this converts a numeric-looking string for min/max too, so `min('5','10')`
|
|
88
101
|
* over a plain TEXT column returns the NUMBER 5 — disagreeing with
|
|
89
102
|
* `order by … limit 1`, which keeps text order. Predates the semantic-ordering
|
|
90
|
-
* min/max binding and is unchanged by it (the emitters skip
|
|
91
|
-
*
|
|
92
|
-
* `
|
|
93
|
-
|
|
103
|
+
* min/max binding and is unchanged by it (the emitters skip the transform entirely when
|
|
104
|
+
* every argument type is numeric or carries semantic ordering). Tracked as backlog
|
|
105
|
+
* `bug-text-minmax-numeric-coercion`.
|
|
106
|
+
*/
|
|
107
|
+
export function coerceAggregateValue(value) {
|
|
108
|
+
return typeof value === 'string' && value.trim() !== '' ? tryCoerceToNumber(value) : value;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Coerces a value for aggregate function arguments.
|
|
112
|
+
* Most aggregate functions should accept numeric strings as numbers.
|
|
113
|
+
* For COUNT, no coercion needed. For SUM/AVG, numeric strings should be converted.
|
|
94
114
|
*/
|
|
95
115
|
export function coerceForAggregate(value, functionName) {
|
|
96
|
-
|
|
97
|
-
if (NON_NUMERIC_AGGREGATES.has(upperName) || upperName.startsWith('JSON_')) {
|
|
98
|
-
return value;
|
|
99
|
-
}
|
|
100
|
-
if (typeof value === 'string' && value.trim() !== '') {
|
|
101
|
-
return tryCoerceToNumber(value);
|
|
102
|
-
}
|
|
103
|
-
return value;
|
|
116
|
+
return aggregateCoercesArguments(functionName) ? coerceAggregateValue(value) : value;
|
|
104
117
|
}
|
|
105
118
|
/**
|
|
106
119
|
* Determines if a value should be treated as numeric in the given context.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coercion.js","sourceRoot":"","sources":["../../../src/util/coercion.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAe;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACtD,yBAAyB;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,OAAO,QAAQ,CAAC;QACjB,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAe;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACd,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,+BAA+B;IACnE,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,CAAC,CAAC,6BAA6B;IACxC,CAAC;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAY,EAAE,EAAY;IAC7D,8CAA8C;IAC9C,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,SAAS,CAAC;IAChG,MAAM,WAAW,GAAG,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,SAAS,CAAC;IAChG,MAAM,QAAQ,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC;IAExC,oEAAoE;IACpE,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACxB,CAAC;IAED,oEAAoE;IACpE,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,iCAAiC;IACjC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACjB,CAAC;AAED,kEAAkE;AAClE,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;AAElE
|
|
1
|
+
{"version":3,"file":"coercion.js","sourceRoot":"","sources":["../../../src/util/coercion.ts"],"names":[],"mappings":"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"}
|
|
@@ -123,6 +123,31 @@ export declare function resolveCollationFunctions(resolver: CollationResolver, n
|
|
|
123
123
|
* Optimized version of compareSqlValues that takes a pre-resolved collation function.
|
|
124
124
|
* This avoids the collation lookup on every call.
|
|
125
125
|
*
|
|
126
|
+
* NOTE: accepted tradeoff — the per-call {@link getStorageClass} classification stays,
|
|
127
|
+
* even where the emitter statically knows both operand categories. The alternative
|
|
128
|
+
* (a `typeof`-guarded fast path that falls back here on a miss, the shape
|
|
129
|
+
* {@link createTypedComparator} already uses for storage-class drift) was prototyped and
|
|
130
|
+
* measured, and the payoff does not survive contact with the interpreter:
|
|
131
|
+
* - guarded vs. this function, per comparison, isolated per-process microbench
|
|
132
|
+
* (65536 pairs × 300 passes, median, node 24): text 25.5 → 23.0 ns; text with a
|
|
133
|
+
* 40-char shared prefix 26.5 → 25.9 ns; numeric 3.14 → 1.17 ns; text with 5% NULLs
|
|
134
|
+
* 23.0 → 19.8 ns (the fallback is not a cliff — guard misses stay cheap, so no
|
|
135
|
+
* deopt/inline-cache machinery would be needed either).
|
|
136
|
+
* - text can barely improve: a bare `BINARY_COLLATION(a, b)` call with no
|
|
137
|
+
* classification at all measured 20.2 ns, so classification is ~5 ns of ~25 ns and
|
|
138
|
+
* the guard itself costs ~3 ns of that back.
|
|
139
|
+
* - end-to-end, one comparison expression costs ~210-226 ns/row (measured as the slope
|
|
140
|
+
* of a 1→8-column projection ladder over 10k rows, isolated processes), against
|
|
141
|
+
* 143 ns/row for a bare column-reference instruction. Per-instruction scheduler
|
|
142
|
+
* dispatch, not classification, is the cost. A ≤9 ns saving is ~4% of one comparison
|
|
143
|
+
* expression and ~0.3% of a row — well inside the 20% bench regression gate.
|
|
144
|
+
* Sort/BTree comparators are no better a target: `order by` over 10k text rows runs
|
|
145
|
+
* ~n·log2(n) ≈ 133k comparisons ≈ 3 ms of comparator at the rates above, against a
|
|
146
|
+
* 260 ms benchmark median.
|
|
147
|
+
* Revisit if `runtime-scalar-expression-fusion` lands — fusion removes the per-instruction
|
|
148
|
+
* dispatch that swamps this, after which the guard is a double-digit percentage of what
|
|
149
|
+
* remains of a numeric comparison. Re-measure the ladder above before adding it.
|
|
150
|
+
*
|
|
126
151
|
* @param a First value
|
|
127
152
|
* @param b Second value
|
|
128
153
|
* @param collationFunc Pre-resolved collation function
|