@minnowdb/core 0.6.9 → 0.7.1
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/block-format/block.js +254 -325
- package/dist/block-format/checksum.js +30 -52
- package/dist/block-format/codecs.js +112 -125
- package/dist/block-format/column.js +187 -205
- package/dist/block-format/index.js +5 -1
- package/dist/block-format/physical.js +371 -387
- package/dist/block-format/types.js +4 -1
- package/dist/block-format/unicode.js +30 -39
- package/dist/date-value.d.ts +5 -0
- package/dist/date-value.js +71 -41
- package/dist/engine/artifact-cache.js +106 -116
- package/dist/engine/batch.js +36 -44
- package/dist/engine/buffered-writer.js +156 -158
- package/dist/engine/byte-estimates.js +20 -22
- package/dist/engine/cache-limits.js +24 -25
- package/dist/engine/cancellation.js +5 -3
- package/dist/engine/catalog.js +64 -73
- package/dist/engine/client.js +715 -780
- package/dist/engine/database.js +15952 -18465
- package/dist/engine/defaults.js +104 -111
- package/dist/engine/errors.js +113 -128
- package/dist/engine/fts.js +233 -280
- package/dist/engine/group-index.js +287 -321
- package/dist/engine/index.js +23 -12
- package/dist/engine/join-index.js +177 -186
- package/dist/engine/keyed-live.js +168 -173
- package/dist/engine/live-api.js +0 -1
- package/dist/engine/live-equal.js +32 -37
- package/dist/engine/live.js +603 -647
- package/dist/engine/memory.js +109 -111
- package/dist/engine/optimizer.d.ts +19 -1
- package/dist/engine/optimizer.js +2642 -2515
- package/dist/engine/point-read.d.ts +4 -2
- package/dist/engine/point-read.js +121 -171
- package/dist/engine/query-api.js +12 -3
- package/dist/engine/query-cache.js +61 -69
- package/dist/engine/query.d.ts +45 -0
- package/dist/engine/query.js +8506 -9375
- package/dist/engine/result-wire.js +221 -252
- package/dist/engine/schema-wire.js +97 -112
- package/dist/engine/schema.js +1099 -1254
- package/dist/engine/sort-keys.js +315 -389
- package/dist/engine/sql-domains.d.ts +7 -1
- package/dist/engine/sql-domains.js +648 -734
- package/dist/engine/sql-driver.js +0 -1
- package/dist/engine/sql-functions.d.ts +11 -0
- package/dist/engine/sql-functions.js +1092 -0
- package/dist/engine/sql-json.js +199 -218
- package/dist/engine/sql-semantics.d.ts +25 -4
- package/dist/engine/sql-semantics.js +579 -513
- package/dist/engine/typed-live.js +271 -293
- package/dist/engine/vector.d.ts +7 -1
- package/dist/engine/vector.js +4513 -4580
- package/dist/engine/worker-host.d.ts +8 -63
- package/dist/engine/worker-host.js +28 -1130
- package/dist/engine/worker-indexeddb.d.ts +1 -0
- package/dist/engine/worker-indexeddb.js +3 -0
- package/dist/engine/worker-memory.d.ts +1 -0
- package/dist/engine/worker-memory.js +3 -0
- package/dist/engine/worker-opfs.d.ts +1 -0
- package/dist/engine/worker-opfs.js +3 -0
- package/dist/engine/worker-server.d.ts +93 -0
- package/dist/engine/worker-server.js +999 -0
- package/dist/engine/worker-store-indexeddb.d.ts +2 -0
- package/dist/engine/worker-store-indexeddb.js +11 -0
- package/dist/engine/worker-store-memory.d.ts +2 -0
- package/dist/engine/worker-store-memory.js +6 -0
- package/dist/engine/worker-store-opfs.d.ts +2 -0
- package/dist/engine/worker-store-opfs.js +9 -0
- package/dist/engine/worker.js +0 -12
- package/dist/engine/write-block-planner.js +93 -100
- package/dist/plan/index.js +15 -16
- package/dist/plan/model.d.ts +9 -1
- package/dist/plan/model.js +20 -27
- package/dist/storage/index.js +0 -12
- package/dist/storage/indexeddb.js +11776 -13171
- package/dist/storage/memory.js +1198 -1241
- package/dist/storage/opfs/files.js +238 -295
- package/dist/storage/opfs/index.js +9 -3
- package/dist/storage/opfs/leader.js +4386 -4856
- package/dist/storage/opfs/rpc.js +223 -259
- package/dist/storage/opfs/snapshot-ledger.js +219 -260
- package/dist/storage/opfs/store.js +884 -1003
- package/dist/storage/persistence.js +59 -74
- package/dist/storage/snapshot-stream.js +788 -826
- package/dist/storage/snapshot.js +36 -37
- package/dist/storage/toolkit/extents.js +444 -520
- package/dist/storage/toolkit/index.js +28 -29
- package/dist/storage/toolkit/record-core.js +5792 -6377
- package/dist/storage/toolkit/sync-file.js +34 -42
- package/dist/storage/toolkit/wal.js +92 -127
- package/dist/storage/toolkit/wire.js +232 -256
- package/dist/storage/types.js +2952 -3228
- package/dist/testing/block-store-conformance.js +1556 -1629
- package/dist/testing/index.js +310 -291
- package/dist/testing/opfs-shim.js +280 -312
- package/dist/testing/simulator.js +496 -534
- package/dist/testing/sqllogictest.js +425 -365
- package/dist/transactions/index.js +1464 -1712
- package/dist/worker-protocol/index.js +70 -69
- package/package.json +20 -2
- package/postgres-feature-profile.json +15 -5
- package/sql-feature-matrix.json +252 -2
|
@@ -1,127 +1,112 @@
|
|
|
1
|
-
import { columnFromState, schema, table, view
|
|
1
|
+
import { columnFromState, schema, table, view } from "./schema.js";
|
|
2
2
|
function serializeColumn(definition, frozen) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
...(definition.generatedSpec === undefined
|
|
18
|
-
? {}
|
|
19
|
-
: { generatedSpec: { ...definition.generatedSpec } }),
|
|
20
|
-
...(definition.renamedFromName === undefined
|
|
21
|
-
? {}
|
|
22
|
-
: { renamedFromName: definition.renamedFromName }),
|
|
23
|
-
...(definition.reference === undefined ? {} : { reference: { ...definition.reference } }),
|
|
24
|
-
...(definition.enumValues === undefined ? {} : { enumValues: [...definition.enumValues] }),
|
|
25
|
-
...(backfillValue === undefined ? {} : { backfillValue }),
|
|
26
|
-
};
|
|
3
|
+
const backfillValue = frozen === void 0 ? typeof definition.backfillValue === "function" ? definition.backfillValue() : definition.backfillValue : frozen.backfillValue;
|
|
4
|
+
return {
|
|
5
|
+
type: definition.type,
|
|
6
|
+
isNullable: definition.isNullable,
|
|
7
|
+
isUnique: definition.isUnique,
|
|
8
|
+
...definition.integer ? { integer: true } : {},
|
|
9
|
+
...definition.sqlDomain === void 0 ? {} : { sqlDomain: structuredClone(definition.sqlDomain) },
|
|
10
|
+
...definition.defaultSpec === void 0 ? {} : { defaultSpec: { ...definition.defaultSpec } },
|
|
11
|
+
...definition.generatedSpec === void 0 ? {} : { generatedSpec: { ...definition.generatedSpec } },
|
|
12
|
+
...definition.renamedFromName === void 0 ? {} : { renamedFromName: definition.renamedFromName },
|
|
13
|
+
...definition.reference === void 0 ? {} : { reference: { ...definition.reference } },
|
|
14
|
+
...definition.enumValues === void 0 ? {} : { enumValues: [...definition.enumValues] },
|
|
15
|
+
...backfillValue === void 0 ? {} : { backfillValue }
|
|
16
|
+
};
|
|
27
17
|
}
|
|
28
18
|
function serializeTable(definition) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
...(definition.checks.length === 0
|
|
40
|
-
? {}
|
|
41
|
-
: { checks: definition.checks.map((check) => ({ ...check })) }),
|
|
42
|
-
};
|
|
19
|
+
return {
|
|
20
|
+
name: definition.name,
|
|
21
|
+
columns: Object.fromEntries(Object.entries(definition.columns).map(([name, columnDefinition]) => [
|
|
22
|
+
name,
|
|
23
|
+
serializeColumn(columnDefinition)
|
|
24
|
+
])),
|
|
25
|
+
...definition.primaryKey.length === 0 ? {} : { primaryKey: [...definition.primaryKey] },
|
|
26
|
+
...definition.foreignKeys.length === 0 ? {} : { foreignKeys: structuredClone(definition.foreignKeys) },
|
|
27
|
+
...definition.checks.length === 0 ? {} : { checks: definition.checks.map((check) => ({ ...check })) }
|
|
28
|
+
};
|
|
43
29
|
}
|
|
44
30
|
function serializeView(definition) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
31
|
+
return {
|
|
32
|
+
name: definition.name,
|
|
33
|
+
sql: definition.sql,
|
|
34
|
+
columns: Object.fromEntries(Object.entries(definition.columns).map(([name, columnDefinition]) => [
|
|
35
|
+
name,
|
|
36
|
+
serializeColumn(columnDefinition)
|
|
37
|
+
]))
|
|
38
|
+
};
|
|
53
39
|
}
|
|
54
40
|
function deserializeView(wire) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
41
|
+
return view(wire.name, {
|
|
42
|
+
sql: wire.sql,
|
|
43
|
+
columns: Object.fromEntries(Object.entries(wire.columns).map(([name, columnDefinition]) => [
|
|
44
|
+
name,
|
|
45
|
+
deserializeColumn(columnDefinition)
|
|
46
|
+
]))
|
|
47
|
+
});
|
|
62
48
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
49
|
+
function serializeSchema(definition) {
|
|
50
|
+
return {
|
|
51
|
+
tables: definition.tables.map(serializeTable),
|
|
52
|
+
...definition.views.length === 0 ? {} : { views: definition.views.map(serializeView) }
|
|
53
|
+
};
|
|
68
54
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
55
|
+
function serializeMigrationSteps(steps) {
|
|
56
|
+
return steps.map((step) => {
|
|
57
|
+
switch (step.kind) {
|
|
58
|
+
case "create-table":
|
|
59
|
+
return { kind: "create-table", table: serializeTable(step.table) };
|
|
60
|
+
case "add-column":
|
|
61
|
+
return {
|
|
62
|
+
kind: "add-column",
|
|
63
|
+
tableName: step.tableName,
|
|
64
|
+
columnName: step.columnName,
|
|
65
|
+
definition: serializeColumn(step.definition, step.backfill === void 0 ? {} : { backfillValue: step.backfill })
|
|
66
|
+
};
|
|
67
|
+
case "replace-view":
|
|
68
|
+
return { kind: "replace-view", view: serializeView(step.view) };
|
|
69
|
+
default:
|
|
70
|
+
return step;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
87
73
|
}
|
|
88
74
|
function deserializeColumn(wire) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
: { reference: { ...wire.reference, enforced: wire.reference.enforced !== false } }),
|
|
106
|
-
...(wire.enumValues === undefined ? {} : { enumValues: wire.enumValues }),
|
|
107
|
-
...(wire.backfillValue === undefined ? {} : { backfillValue: wire.backfillValue }),
|
|
108
|
-
});
|
|
75
|
+
if (wire.enumValues !== void 0 && wire.type !== "string") {
|
|
76
|
+
throw new TypeError(`Enum values require a string column, got ${wire.type}`);
|
|
77
|
+
}
|
|
78
|
+
return columnFromState({
|
|
79
|
+
type: wire.type,
|
|
80
|
+
isNullable: wire.isNullable,
|
|
81
|
+
isUnique: wire.isUnique,
|
|
82
|
+
integer: wire.integer === true,
|
|
83
|
+
...wire.sqlDomain === void 0 ? {} : { sqlDomain: structuredClone(wire.sqlDomain) },
|
|
84
|
+
...wire.defaultSpec === void 0 ? {} : { defaultSpec: wire.defaultSpec },
|
|
85
|
+
...wire.generatedSpec === void 0 ? {} : { generatedSpec: wire.generatedSpec },
|
|
86
|
+
...wire.renamedFromName === void 0 ? {} : { renamedFromName: wire.renamedFromName },
|
|
87
|
+
...wire.reference === void 0 ? {} : { reference: { ...wire.reference, enforced: wire.reference.enforced !== false } },
|
|
88
|
+
...wire.enumValues === void 0 ? {} : { enumValues: wire.enumValues },
|
|
89
|
+
...wire.backfillValue === void 0 ? {} : { backfillValue: wire.backfillValue }
|
|
90
|
+
});
|
|
109
91
|
}
|
|
110
92
|
function deserializeTable(wire) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
? table(wire.name, columns, options)
|
|
121
|
-
: table(wire.name, columns, { ...options, primaryKey: [...wire.primaryKey] });
|
|
93
|
+
const columns = Object.fromEntries(Object.entries(wire.columns).map(([name, columnDefinition]) => [
|
|
94
|
+
name,
|
|
95
|
+
deserializeColumn(columnDefinition)
|
|
96
|
+
]));
|
|
97
|
+
const options = {
|
|
98
|
+
...wire.foreignKeys === void 0 ? {} : { foreignKeys: structuredClone(wire.foreignKeys) },
|
|
99
|
+
...wire.checks === void 0 ? {} : { checks: wire.checks.map((check) => ({ ...check })) }
|
|
100
|
+
};
|
|
101
|
+
return wire.primaryKey === void 0 ? table(wire.name, columns, options) : table(wire.name, columns, { ...options, primaryKey: [...wire.primaryKey] });
|
|
122
102
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
103
|
+
function deserializeSchema(wire) {
|
|
104
|
+
return schema(wire.tables.map(deserializeTable), {
|
|
105
|
+
views: (wire.views ?? []).map(deserializeView)
|
|
106
|
+
});
|
|
127
107
|
}
|
|
108
|
+
export {
|
|
109
|
+
deserializeSchema,
|
|
110
|
+
serializeMigrationSteps,
|
|
111
|
+
serializeSchema
|
|
112
|
+
};
|