signalk-questdb 2.1.9 → 2.2.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/.release-please-manifest.json +1 -1
- package/README.md +96 -26
- package/dist/change-gate.d.ts +26 -0
- package/dist/change-gate.js +118 -0
- package/dist/change-gate.js.map +1 -0
- package/dist/config/schema.d.ts +1 -0
- package/dist/config/schema.js +12 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/delta-routing.d.ts +5 -0
- package/dist/delta-routing.js +40 -4
- package/dist/delta-routing.js.map +1 -1
- package/dist/history-units.d.ts +22 -0
- package/dist/history-units.js +23 -0
- package/dist/history-units.js.map +1 -0
- package/dist/history-v2.d.ts +1 -1
- package/dist/history-v2.js +274 -37
- package/dist/history-v2.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.js +43 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/public/assets/{PluginConfigurationPanel-DWDBvXxG.js → PluginConfigurationPanel-BfNu3zmv.js} +7 -7
- package/public/remoteEntry.js +1 -1
- package/release-please-config.json +0 -1
package/dist/history-v2.js
CHANGED
|
@@ -28,9 +28,11 @@ function aggregateToSql(method) {
|
|
|
28
28
|
* the range is read under the LIMIT every raw read here has, so a long
|
|
29
29
|
* range is not staged whole for a single row.
|
|
30
30
|
*/
|
|
31
|
-
function middleRowSql(table, columns, where, resolution) {
|
|
31
|
+
function middleRowSql(table, columns, where, range, resolution) {
|
|
32
32
|
if (resolution && resolution > 0) {
|
|
33
|
-
|
|
33
|
+
// Floored from the range start, on the grid sampleBy() puts every other
|
|
34
|
+
// column on.
|
|
35
|
+
const bucket = `timestamp_floor('${effectiveResolution(resolution)}s', ts, '${validateTimestamp(range.from)}')`;
|
|
34
36
|
return `SELECT b AS ts, ${columns} FROM (SELECT b, ts, ${columns}, row_number() OVER (PARTITION BY b ORDER BY ts) AS rn, count(*) OVER (PARTITION BY b) AS n FROM (SELECT ${bucket} AS b, ts, ${columns} FROM ${table} WHERE ${where})) WHERE rn = n / 2 + 1 ORDER BY ts`;
|
|
35
37
|
}
|
|
36
38
|
return `SELECT ts, ${columns} FROM (SELECT ts, ${columns}, row_number() OVER (ORDER BY ts) AS rn, count(*) OVER () AS n FROM (SELECT ts, ${columns} FROM ${table} WHERE ${where} ORDER BY ts LIMIT 50000)) WHERE rn = n / 2 + 1`;
|
|
@@ -110,6 +112,121 @@ function computeEMA(values, alpha) {
|
|
|
110
112
|
}
|
|
111
113
|
return result;
|
|
112
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Circular statistics for a path recorded in radians — headings, courses,
|
|
117
|
+
* wind angles. The linear mean of 359° and 1° is 180°; the vector mean, the
|
|
118
|
+
* angle of the mean sine and cosine, is 0°. A result goes back into the
|
|
119
|
+
* convention the samples came in: [0, 2π) when none was negative, (−π, π]
|
|
120
|
+
* otherwise — Signal K uses both, by path.
|
|
121
|
+
*/
|
|
122
|
+
const TWO_PI = 2 * Math.PI;
|
|
123
|
+
function isAngular(units) {
|
|
124
|
+
return units === "rad";
|
|
125
|
+
}
|
|
126
|
+
function normaliseAngle(mean, nonNegative) {
|
|
127
|
+
// Modulo rather than one addition: a mean a hair below zero must read as
|
|
128
|
+
// 0, not as 2π less a hair. atan2 can return exactly −π, which the signed
|
|
129
|
+
// convention (−π, π] reports as π.
|
|
130
|
+
if (nonNegative)
|
|
131
|
+
return ((mean % TWO_PI) + TWO_PI) % TWO_PI;
|
|
132
|
+
return mean <= -Math.PI ? mean + TWO_PI : mean;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* The bucket's vector mean, and its lowest sample for the convention.
|
|
136
|
+
* Samples that cancel — 0° and 180° in equal measure — leave no direction
|
|
137
|
+
* to report, so a resultant shorter than the guard is null rather than
|
|
138
|
+
* whatever atan2 makes of two zeros.
|
|
139
|
+
*/
|
|
140
|
+
const NO_DIRECTION = 1e-9;
|
|
141
|
+
const ANGULAR_BUCKET_SQL = `CASE WHEN sqrt(avg(sin(value)) * avg(sin(value)) + avg(cos(value)) * avg(cos(value))) < ${NO_DIRECTION} THEN NULL ELSE atan2(avg(sin(value)), avg(cos(value))) END as agg_value, min(value) as agg_floor`;
|
|
142
|
+
/** The angle of a mean sine and cosine, or null when they cancel. */
|
|
143
|
+
function meanAngle(sin, cos, nonNegative) {
|
|
144
|
+
return Math.hypot(sin, cos) < NO_DIRECTION
|
|
145
|
+
? null
|
|
146
|
+
: normaliseAngle(Math.atan2(sin, cos), nonNegative);
|
|
147
|
+
}
|
|
148
|
+
function computeAngularSMA(values, n, nonNegative) {
|
|
149
|
+
const result = [];
|
|
150
|
+
let sumSin = 0;
|
|
151
|
+
let sumCos = 0;
|
|
152
|
+
let count = 0;
|
|
153
|
+
for (let i = 0; i < values.length; i++) {
|
|
154
|
+
const arrived = values[i];
|
|
155
|
+
if (arrived !== null) {
|
|
156
|
+
sumSin += Math.sin(arrived);
|
|
157
|
+
sumCos += Math.cos(arrived);
|
|
158
|
+
count += 1;
|
|
159
|
+
}
|
|
160
|
+
const gone = i >= n ? values[i - n] : null;
|
|
161
|
+
if (gone !== null) {
|
|
162
|
+
sumSin -= Math.sin(gone);
|
|
163
|
+
sumCos -= Math.cos(gone);
|
|
164
|
+
count -= 1;
|
|
165
|
+
}
|
|
166
|
+
result.push(count > 0 ? meanAngle(sumSin / count, sumCos / count, nonNegative) : null);
|
|
167
|
+
}
|
|
168
|
+
return result;
|
|
169
|
+
}
|
|
170
|
+
function computeAngularEMA(values, alpha, nonNegative) {
|
|
171
|
+
const result = [];
|
|
172
|
+
let sin = null;
|
|
173
|
+
let cos = null;
|
|
174
|
+
for (const v of values) {
|
|
175
|
+
if (v !== null) {
|
|
176
|
+
if (sin === null || cos === null) {
|
|
177
|
+
sin = Math.sin(v);
|
|
178
|
+
cos = Math.cos(v);
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
sin = alpha * Math.sin(v) + (1 - alpha) * sin;
|
|
182
|
+
cos = alpha * Math.cos(v) + (1 - alpha) * cos;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
result.push(sin === null || cos === null ? null : meanAngle(sin, cos, nonNegative));
|
|
186
|
+
}
|
|
187
|
+
return result;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Carry a held value across the empty buckets after it.
|
|
191
|
+
*
|
|
192
|
+
* The recorder skips a value equal to the last one it wrote until the
|
|
193
|
+
* unchanged-value heartbeat is due (see ChangeGate), so a bucket with no row
|
|
194
|
+
* usually means "unchanged", not "no data" — a switch that has been on for an
|
|
195
|
+
* hour has one row in that hour, and FILL(NULL) alone would chart it as off
|
|
196
|
+
* the air. Each empty bucket takes the last sample before it, but only while
|
|
197
|
+
* that sample is younger than `holdMs`: a live path writes at least once per
|
|
198
|
+
* heartbeat, so a longer silence is a real gap — a sensor gone stale, the
|
|
199
|
+
* recorder stopped — and stays one.
|
|
200
|
+
*
|
|
201
|
+
* Every row ends in the bucket's `last(ts)` — when its last sample was
|
|
202
|
+
* taken, null for an empty bucket — and the hold is measured from that, not
|
|
203
|
+
* from the bucket start: at a resolution near the hold, a sample late in its
|
|
204
|
+
* bucket would otherwise count as a whole bucket older than it is. `seed` is
|
|
205
|
+
* the last row before the range in the same shape, so the first buckets of a
|
|
206
|
+
* range are held too.
|
|
207
|
+
*
|
|
208
|
+
* Never into a bucket that starts after `now`: a held value says the value
|
|
209
|
+
* had not changed, which nothing can say about a time still to come.
|
|
210
|
+
*/
|
|
211
|
+
function holdThroughEmptyBuckets(rows, seed, holdMs, carry, now = Date.now()) {
|
|
212
|
+
if (holdMs <= 0)
|
|
213
|
+
return rows;
|
|
214
|
+
const sampledAt = (row) => row[row.length - 1];
|
|
215
|
+
let held = seed;
|
|
216
|
+
return rows.map((row) => {
|
|
217
|
+
if (sampledAt(row) !== null) {
|
|
218
|
+
held = row;
|
|
219
|
+
return row;
|
|
220
|
+
}
|
|
221
|
+
const bucketStart = Date.parse(row[0]);
|
|
222
|
+
if (held === null ||
|
|
223
|
+
bucketStart > now ||
|
|
224
|
+
bucketStart - Date.parse(sampledAt(held)) >= holdMs) {
|
|
225
|
+
return row;
|
|
226
|
+
}
|
|
227
|
+
return carry(row, held);
|
|
228
|
+
});
|
|
229
|
+
}
|
|
113
230
|
function buildRangeWhere(range, context) {
|
|
114
231
|
const from = validateTimestamp(range.from);
|
|
115
232
|
const to = validateTimestamp(range.to);
|
|
@@ -169,9 +286,27 @@ const MAX_EXPANDED_SOURCES = 16;
|
|
|
169
286
|
const MAX_EXPANDED_COLUMNS = 64;
|
|
170
287
|
// Effective SAMPLE BY period: QuestDB rejects `SAMPLE BY 0s`, so fractional
|
|
171
288
|
// resolutions (e.g. 0.5) must clamp up to 1s instead of flooring to zero.
|
|
289
|
+
// Trailing columns of every numeric bucket read, for holdNumericBuckets: the
|
|
290
|
+
// bucket's last sample and when it was taken.
|
|
291
|
+
const HELD_SQL = "last(value) as held, last(ts) as held_ts";
|
|
172
292
|
function effectiveResolution(resolution) {
|
|
173
293
|
return Math.max(1, Math.floor(resolution));
|
|
174
294
|
}
|
|
295
|
+
/**
|
|
296
|
+
* The SAMPLE BY clause every bucketed read uses. FROM … TO makes FILL(NULL)
|
|
297
|
+
* fabricate the WHOLE grid of the range: without it QuestDB only fills
|
|
298
|
+
* between the first and last bucket that has a row, so leading and trailing
|
|
299
|
+
* empty buckets were missing from the response — and a change-only recorded
|
|
300
|
+
* switch, one row in the middle of the range, came back as a single bucket
|
|
301
|
+
* with nothing to hold across. It also aligns buckets to the range start
|
|
302
|
+
* rather than the calendar. TO is exclusive: a row stamped exactly at the
|
|
303
|
+
* range end starts a bucket past it and is left out.
|
|
304
|
+
*/
|
|
305
|
+
function sampleBy(range, resolution) {
|
|
306
|
+
const from = validateTimestamp(range.from);
|
|
307
|
+
const to = validateTimestamp(range.to);
|
|
308
|
+
return `SAMPLE BY ${effectiveResolution(resolution)}s FROM '${from}' TO '${to}' FILL(NULL)`;
|
|
309
|
+
}
|
|
175
310
|
export function createHistoryProviderV2(queryClient, selfContext,
|
|
176
311
|
// Opt-in, default off. Expansion multiplies one requested path into one
|
|
177
312
|
// query and one column PER recording source, so a request that was cheap
|
|
@@ -181,7 +316,54 @@ export function createHistoryProviderV2(queryClient, selfContext,
|
|
|
181
316
|
sourcePolicyAllEnabled = false,
|
|
182
317
|
// Degrading must be visible. Defaults to a no-op so existing callers and
|
|
183
318
|
// tests need no change.
|
|
184
|
-
debug = () => { }
|
|
319
|
+
debug = () => { },
|
|
320
|
+
// A path's units per the server's metadata, in the request's context.
|
|
321
|
+
// Unknown means linear, which is right for everything but radians.
|
|
322
|
+
unitsOf = () => undefined,
|
|
323
|
+
// How long an empty bucket may carry the last sample before it (see
|
|
324
|
+
// holdThroughEmptyBuckets). 0 leaves empty buckets null, as FILL(NULL)
|
|
325
|
+
// makes them.
|
|
326
|
+
holdMs = 0) {
|
|
327
|
+
/**
|
|
328
|
+
* The range's context predicate over the `holdMs` just before it — where
|
|
329
|
+
* the row a range's first buckets are held from lives, if there is one.
|
|
330
|
+
*/
|
|
331
|
+
function seedRangeWhere(range, safeContext) {
|
|
332
|
+
const from = validateTimestamp(range.from);
|
|
333
|
+
const since = new Date(Date.parse(from) - holdMs).toISOString();
|
|
334
|
+
return `ts >= '${since}' AND ts < '${from}' AND context = '${safeContext}'`;
|
|
335
|
+
}
|
|
336
|
+
/** The numeric table's last `[value, ts]` before the range, or null. */
|
|
337
|
+
async function numericSeed(seedWhere) {
|
|
338
|
+
const result = await queryClient.exec(`SELECT value, ts FROM signalk WHERE ${seedWhere} LIMIT -1`);
|
|
339
|
+
return result.dataset[0] ?? null;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Hold a numeric SAMPLE BY result whose last two columns are the bucket's
|
|
343
|
+
* `last(value)` and `last(ts)` (HELD_SQL). Every aggregate of a bucket
|
|
344
|
+
* that held one unchanged value is that value, so an empty bucket takes the
|
|
345
|
+
* held sample in every column. The seed is only fetched when the range
|
|
346
|
+
* opens on an empty bucket.
|
|
347
|
+
*/
|
|
348
|
+
async function holdNumericBuckets(dataset, seedWhere) {
|
|
349
|
+
if (holdMs <= 0 || dataset.length === 0)
|
|
350
|
+
return dataset;
|
|
351
|
+
const width = dataset[0].length;
|
|
352
|
+
let seed = null;
|
|
353
|
+
if (dataset[0][width - 1] === null) {
|
|
354
|
+
const found = await numericSeed(seedWhere);
|
|
355
|
+
// Shaped like a bucket row: the value in every value column, the
|
|
356
|
+
// sample's time last.
|
|
357
|
+
if (found) {
|
|
358
|
+
seed = [
|
|
359
|
+
found[1],
|
|
360
|
+
...Array(width - 2).fill(found[0]),
|
|
361
|
+
found[1],
|
|
362
|
+
];
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
return holdThroughEmptyBuckets(dataset, seed, holdMs, (row, held) => row.map((cell, i) => i === 0 ? cell : i === width - 1 ? null : held[width - 2]));
|
|
366
|
+
}
|
|
185
367
|
/**
|
|
186
368
|
* Distinct sources that recorded `path` inside the range.
|
|
187
369
|
*
|
|
@@ -287,23 +469,22 @@ debug = () => { }) {
|
|
|
287
469
|
* rows that were never filtered by source must not be labelled as one
|
|
288
470
|
* source's.
|
|
289
471
|
*/
|
|
290
|
-
async function readStringRows(where, resolution) {
|
|
472
|
+
async function readStringRows(where, range, resolution, seedWhere) {
|
|
291
473
|
// `value_kind` marks rows that were recorded as booleans, so v2 replays
|
|
292
474
|
// them as real booleans exactly like v1 — otherwise the same path would
|
|
293
475
|
// read `true` through one API and `"true"` through the other. Untagged
|
|
294
476
|
// rows (plain text, and everything written before the column existed)
|
|
295
477
|
// stay strings; the text is never guessed at.
|
|
478
|
+
// Strip the source predicate for the no-source retry. It is always the
|
|
479
|
+
// trailing ` AND source = '...'` / ` AND source IS NULL` that
|
|
480
|
+
// buildSourceWhere appended, so removing it leaves the range, context
|
|
481
|
+
// and path filters intact.
|
|
482
|
+
const withoutSource = (clause) => clause.replace(/ AND source (?:= '[^']*'|IS NULL)/g, "");
|
|
296
483
|
const sql = (withKind, withSource) => {
|
|
297
484
|
const kind = withKind ? "value_kind" : "NULL";
|
|
298
|
-
|
|
299
|
-
// trailing ` AND source = '...'` / ` AND source IS NULL` that
|
|
300
|
-
// buildSourceWhere appended, so removing it leaves the range, context
|
|
301
|
-
// and path filters intact.
|
|
302
|
-
const clause = withSource
|
|
303
|
-
? where
|
|
304
|
-
: where.replace(/ AND source (?:= '[^']*'|IS NULL)/g, "");
|
|
485
|
+
const clause = withSource ? where : withoutSource(where);
|
|
305
486
|
return resolution && resolution > 0
|
|
306
|
-
? `SELECT ts, last(value_str) as value_str, last(${kind}) as value_kind FROM signalk_str WHERE ${clause}
|
|
487
|
+
? `SELECT ts, last(value_str) as value_str, last(${kind}) as value_kind, last(ts) as held_ts FROM signalk_str WHERE ${clause} ${sampleBy(range, resolution)} ORDER BY ts`
|
|
307
488
|
: `SELECT ts, value_str, ${kind} as value_kind FROM signalk_str WHERE ${clause} ORDER BY ts LIMIT 10000`;
|
|
308
489
|
};
|
|
309
490
|
// A read racing ensureTables()'s migration — or an external QuestDB the
|
|
@@ -311,9 +492,13 @@ debug = () => { }) {
|
|
|
311
492
|
// can be missing independently: `value_kind` (degrade to text) and
|
|
312
493
|
// `source` (degrade to unfiltered, and say so).
|
|
313
494
|
let sourceDropped = false;
|
|
495
|
+
// The column set the query ran with, for the seed to run with the same.
|
|
496
|
+
let ranWithKind = true;
|
|
314
497
|
const run = async (withKind, withSource) => {
|
|
315
498
|
try {
|
|
316
|
-
|
|
499
|
+
const result = await queryClient.exec(sql(withKind, withSource));
|
|
500
|
+
ranWithKind = withKind;
|
|
501
|
+
return result;
|
|
317
502
|
}
|
|
318
503
|
catch (err) {
|
|
319
504
|
if (withKind && isMissingKindColumn(err))
|
|
@@ -329,8 +514,26 @@ debug = () => { }) {
|
|
|
329
514
|
}
|
|
330
515
|
};
|
|
331
516
|
const result = await run(true, true);
|
|
517
|
+
let dataset = result.dataset;
|
|
518
|
+
// A text bucket's value is already its last sample, so an empty bucket
|
|
519
|
+
// takes the held row's text and kind as they are.
|
|
520
|
+
if (resolution && resolution > 0 && seedWhere && holdMs > 0) {
|
|
521
|
+
let seed = null;
|
|
522
|
+
if (dataset.length > 0 && dataset[0][3] === null) {
|
|
523
|
+
const kind = ranWithKind ? "value_kind" : "NULL";
|
|
524
|
+
const clause = sourceDropped ? withoutSource(seedWhere) : seedWhere;
|
|
525
|
+
const seedResult = await queryClient.exec(`SELECT ts, value_str, ${kind} as value_kind, ts as held_ts FROM signalk_str WHERE ${clause} LIMIT -1`);
|
|
526
|
+
seed = seedResult.dataset[0] ?? null;
|
|
527
|
+
}
|
|
528
|
+
dataset = holdThroughEmptyBuckets(dataset, seed, holdMs, (row, held) => [
|
|
529
|
+
row[0],
|
|
530
|
+
held[1],
|
|
531
|
+
held[2],
|
|
532
|
+
null,
|
|
533
|
+
]);
|
|
534
|
+
}
|
|
332
535
|
return {
|
|
333
|
-
rows:
|
|
536
|
+
rows: dataset.map((row) => [
|
|
334
537
|
row[0],
|
|
335
538
|
row[2] === "boolean" ? row[1] === "true" : row[1],
|
|
336
539
|
]),
|
|
@@ -485,10 +688,10 @@ debug = () => { }) {
|
|
|
485
688
|
valuesList[specIndex].method = "first";
|
|
486
689
|
let sql;
|
|
487
690
|
if (posAgg === "middle_index") {
|
|
488
|
-
sql = middleRowSql(table, "lat, lon", where, query.resolution);
|
|
691
|
+
sql = middleRowSql(table, "lat, lon", where, range, query.resolution);
|
|
489
692
|
}
|
|
490
693
|
else if (query.resolution && query.resolution > 0) {
|
|
491
|
-
sql = `SELECT ts, ${posAgg}(lat) as lat, ${posAgg}(lon) as lon FROM ${table} WHERE ${where}
|
|
694
|
+
sql = `SELECT ts, ${posAgg}(lat) as lat, ${posAgg}(lon) as lon FROM ${table} WHERE ${where} ${sampleBy(range, query.resolution)} ORDER BY ts`;
|
|
492
695
|
}
|
|
493
696
|
else {
|
|
494
697
|
sql = `SELECT ts, lat, lon FROM ${table} WHERE ${where} ORDER BY ts LIMIT 10000`;
|
|
@@ -505,6 +708,7 @@ debug = () => { }) {
|
|
|
505
708
|
continue;
|
|
506
709
|
}
|
|
507
710
|
const where = `${buildRangeWhere(range, safeContext)} AND path = '${safePath}'${sourceWhere}`;
|
|
711
|
+
const seedWhere = `${seedRangeWhere(range, safeContext)} AND path = '${safePath}'${sourceWhere}`;
|
|
508
712
|
if (isMovingAverage(spec.aggregate)) {
|
|
509
713
|
// The window runs over the series at the requested resolution — one
|
|
510
714
|
// averaged bucket per sample, the grid every other column is on — so
|
|
@@ -515,15 +719,38 @@ debug = () => { }) {
|
|
|
515
719
|
// An empty bucket stays a sample of the window (see computeSMA), so a
|
|
516
720
|
// gap ages values out instead of stretching the window across it.
|
|
517
721
|
const window = movingAverageWindow(spec);
|
|
518
|
-
const
|
|
519
|
-
|
|
722
|
+
const angular = isAngular(unitsOf(spec.path, requestedContext));
|
|
723
|
+
const bucket = angular ? ANGULAR_BUCKET_SQL : "avg(value) as agg_value";
|
|
724
|
+
const sampled = !!query.resolution && query.resolution > 0;
|
|
725
|
+
const sql = sampled
|
|
726
|
+
? `SELECT ts, ${bucket}, ${HELD_SQL} FROM ${table} WHERE ${where} ${sampleBy(range, query.resolution)} ORDER BY ts`
|
|
520
727
|
: `SELECT ts, value FROM ${table} WHERE ${where} ORDER BY ts LIMIT 10000`;
|
|
521
728
|
const result = await queryClient.exec(sql);
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
729
|
+
// Held before averaging: an unchanged value is still a sample of
|
|
730
|
+
// the window, not a hole in it.
|
|
731
|
+
const dataset = sampled
|
|
732
|
+
? await holdNumericBuckets(result.dataset, seedWhere)
|
|
733
|
+
: result.dataset;
|
|
734
|
+
// An angular series keeps one convention throughout: [0, 2π) unless
|
|
735
|
+
// a sample (or a bucket's lowest sample) was negative.
|
|
736
|
+
const floors = dataset.map((r) => angular && sampled
|
|
737
|
+
? r[2]
|
|
738
|
+
: r[1]);
|
|
739
|
+
const nonNegative = floors.every((f) => f === null || f >= 0);
|
|
740
|
+
const series = dataset.map((r) => {
|
|
741
|
+
const v = r[1];
|
|
742
|
+
return v !== null && angular && sampled
|
|
743
|
+
? normaliseAngle(v, r[2] >= 0)
|
|
744
|
+
: v;
|
|
745
|
+
});
|
|
746
|
+
const computed = angular
|
|
747
|
+
? "samples" in window
|
|
748
|
+
? computeAngularSMA(series, window.samples, nonNegative)
|
|
749
|
+
: computeAngularEMA(series, window.alpha, nonNegative)
|
|
750
|
+
: "samples" in window
|
|
751
|
+
? computeSMA(series, window.samples)
|
|
752
|
+
: computeEMA(series, window.alpha);
|
|
753
|
+
const rows = dataset.map((r, i) => [
|
|
527
754
|
r[0],
|
|
528
755
|
computed[i],
|
|
529
756
|
]);
|
|
@@ -533,7 +760,7 @@ debug = () => { }) {
|
|
|
533
760
|
if (spec.aggregate === "middle_index") {
|
|
534
761
|
// A text path has rows in signalk_str only; this reads the numeric
|
|
535
762
|
// table and leaves the column empty for one, like a moving average.
|
|
536
|
-
const result = await queryClient.exec(middleRowSql(table, "value", where, query.resolution));
|
|
763
|
+
const result = await queryClient.exec(middleRowSql(table, "value", where, range, query.resolution));
|
|
537
764
|
const rows = result.dataset.map((r) => [
|
|
538
765
|
r[0],
|
|
539
766
|
r[1],
|
|
@@ -541,18 +768,26 @@ debug = () => { }) {
|
|
|
541
768
|
columnData.set(specIndex, rows);
|
|
542
769
|
continue;
|
|
543
770
|
}
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
771
|
+
// Only average has a circular form; min, max and mid on an angle are
|
|
772
|
+
// the caller's choice, and first, last and middle_index are samples.
|
|
773
|
+
const angularMean = spec.aggregate === "average" &&
|
|
774
|
+
isAngular(unitsOf(spec.path, requestedContext));
|
|
775
|
+
const aggExpr = angularMean
|
|
776
|
+
? ANGULAR_BUCKET_SQL
|
|
777
|
+
: `${aggregateToSql(spec.aggregate)} as agg_value`;
|
|
778
|
+
const sampled = !!query.resolution && query.resolution > 0;
|
|
779
|
+
const sql = sampled
|
|
780
|
+
? `SELECT ts, ${aggExpr}, ${HELD_SQL} FROM ${table} WHERE ${where} ${sampleBy(range, query.resolution)} ORDER BY ts`
|
|
781
|
+
: `SELECT ts, value FROM ${table} WHERE ${where} ORDER BY ts LIMIT 10000`;
|
|
552
782
|
const result = await queryClient.exec(sql);
|
|
553
|
-
const
|
|
783
|
+
const dataset = sampled
|
|
784
|
+
? await holdNumericBuckets(result.dataset, seedWhere)
|
|
785
|
+
: result.dataset;
|
|
786
|
+
const rows = dataset.map((row) => [
|
|
554
787
|
row[0],
|
|
555
|
-
row[1]
|
|
788
|
+
angularMean && row.length > 2 && row[1] !== null
|
|
789
|
+
? normaliseAngle(row[1], row[2] >= 0)
|
|
790
|
+
: row[1],
|
|
556
791
|
]);
|
|
557
792
|
// Non-numeric paths (strings, and booleans stored as "true"/"false")
|
|
558
793
|
// live in signalk_str, which this query never touches — they used to
|
|
@@ -560,8 +795,10 @@ debug = () => { }) {
|
|
|
560
795
|
// string table when the numeric one held nothing for this path.
|
|
561
796
|
// Emptiness is judged on VALUES, not row count: a SAMPLE BY with
|
|
562
797
|
// FILL(NULL) fabricates a row per bucket, so an all-null result is
|
|
563
|
-
// still "no numeric data here".
|
|
564
|
-
|
|
798
|
+
// still "no numeric data here". Not for an angular mean, though: its
|
|
799
|
+
// null is a bucket whose samples cancelled, and the string table
|
|
800
|
+
// holds no angles to fall back to.
|
|
801
|
+
if (!angularMean && !rows.some(([, value]) => value !== null)) {
|
|
565
802
|
// Report the aggregate that was actually applied. Downsampled string
|
|
566
803
|
// rows always use last() — averaging text is meaningless — so leaving
|
|
567
804
|
// the caller's requested method in the response would label the
|
|
@@ -569,7 +806,7 @@ debug = () => { }) {
|
|
|
569
806
|
if (query.resolution && query.resolution > 0) {
|
|
570
807
|
valuesList[specIndex].method = "last";
|
|
571
808
|
}
|
|
572
|
-
const strResult = await readStringRows(where, query.resolution);
|
|
809
|
+
const strResult = await readStringRows(where, range, query.resolution, seedWhere);
|
|
573
810
|
if (strResult.sourceDropped) {
|
|
574
811
|
// The rows came back unfiltered because signalk_str has no `source`
|
|
575
812
|
// column. They are every source's rows, so the column must stop
|
package/dist/history-v2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history-v2.js","sourceRoot":"","sources":["../src/history-v2.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"history-v2.js","sourceRoot":"","sources":["../src/history-v2.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,10 @@ interface App {
|
|
|
16
16
|
};
|
|
17
17
|
registerHistoryProvider: (provider: unknown) => void;
|
|
18
18
|
registerHistoryApiProvider: (provider: HistoryApi.HistoryProvider) => void;
|
|
19
|
+
getMetadata?: (path: string) => {
|
|
20
|
+
units?: string;
|
|
21
|
+
} | undefined;
|
|
22
|
+
getPath?: (path: string) => unknown;
|
|
19
23
|
getDataDirPath: () => string;
|
|
20
24
|
savePluginOptions: (config: unknown, cb: (err?: Error) => void) => void;
|
|
21
25
|
[key: string]: unknown;
|
|
@@ -39,6 +43,7 @@ declare const _default: (app: App) => {
|
|
|
39
43
|
defaultSamplingRate: import("typebox").TNumber;
|
|
40
44
|
ilpFlushIntervalMs: import("typebox").TNumber;
|
|
41
45
|
samplingRates: import("typebox").TRecord<"^.*$", import("typebox").TNumber>;
|
|
46
|
+
unchangedHeartbeatSeconds: import("typebox").TNumber;
|
|
42
47
|
recordSelf: import("typebox").TBoolean;
|
|
43
48
|
recordOthers: import("typebox").TBoolean;
|
|
44
49
|
restoreOnStart: import("typebox").TBoolean;
|