vastgrid-js 0.0.0-stage → 0.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/LICENSE +21 -0
- package/README.md +211 -2
- package/dist/aggregate.d.ts +45 -0
- package/dist/aggregate.d.ts.map +1 -0
- package/dist/aggregate.js +305 -0
- package/dist/aggregate.js.map +1 -0
- package/dist/arrow.d.ts +7 -0
- package/dist/arrow.d.ts.map +1 -0
- package/dist/arrow.js +25 -0
- package/dist/arrow.js.map +1 -0
- package/dist/engine.d.ts +40 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +1022 -0
- package/dist/engine.js.map +1 -0
- package/dist/evaluate.d.ts +37 -0
- package/dist/evaluate.d.ts.map +1 -0
- package/dist/evaluate.js +774 -0
- package/dist/evaluate.js.map +1 -0
- package/dist/export.d.ts +23 -0
- package/dist/export.d.ts.map +1 -0
- package/dist/export.js +48 -0
- package/dist/export.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/lazy.d.ts +65 -0
- package/dist/lazy.d.ts.map +1 -0
- package/dist/lazy.js +177 -0
- package/dist/lazy.js.map +1 -0
- package/dist/numbers.d.ts +20 -0
- package/dist/numbers.d.ts.map +1 -0
- package/dist/numbers.js +129 -0
- package/dist/numbers.js.map +1 -0
- package/dist/order.d.ts +67 -0
- package/dist/order.d.ts.map +1 -0
- package/dist/order.js +561 -0
- package/dist/order.js.map +1 -0
- package/dist/parquet.d.ts +38 -0
- package/dist/parquet.d.ts.map +1 -0
- package/dist/parquet.js +673 -0
- package/dist/parquet.js.map +1 -0
- package/dist/plan.d.ts +37 -0
- package/dist/plan.d.ts.map +1 -0
- package/dist/plan.js +51 -0
- package/dist/plan.js.map +1 -0
- package/dist/summary.d.ts +37 -0
- package/dist/summary.d.ts.map +1 -0
- package/dist/summary.js +175 -0
- package/dist/summary.js.map +1 -0
- package/dist/table.d.ts +172 -0
- package/dist/table.d.ts.map +1 -0
- package/dist/table.js +154 -0
- package/dist/table.js.map +1 -0
- package/dist/text.d.ts +18 -0
- package/dist/text.d.ts.map +1 -0
- package/dist/text.js +1204 -0
- package/dist/text.js.map +1 -0
- package/dist/workbook.d.ts +6 -0
- package/dist/workbook.d.ts.map +1 -0
- package/dist/workbook.js +35 -0
- package/dist/workbook.js.map +1 -0
- package/package.json +46 -4
- package/src/aggregate.ts +358 -0
- package/src/arrow.ts +24 -0
- package/src/engine.ts +1163 -0
- package/src/evaluate.ts +764 -0
- package/src/export.ts +73 -0
- package/src/index.ts +2 -0
- package/src/lazy.ts +185 -0
- package/src/numbers.ts +128 -0
- package/src/order.ts +594 -0
- package/src/parquet.ts +801 -0
- package/src/plan.ts +99 -0
- package/src/summary.ts +180 -0
- package/src/table.ts +297 -0
- package/src/text.ts +1285 -0
- package/src/workbook.ts +48 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parquet.js","sourceRoot":"","sources":["../src/parquet.ts"],"names":[],"mappings":"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"}
|
package/dist/plan.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Views of plans that derive, filter or group (docs/spec.md §4.1): derive, where, aggregate, having, then
|
|
3
|
+
* sort. The engine loads this module with the first such plan, so that pages whose plans only sort do not load
|
|
4
|
+
* it, and gives it the functions of order that those pages load anyway.
|
|
5
|
+
*/
|
|
6
|
+
import type { CheckedPlan, Column, JsonValue } from "vastgrid-spec";
|
|
7
|
+
import type { ColumnRanks, RankedKey } from "./order.js";
|
|
8
|
+
import { type Vector } from "./table.js";
|
|
9
|
+
/** A column that a view computes: a derived column by row ID, or a column of groups by group number. */
|
|
10
|
+
export interface ViewColumn {
|
|
11
|
+
column: Column;
|
|
12
|
+
values: JsonValue[];
|
|
13
|
+
}
|
|
14
|
+
/** What a view reads of its table, and the engine's functions of order (§3.3). */
|
|
15
|
+
export interface ViewContext {
|
|
16
|
+
/** The rows of the table. */
|
|
17
|
+
count: number;
|
|
18
|
+
/** A column of the table: its values by row ID, and its ranks. */
|
|
19
|
+
values(name: string): Vector;
|
|
20
|
+
ranks(name: string): ColumnRanks;
|
|
21
|
+
rankColumn(column: Column, values: Vector): ColumnRanks;
|
|
22
|
+
sortRows(count: number, keys: readonly RankedKey[], rows: Uint32Array | null): Uint32Array | null;
|
|
23
|
+
/** The plan's sort keys, by the ranks of the view's columns. */
|
|
24
|
+
sortKeys(ranks: (name: string) => ColumnRanks): RankedKey[];
|
|
25
|
+
}
|
|
26
|
+
/** A view of a plan: its columns, the columns it computes, and its rows (row IDs or group numbers) in order. */
|
|
27
|
+
export interface ViewShape {
|
|
28
|
+
columns: Column[];
|
|
29
|
+
derived: Map<string, ViewColumn>;
|
|
30
|
+
grouped: boolean;
|
|
31
|
+
/** The rows of the table, or the groups. */
|
|
32
|
+
tableRows: number;
|
|
33
|
+
rowCount: number;
|
|
34
|
+
order: Uint32Array | null;
|
|
35
|
+
}
|
|
36
|
+
export declare function planView(checked: CheckedPlan, context: ViewContext): ViewShape;
|
|
37
|
+
//# sourceMappingURL=plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGpE,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAY,MAAM,YAAY,CAAC;AAEnD,wGAAwG;AACxG,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,kFAAkF;AAClF,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IACjC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC;IACxD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CAAC;IAClG,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,EAAE,CAAC;CAC7D;AAED,gHAAgH;AAChH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,GAAG,SAAS,CAyD9E"}
|
package/dist/plan.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { groupRows } from "./aggregate.js";
|
|
2
|
+
import { evaluate, filter } from "./evaluate.js";
|
|
3
|
+
import { vectorOf } from "./table.js";
|
|
4
|
+
export function planView(checked, context) {
|
|
5
|
+
const { count } = context;
|
|
6
|
+
// Expressions read the table's columns and the derived ones before them.
|
|
7
|
+
const derived = new Map();
|
|
8
|
+
const valuesOf = (name) => {
|
|
9
|
+
const made = derived.get(name);
|
|
10
|
+
return made ? vectorOf(made.values) : context.values(name);
|
|
11
|
+
};
|
|
12
|
+
const read = (name) => {
|
|
13
|
+
const values = valuesOf(name);
|
|
14
|
+
return (row) => values.at(row);
|
|
15
|
+
};
|
|
16
|
+
for (const item of checked.derive) {
|
|
17
|
+
derived.set(item.name, { column: item.column, values: evaluate(item.expr, read, count) });
|
|
18
|
+
}
|
|
19
|
+
const filtered = checked.where ? filter(checked.where, read, count) : null;
|
|
20
|
+
const ranksOf = (columns, name) => {
|
|
21
|
+
const made = columns.get(name);
|
|
22
|
+
return made ? context.rankColumn(made.column, vectorOf(made.values)) : context.ranks(name);
|
|
23
|
+
};
|
|
24
|
+
if (!checked.aggregate) {
|
|
25
|
+
return {
|
|
26
|
+
columns: checked.columns,
|
|
27
|
+
derived,
|
|
28
|
+
grouped: false,
|
|
29
|
+
tableRows: count,
|
|
30
|
+
rowCount: filtered ? filtered.length : count,
|
|
31
|
+
order: context.sortRows(count, context.sortKeys((name) => ranksOf(derived, name)), filtered),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const groups = groupRows({
|
|
35
|
+
aggregate: checked.aggregate,
|
|
36
|
+
columns: checked.columns,
|
|
37
|
+
rows: filtered,
|
|
38
|
+
count,
|
|
39
|
+
values: valuesOf,
|
|
40
|
+
ranks: (name) => ranksOf(derived, name),
|
|
41
|
+
}, checked.having);
|
|
42
|
+
return {
|
|
43
|
+
columns: groups.columns,
|
|
44
|
+
derived: groups.values,
|
|
45
|
+
grouped: true,
|
|
46
|
+
tableRows: groups.count,
|
|
47
|
+
rowCount: groups.kept ? groups.kept.length : groups.count,
|
|
48
|
+
order: context.sortRows(groups.count, context.sortKeys((name) => ranksOf(groups.values, name)), groups.kept),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=plan.js.map
|
package/dist/plan.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The summary of cells that `summarize` answers (docs/spec.md §8.2): the cells that are not blank, and the
|
|
3
|
+
* sum, minimum, maximum and average of the finite numbers among them, as floats.
|
|
4
|
+
*
|
|
5
|
+
* Exact numbers (integers, bigints, decimals) are summed exactly and rounded once; floats are summed with
|
|
6
|
+
* compensation (Neumaier), and also scaled down by 2^64 so that an average stays finite when the sum is
|
|
7
|
+
* beyond the largest float.
|
|
8
|
+
*/
|
|
9
|
+
import { type Column, type JsonValue } from "vastgrid-spec";
|
|
10
|
+
import type { Vector } from "./table.js";
|
|
11
|
+
/** What `summarize` answers (§8.2). */
|
|
12
|
+
export interface SummaryResult {
|
|
13
|
+
count: number;
|
|
14
|
+
numericCount: number;
|
|
15
|
+
sum: JsonValue;
|
|
16
|
+
min: JsonValue;
|
|
17
|
+
max: JsonValue;
|
|
18
|
+
average: JsonValue;
|
|
19
|
+
}
|
|
20
|
+
/** Counts and sums the values of cells (§8.2). */
|
|
21
|
+
export declare class Summary {
|
|
22
|
+
private count;
|
|
23
|
+
private numericCount;
|
|
24
|
+
private min;
|
|
25
|
+
private max;
|
|
26
|
+
/** Exact sums by scale. */
|
|
27
|
+
private readonly exact;
|
|
28
|
+
private readonly floats;
|
|
29
|
+
private readonly scaled;
|
|
30
|
+
private exactAt;
|
|
31
|
+
private number;
|
|
32
|
+
/** Adds the values of one column, by row ID, at the rows of `rows` (row IDs). */
|
|
33
|
+
add(column: Column, values: Vector, rows: Uint32Array): void;
|
|
34
|
+
/** The summary (§8.2): floats as §2.2 writes them, a sum beyond the largest float as `"Infinity"`. */
|
|
35
|
+
result(): SummaryResult;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,MAAM,EAAsB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAEhF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,SAAS,CAAC;IACf,GAAG,EAAE,SAAS,CAAC;IACf,GAAG,EAAE,SAAS,CAAC;IACf,OAAO,EAAE,SAAS,CAAC;CACpB;AA+CD,kDAAkD;AAClD,qBAAa,OAAO;IAClB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,GAAG,CAA4B;IACvC,2BAA2B;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,MAAM;IAMd,iFAAiF;IACjF,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,QA0DpD;IAED,sGAAsG;IACtG,MAAM,IAAI,aAAa,CAuBtB;CACF"}
|
package/dist/summary.js
ADDED
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The summary of cells that `summarize` answers (docs/spec.md §8.2): the cells that are not blank, and the
|
|
3
|
+
* sum, minimum, maximum and average of the finite numbers among them, as floats.
|
|
4
|
+
*
|
|
5
|
+
* Exact numbers (integers, bigints, decimals) are summed exactly and rounded once; floats are summed with
|
|
6
|
+
* compensation (Neumaier), and also scaled down by 2^64 so that an average stays finite when the sum is
|
|
7
|
+
* beyond the largest float.
|
|
8
|
+
*/
|
|
9
|
+
import { floatJson, floatOf } from "vastgrid-spec";
|
|
10
|
+
import { decimalText } from "./evaluate.js";
|
|
11
|
+
const SCALE_DOWN = 2 ** -64;
|
|
12
|
+
const SCALE_UP = 2 ** 64;
|
|
13
|
+
/** A sum of floats with Neumaier's compensation. */
|
|
14
|
+
class FloatSum {
|
|
15
|
+
sum = 0;
|
|
16
|
+
compensation = 0;
|
|
17
|
+
overflow = false;
|
|
18
|
+
add(value) {
|
|
19
|
+
const total = this.sum + value;
|
|
20
|
+
if (!Number.isFinite(total))
|
|
21
|
+
this.overflow = true;
|
|
22
|
+
else if (Math.abs(this.sum) >= Math.abs(value))
|
|
23
|
+
this.compensation += this.sum - total + value;
|
|
24
|
+
else
|
|
25
|
+
this.compensation += value - total + this.sum;
|
|
26
|
+
this.sum = total;
|
|
27
|
+
}
|
|
28
|
+
/** The sum, or null when it went beyond the largest float on the way. */
|
|
29
|
+
value() {
|
|
30
|
+
return this.overflow ? null : this.sum + this.compensation;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/** A sum of exact numbers at one scale: safe integers while they stay safe, then a bigint. */
|
|
34
|
+
class ExactSum {
|
|
35
|
+
small = 0;
|
|
36
|
+
big = 0n;
|
|
37
|
+
add(value) {
|
|
38
|
+
if (Math.abs(this.small) + Math.abs(value) <= Number.MAX_SAFE_INTEGER)
|
|
39
|
+
this.small += value;
|
|
40
|
+
else {
|
|
41
|
+
this.big += BigInt(this.small);
|
|
42
|
+
this.small = value;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
addBig(value) {
|
|
46
|
+
this.big += value;
|
|
47
|
+
}
|
|
48
|
+
total() {
|
|
49
|
+
return this.big + BigInt(this.small);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** Counts and sums the values of cells (§8.2). */
|
|
53
|
+
export class Summary {
|
|
54
|
+
count = 0;
|
|
55
|
+
numericCount = 0;
|
|
56
|
+
min = Number.POSITIVE_INFINITY;
|
|
57
|
+
max = Number.NEGATIVE_INFINITY;
|
|
58
|
+
/** Exact sums by scale. */
|
|
59
|
+
exact = new Map();
|
|
60
|
+
floats = new FloatSum();
|
|
61
|
+
scaled = new FloatSum();
|
|
62
|
+
exactAt(scale) {
|
|
63
|
+
let sum = this.exact.get(scale);
|
|
64
|
+
if (!sum) {
|
|
65
|
+
sum = new ExactSum();
|
|
66
|
+
this.exact.set(scale, sum);
|
|
67
|
+
}
|
|
68
|
+
return sum;
|
|
69
|
+
}
|
|
70
|
+
number(value) {
|
|
71
|
+
this.numericCount++;
|
|
72
|
+
if (value < this.min)
|
|
73
|
+
this.min = value;
|
|
74
|
+
if (value > this.max)
|
|
75
|
+
this.max = value;
|
|
76
|
+
}
|
|
77
|
+
/** Adds the values of one column, by row ID, at the rows of `rows` (row IDs). */
|
|
78
|
+
add(column, values, rows) {
|
|
79
|
+
switch (column.type) {
|
|
80
|
+
case "string":
|
|
81
|
+
// The empty string is blank (§3.2).
|
|
82
|
+
for (const row of rows) {
|
|
83
|
+
const value = values.at(row);
|
|
84
|
+
if (value !== null && value !== "")
|
|
85
|
+
this.count++;
|
|
86
|
+
}
|
|
87
|
+
return;
|
|
88
|
+
case "integer":
|
|
89
|
+
case "bigint": {
|
|
90
|
+
const sum = this.exactAt(0);
|
|
91
|
+
for (const row of rows) {
|
|
92
|
+
const value = values.at(row);
|
|
93
|
+
if (value === null)
|
|
94
|
+
continue;
|
|
95
|
+
this.count++;
|
|
96
|
+
if (typeof value === "number") {
|
|
97
|
+
sum.add(value);
|
|
98
|
+
this.number(value);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
sum.addBig(BigInt(value));
|
|
102
|
+
this.number(Number(value));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
case "decimal": {
|
|
108
|
+
const scale = column.scale ?? 0;
|
|
109
|
+
const sum = this.exactAt(scale);
|
|
110
|
+
for (const row of rows) {
|
|
111
|
+
const value = values.at(row);
|
|
112
|
+
if (value === null)
|
|
113
|
+
continue;
|
|
114
|
+
this.count++;
|
|
115
|
+
const digits = value.replace(".", "");
|
|
116
|
+
if (digits.length <= 15)
|
|
117
|
+
sum.add(Number(digits));
|
|
118
|
+
else
|
|
119
|
+
sum.addBig(BigInt(digits));
|
|
120
|
+
this.number(Number(value));
|
|
121
|
+
}
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
case "float": {
|
|
125
|
+
const single = column.bits === 32;
|
|
126
|
+
for (const row of rows) {
|
|
127
|
+
const value = values.at(row);
|
|
128
|
+
if (value === null)
|
|
129
|
+
continue;
|
|
130
|
+
this.count++;
|
|
131
|
+
const number = single ? Math.fround(floatOf(value)) : floatOf(value);
|
|
132
|
+
// NaN and the infinities count as cells but not as numbers.
|
|
133
|
+
if (!Number.isFinite(number))
|
|
134
|
+
continue;
|
|
135
|
+
this.floats.add(number);
|
|
136
|
+
this.scaled.add(number * SCALE_DOWN);
|
|
137
|
+
this.number(number);
|
|
138
|
+
}
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
default:
|
|
142
|
+
for (const row of rows)
|
|
143
|
+
if (values.at(row) !== null)
|
|
144
|
+
this.count++;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/** The summary (§8.2): floats as §2.2 writes them, a sum beyond the largest float as `"Infinity"`. */
|
|
148
|
+
result() {
|
|
149
|
+
const { count, numericCount } = this;
|
|
150
|
+
if (numericCount === 0)
|
|
151
|
+
return { count, numericCount, sum: null, min: null, max: null, average: null };
|
|
152
|
+
// The exact sums at the finest of their scales, rounded once.
|
|
153
|
+
const scale = Math.max(...this.exact.keys(), 0);
|
|
154
|
+
let unscaled = 0n;
|
|
155
|
+
for (const [at, sum] of this.exact)
|
|
156
|
+
unscaled += sum.total() * 10n ** BigInt(scale - at);
|
|
157
|
+
const exact = Number(decimalText(unscaled, scale));
|
|
158
|
+
const floats = this.floats.value();
|
|
159
|
+
const scaled = this.scaled.value() ?? 0;
|
|
160
|
+
const sum = exact + (floats ?? scaled * SCALE_UP);
|
|
161
|
+
const average = Number.isFinite(sum)
|
|
162
|
+
? sum / numericCount
|
|
163
|
+
: ((exact * SCALE_DOWN + scaled) / numericCount) * SCALE_UP;
|
|
164
|
+
// −0.0 equals 0.0 (§3.1); the answer writes 0.
|
|
165
|
+
return {
|
|
166
|
+
count,
|
|
167
|
+
numericCount,
|
|
168
|
+
sum: floatJson(sum + 0),
|
|
169
|
+
min: this.min + 0,
|
|
170
|
+
max: this.max + 0,
|
|
171
|
+
average: floatJson(average + 0),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"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"}
|
package/dist/table.d.ts
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tables in memory: what a host gives the engine, and the checks that make them tables of docs/spec.md
|
|
3
|
+
* §2: columns of §2.1 with unique names, and rows of typed JSON values (§2.2).
|
|
4
|
+
*/
|
|
5
|
+
import { type Column, type JsonValue } from "vastgrid-spec";
|
|
6
|
+
import type { ColumnNumbers } from "vastgrid-spec/columns";
|
|
7
|
+
import type { SheetInfo } from "vastgrid-spec/workbook";
|
|
8
|
+
/**
|
|
9
|
+
* A column's values by row ID as typed JSON (§2.2): an array of them, or a column of an Arrow table
|
|
10
|
+
* (`ColumnValues` of vastgrid-spec), whose numbers a sort reads without making JSON.
|
|
11
|
+
*/
|
|
12
|
+
export interface Vector {
|
|
13
|
+
readonly length: number;
|
|
14
|
+
at(row: number): JsonValue;
|
|
15
|
+
readonly numbers?: ColumnNumbers | null;
|
|
16
|
+
readonly validity?: Uint8Array | null;
|
|
17
|
+
}
|
|
18
|
+
/** An array of typed JSON as a vector, which arrays are: they have `length` and `at`. */
|
|
19
|
+
export declare function vectorOf(values: readonly JsonValue[]): Vector;
|
|
20
|
+
/** A table in memory: its columns (§2.1), and its rows of typed JSON values (§2.2) in row ID order. */
|
|
21
|
+
export interface MemoryTable {
|
|
22
|
+
columns: Column[];
|
|
23
|
+
rows: JsonValue[][];
|
|
24
|
+
/**
|
|
25
|
+
* Whether `write` writes the table's cells (§7). Written values are kept apart from `rows`, which stay as the
|
|
26
|
+
* host gave them, and every later request sees them.
|
|
27
|
+
*/
|
|
28
|
+
editable?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* A table as Apache Arrow (§2.3): the bytes of an IPC stream or file, of any number of record batches. Its
|
|
32
|
+
* columns have the logical types of their Arrow types, and are kept as Arrow holds them: values of fixed width
|
|
33
|
+
* as typed arrays, which sorts read as they are, and the others read when they are asked for.
|
|
34
|
+
*/
|
|
35
|
+
export interface ArrowTable {
|
|
36
|
+
arrow: Uint8Array;
|
|
37
|
+
/** Whether `write` writes the table's cells (§7), as for a `MemoryTable`. */
|
|
38
|
+
editable?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/** What a text file is read from: a `Blob` or a `File`, or anything that gives its bytes in slices as they do. */
|
|
41
|
+
export interface TextFile {
|
|
42
|
+
readonly size: number;
|
|
43
|
+
/** The file's name, whose extension tells its format when the table does not. */
|
|
44
|
+
readonly name?: string;
|
|
45
|
+
slice(start?: number, end?: number): {
|
|
46
|
+
arrayBuffer(): Promise<ArrayBuffer>;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/** The formats of text files: CSV, TSV and JSON Lines; and `xlsx`, of Excel workbooks. */
|
|
50
|
+
export type TextFormat = "csv" | "tsv" | "jsonl" | "xlsx";
|
|
51
|
+
/**
|
|
52
|
+
* A table as a text file: CSV, TSV or JSON Lines in UTF-8, read whole into typed columns when it is first opened.
|
|
53
|
+
* Each column has the first of the types boolean, integer, bigint, float, time, date, timestamp and timestamptz
|
|
54
|
+
* that every value of it fits, and otherwise is a string. Or a sheet of an Excel workbook (`.xlsx`, `.xlsm`), which
|
|
55
|
+
* `open` chooses with `read` (§8.2): its columns have the types that the DuckDB engine reads them as.
|
|
56
|
+
*/
|
|
57
|
+
export interface FileTable {
|
|
58
|
+
/** The file, a `Blob` or a `File`: in a Web Worker or the page, read in slices without a copy of it whole. */
|
|
59
|
+
file: TextFile;
|
|
60
|
+
/**
|
|
61
|
+
* `csv`, `tsv`, `jsonl` or `xlsx`; by default from the file's name (`.csv`, `.tsv` or `.tab`, `.jsonl` or
|
|
62
|
+
* `.ndjson`, `.xlsx` or `.xlsm`).
|
|
63
|
+
*/
|
|
64
|
+
format?: TextFormat;
|
|
65
|
+
/**
|
|
66
|
+
* The field separator of a CSV file, one character; by default the one of `,`, tab, `;` and `|` that splits its
|
|
67
|
+
* first line into the most fields.
|
|
68
|
+
*/
|
|
69
|
+
delimiter?: string;
|
|
70
|
+
/** Whether the first line of a CSV or TSV file names the columns (default true). */
|
|
71
|
+
header?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* The most memory, in bytes, that the table's columns may take (default 1 GiB). A file whose columns would take
|
|
74
|
+
* more is not kept: its rows are read by blocks, and its columns whole as requests need them, within this.
|
|
75
|
+
*/
|
|
76
|
+
maxBytes?: number;
|
|
77
|
+
/** Whether `write` writes the table's cells (§7), as for a `MemoryTable`. */
|
|
78
|
+
editable?: boolean;
|
|
79
|
+
}
|
|
80
|
+
/** An answer of `fetch`, as the page, Web Workers and Node.js give it. */
|
|
81
|
+
export interface HttpResponse {
|
|
82
|
+
readonly status: number;
|
|
83
|
+
readonly ok: boolean;
|
|
84
|
+
readonly headers: {
|
|
85
|
+
get(name: string): string | null;
|
|
86
|
+
};
|
|
87
|
+
arrayBuffer(): Promise<ArrayBuffer>;
|
|
88
|
+
}
|
|
89
|
+
/** `fetch`, or a function that answers as it does. */
|
|
90
|
+
export type HttpFetch = (url: string, init: {
|
|
91
|
+
method?: string;
|
|
92
|
+
headers: Record<string, string>;
|
|
93
|
+
}) => Promise<HttpResponse>;
|
|
94
|
+
/**
|
|
95
|
+
* A table as a Parquet file, read by byte ranges: its footer when it is opened, then the row groups of the rows that
|
|
96
|
+
* requests read, and whole only the columns that a view sorts, filters or groups by. Columns have the types that
|
|
97
|
+
* DuckDB reads them as.
|
|
98
|
+
*/
|
|
99
|
+
export interface ParquetTable {
|
|
100
|
+
/**
|
|
101
|
+
* The file: a `Blob` or a `File`, or the URL of a file whose server answers range requests (HTTP `Range`), with
|
|
102
|
+
* CORS that exposes `Content-Length`, `Content-Range` and `ETag` on another origin.
|
|
103
|
+
*/
|
|
104
|
+
parquet: TextFile | string;
|
|
105
|
+
/** Headers of every request for a URL, such as `Authorization`. */
|
|
106
|
+
headers?: Record<string, string>;
|
|
107
|
+
/** A `fetch` to use instead of the global one. */
|
|
108
|
+
fetch?: HttpFetch;
|
|
109
|
+
/**
|
|
110
|
+
* About the most memory, in bytes, that the columns read whole may take (default 1 GiB). Those that no request
|
|
111
|
+
* reads are forgotten when another needs their room; a request that would read more at once fails with
|
|
112
|
+
* `load_failed`.
|
|
113
|
+
*/
|
|
114
|
+
maxBytes?: number;
|
|
115
|
+
/** Whether `write` writes the table's cells (§7), as for a `MemoryTable`. */
|
|
116
|
+
editable?: boolean;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* A table that does not follow §2, or a file that cannot be read, which the engine answers with `load_failed`
|
|
120
|
+
* (§8.7); a file that changed while it was open with `file_changed`.
|
|
121
|
+
*/
|
|
122
|
+
export declare class TableProblem extends Error {
|
|
123
|
+
readonly path: string;
|
|
124
|
+
readonly code: "load_failed" | "file_changed";
|
|
125
|
+
constructor(path: string, message: string, code?: "load_failed" | "file_changed");
|
|
126
|
+
}
|
|
127
|
+
export declare function isObject(value: unknown): value is Record<string, unknown>;
|
|
128
|
+
/** A value as a problem shows it: its JSON, cut to a length that reads. */
|
|
129
|
+
export declare function shown(value: unknown): string;
|
|
130
|
+
/** A table that the engine reads: its columns, and its host's rows or its Arrow columns. */
|
|
131
|
+
export interface CheckedTable {
|
|
132
|
+
columns: Column[];
|
|
133
|
+
rows: readonly (readonly JsonValue[])[] | null;
|
|
134
|
+
vectors: Vector[] | null;
|
|
135
|
+
rowCount: number;
|
|
136
|
+
/** The file of a table whose columns are read when requests need them: a Parquet file, or a large text file. */
|
|
137
|
+
reader?: import("./lazy.js").FileColumns;
|
|
138
|
+
/** The sheets of a workbook, the one read, and what its reading changed (§8.2). */
|
|
139
|
+
workbook?: {
|
|
140
|
+
sheets: SheetInfo[];
|
|
141
|
+
sheet: string;
|
|
142
|
+
notes: string[];
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/** Throws a `TableProblem` at `path(index)` for the first column whose name an earlier column has. */
|
|
146
|
+
export declare function checkNames(columns: readonly Column[], path: (index: number) => string): void;
|
|
147
|
+
/** Whether a host's table is given as Arrow (`ArrowTable`), which `checkArrow` of arrow.ts checks. */
|
|
148
|
+
export declare function isArrowTable(table: unknown): table is ArrowTable;
|
|
149
|
+
/** Whether a host's table is given as a Parquet file (`ParquetTable`), which parquet.ts reads. */
|
|
150
|
+
export declare function isParquetTable(table: unknown): table is ParquetTable;
|
|
151
|
+
/** Whether a host's table is given as a text file (`FileTable`), which `readFile` of text.ts reads. */
|
|
152
|
+
export declare function isFileTable(table: unknown): table is FileTable;
|
|
153
|
+
/** Whether a table given as a file is an Excel workbook, which workbook.ts reads. */
|
|
154
|
+
export declare function isWorkbook(table: FileTable): boolean;
|
|
155
|
+
/**
|
|
156
|
+
* Checks the form of a table given as rows against §2: its columns, with unique names, and rows of one value per
|
|
157
|
+
* column. Gives copies of the columns. Throws a `TableProblem` with the JSON Pointer of the first member at fault.
|
|
158
|
+
* The values are checked as they are read (`valueChecker`), so that opening a table of millions of rows costs
|
|
159
|
+
* nothing per value.
|
|
160
|
+
*/
|
|
161
|
+
export declare function checkTable(table: unknown): CheckedTable;
|
|
162
|
+
/**
|
|
163
|
+
* Checks the values of a column of a table (§2.2): a function of a value and its row that throws a
|
|
164
|
+
* `TableProblem` at `/rows/{row}/{index}` for a value that is not of the column's type.
|
|
165
|
+
*/
|
|
166
|
+
export declare function valueChecker(column: Column, index: number): (value: unknown, row: number) => void;
|
|
167
|
+
/**
|
|
168
|
+
* The value of a column of an Arrow table at a row. A value that has no typed JSON, such as text that is not
|
|
169
|
+
* UTF-8 or a time beyond a day, throws a `TableProblem` at `/rows/{row}/{index}`.
|
|
170
|
+
*/
|
|
171
|
+
export declare function vectorValue(vector: Vector, column: Column, index: number, row: number): JsonValue;
|
|
172
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"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"}
|