flatsql 0.3.9 → 0.4.2
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/README.md +133 -0
- package/dist/cluster/index.d.ts +11 -0
- package/dist/cluster/index.d.ts.map +1 -0
- package/dist/cluster/index.js +59 -0
- package/dist/cluster/index.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/schema/parser.d.ts.map +1 -1
- package/dist/schema/parser.js +70 -5
- package/dist/schema/parser.js.map +1 -1
- package/package.json +28 -8
- package/sdm/flatsql-spatial.wasm +0 -0
- package/sdm/index.d.ts +88 -0
- package/sdm/index.js +253 -0
- package/sdm/manifest.json +402 -0
- package/wasm/flatsql-wasi.wasm +0 -0
- package/wasm/flatsql.js +1 -1
- package/wasm/flatsql.wasm +0 -0
- package/wasm/index.d.ts +56 -1
- package/wasm/index.js +90 -20
package/README.md
CHANGED
|
@@ -72,6 +72,15 @@ FlatBuffer → Query (via virtual table) → FlatBuffer
|
|
|
72
72
|
- **Portable output** — Exported data is standard FlatBuffers, readable by any tooling
|
|
73
73
|
- **Multi-source federation** — Query across multiple FlatBuffer sources with automatic source tagging
|
|
74
74
|
|
|
75
|
+
## Runtime Choices & Performance Gates
|
|
76
|
+
|
|
77
|
+
- Production should prefer the SQLite-backed native/WASM path (`initFlatSQL` → `FlatSQL` → `createDatabase`). The pure TypeScript `FlatSQLDatabase` is preserved only as an explicit fallback/reference implementation for environments that cannot load the WASM module.
|
|
78
|
+
- Use `db.ingestBuffers([...])` on the WASM path when your input is already a set of raw FlatBuffers. It feeds the native bulk-stream ingest path instead of looping through `ingestOne(...)`.
|
|
79
|
+
- Run `npm run bench` (alias `npm run bench:perf`) as the single-command benchmark matrix for FlatSQL JS vs FlatSQL WASM. Use `npm run bench:perf:profile` to print the WASM ingest phase breakdown (`pack`, `decode`, `append`, `index`, `verify`) alongside the gate table.
|
|
80
|
+
Profiling mode is diagnostic and includes instrumentation overhead; use the non-profile benchmark for merge-gate decisions.
|
|
81
|
+
- Run `npm run test:cluster` for the native WAL-backed cluster validation workload, or `npm run test:cluster:smoke` for the short preflight run.
|
|
82
|
+
|
|
83
|
+
|
|
75
84
|
## Source Code
|
|
76
85
|
|
|
77
86
|
| Repository | Description |
|
|
@@ -111,6 +120,12 @@ db.enableDemoExtractors();
|
|
|
111
120
|
// Format: [4-byte size LE][FlatBuffer][4-byte size LE][FlatBuffer]...
|
|
112
121
|
db.ingest(streamData);
|
|
113
122
|
|
|
123
|
+
// Or ingest pre-built FlatBuffers directly through the bulk path.
|
|
124
|
+
db.ingestBuffers([
|
|
125
|
+
flatsql.createTestUser(1, 'Alice', 'alice@example.com', 30),
|
|
126
|
+
flatsql.createTestUser(2, 'Bob', 'bob@example.com', 25),
|
|
127
|
+
]);
|
|
128
|
+
|
|
114
129
|
// Query with SQL
|
|
115
130
|
const result = db.query('SELECT id, name, email FROM User WHERE age > 25');
|
|
116
131
|
console.log(result.columns); // ['id', 'name', 'email']
|
|
@@ -159,6 +174,19 @@ console.log(result.rows);
|
|
|
159
174
|
const exported = db.exportData();
|
|
160
175
|
```
|
|
161
176
|
|
|
177
|
+
### Cluster Runtime Detection
|
|
178
|
+
|
|
179
|
+
Use the runtime guard helpers before attempting browser cluster mode:
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
import { detectClusterEnvironment, isClusterModeSupported } from 'flatsql';
|
|
183
|
+
|
|
184
|
+
const env = detectClusterEnvironment();
|
|
185
|
+
if (!isClusterModeSupported(env)) {
|
|
186
|
+
throw new Error('Cluster mode unsupported on this runtime');
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
162
190
|
### Native C++ (Embedded)
|
|
163
191
|
|
|
164
192
|
For performance-critical applications, link the C++ library directly:
|
|
@@ -207,6 +235,11 @@ for (size_t i = 0; i < result.rowCount(); i++) {
|
|
|
207
235
|
└─────────────────────────────────────────────────────────────┘
|
|
208
236
|
```
|
|
209
237
|
|
|
238
|
+
## Schema Joins & References
|
|
239
|
+
|
|
240
|
+
- JSON schemas that reference other definitions now produce explicit ``From_Target_join`` tables with `{FromRowId, TargetRowId}` columns.
|
|
241
|
+
- This keeps referenced schemas in the same normalized storage layer so queries can `JOIN` the virtual tables instead of embedding opaque JSON blobs.
|
|
242
|
+
|
|
210
243
|
### Stream Format
|
|
211
244
|
|
|
212
245
|
FlatSQL ingests size-prefixed FlatBuffer streams:
|
|
@@ -217,6 +250,106 @@ FlatSQL ingests size-prefixed FlatBuffer streams:
|
|
|
217
250
|
|
|
218
251
|
The 4-byte file identifier in each FlatBuffer determines which table receives the record.
|
|
219
252
|
|
|
253
|
+
## Spatial Extensions
|
|
254
|
+
|
|
255
|
+
FlatSQL includes a full spatial computation engine with SpatiaLite-compatible functions, polygon boolean operations, Voronoi/Delaunay tessellation, and coordinate transforms.
|
|
256
|
+
|
|
257
|
+
### Spatial SQL Functions
|
|
258
|
+
|
|
259
|
+
| Category | Functions |
|
|
260
|
+
|----------|-----------|
|
|
261
|
+
| **Point ops** | `geo_distance`, `geo_bearing`, `geo_destination`, `geo_midpoint`, `geo_area_bbox`, `geo_within_radius`, `geo_bbox_contains` |
|
|
262
|
+
| **Geohash** | `geo_geohash_encode`, `geo_geohash_decode_lat`, `geo_geohash_decode_lon` |
|
|
263
|
+
| **Geometry I/O** | `geo_from_text` (WKT→blob), `geo_as_text` (blob→WKT), `geo_from_geojson`, `geo_as_geojson` |
|
|
264
|
+
| **Predicates** | `geo_contains` (point-in-polygon, ray casting with hole support) |
|
|
265
|
+
| **Boolean ops** | `geo_intersection`, `geo_union`, `geo_difference`, `geo_sym_difference`, `geo_buffer` |
|
|
266
|
+
| **Analysis** | `geo_area_geom`, `geo_centroid`, `geo_length_geom`, `geo_envelope`, `geo_convex_hull` |
|
|
267
|
+
| **Voronoi/Delaunay** | `geo_voronoi`, `geo_delaunay` |
|
|
268
|
+
| **Coord transforms** | `geo_to_ecef` (WGS84→ECEF), `geo_from_ecef` (ECEF→WGS84) |
|
|
269
|
+
|
|
270
|
+
### Examples
|
|
271
|
+
|
|
272
|
+
```sql
|
|
273
|
+
-- Distance between NYC and DC (~328 km)
|
|
274
|
+
SELECT geo_distance(40.7128, -74.0060, 38.9072, -77.0369);
|
|
275
|
+
|
|
276
|
+
-- Bearing from NYC to LA
|
|
277
|
+
SELECT geo_bearing(40.7128, -74.0060, 34.0522, -118.2437);
|
|
278
|
+
|
|
279
|
+
-- Geohash encode/decode
|
|
280
|
+
SELECT geo_geohash_encode(42.6, -5.6, 5); -- 'ezs42'
|
|
281
|
+
|
|
282
|
+
-- Point-in-polygon
|
|
283
|
+
SELECT geo_contains('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 5, 5); -- 1
|
|
284
|
+
|
|
285
|
+
-- Polygon intersection (accepts WKT or blob)
|
|
286
|
+
SELECT geo_as_text(geo_intersection(
|
|
287
|
+
'POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))',
|
|
288
|
+
'POLYGON((5 5, 15 5, 15 15, 5 15, 5 5))'
|
|
289
|
+
));
|
|
290
|
+
|
|
291
|
+
-- WGS84 to ECEF coordinate transform
|
|
292
|
+
SELECT geo_to_ecef(48.8566, 2.3522, 35); -- '4200952.xxx,172458.xxx,4780111.xxx'
|
|
293
|
+
|
|
294
|
+
-- Voronoi diagram
|
|
295
|
+
SELECT geo_as_text(geo_voronoi(
|
|
296
|
+
'MULTIPOINT((0 0), (10 0), (10 10), (0 10))',
|
|
297
|
+
'POLYGON((-5 -5, 15 -5, 15 15, -5 15, -5 -5))'
|
|
298
|
+
));
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### R-Tree Spatial Indexing
|
|
302
|
+
|
|
303
|
+
FlatSQL automatically creates R-Tree shadow tables for spatial columns during ingest. Spatial columns are detected by:
|
|
304
|
+
- **Convention**: columns named `latitude`/`lat` + `longitude`/`lon`/`lng`
|
|
305
|
+
- **Schema attribute**: fields marked with `(spatial)` in FlatBuffers IDL
|
|
306
|
+
|
|
307
|
+
```sql
|
|
308
|
+
-- R-Tree pre-filter + precise radius check (72x faster than full scan)
|
|
309
|
+
SELECT p.* FROM points p
|
|
310
|
+
INNER JOIN _rtree_points r ON p.rowid = r.id
|
|
311
|
+
WHERE r.minLat >= 36.2 AND r.maxLat <= 45.2
|
|
312
|
+
AND r.minLon >= -80 AND r.maxLon <= -68
|
|
313
|
+
AND geo_within_radius(40.7, -74.0, p.lat, p.lon, 500) = 1;
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
### Spatial Performance
|
|
317
|
+
|
|
318
|
+
| Operation | Throughput | Latency |
|
|
319
|
+
|-----------|-----------|---------|
|
|
320
|
+
| Point operations (distance, bearing) | 733K–1.07M ops/sec | ~1 µs |
|
|
321
|
+
| Geohash encode/decode | 631K–746K ops/sec | ~1.4 µs |
|
|
322
|
+
| Point-in-polygon | 127K–255K ops/sec | ~4 µs |
|
|
323
|
+
| Polygon intersection | 81K ops/sec | ~12 µs |
|
|
324
|
+
| Voronoi (4 sites) | 34K ops/sec | ~29 µs |
|
|
325
|
+
| Coordinate transforms | 556K–609K ops/sec | ~1.7 µs |
|
|
326
|
+
| R-Tree bbox query (10K records) | 77K ops/sec | ~13 µs |
|
|
327
|
+
| R-Tree vs full scan speedup | **58–72x** | |
|
|
328
|
+
|
|
329
|
+
### Space Data Module (SDM)
|
|
330
|
+
|
|
331
|
+
FlatSQL Spatial is also available as a standalone WASM module compliant with the [Space Data Module SDK](https://github.com/DigitalArsenal/space-data-module-sdk):
|
|
332
|
+
|
|
333
|
+
```javascript
|
|
334
|
+
import { initSpatialSDM } from 'flatsql/sdm';
|
|
335
|
+
|
|
336
|
+
const sdm = await initSpatialSDM();
|
|
337
|
+
|
|
338
|
+
// Read the embedded manifest
|
|
339
|
+
console.log(sdm.getManifest().pluginId);
|
|
340
|
+
// → 'com.digitalarsenal.flatsql.spatial'
|
|
341
|
+
|
|
342
|
+
// Compute distance
|
|
343
|
+
const km = sdm.computeDistance(40.7128, -74.006, 38.9072, -77.0369);
|
|
344
|
+
|
|
345
|
+
// Point-in-polygon
|
|
346
|
+
const inside = sdm.pointInPolygon('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 5, 5);
|
|
347
|
+
|
|
348
|
+
// Coordinate transform
|
|
349
|
+
const ecef = sdm.toECEF(48.8566, 2.3522, 35);
|
|
350
|
+
const back = sdm.fromECEF(ecef.x, ecef.y, ecef.z);
|
|
351
|
+
```
|
|
352
|
+
|
|
220
353
|
## SQL Support
|
|
221
354
|
|
|
222
355
|
### Supported
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface ClusterEnvironment {
|
|
2
|
+
hasSharedArrayBuffer: boolean;
|
|
3
|
+
hasAtomics: boolean;
|
|
4
|
+
hasCrossOriginIsolation: boolean;
|
|
5
|
+
hasOpfs: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function detectClusterEnvironment(): ClusterEnvironment;
|
|
8
|
+
export declare function isClusterModeSupported(env?: ClusterEnvironment): boolean;
|
|
9
|
+
export declare function describeClusterSupport(env?: ClusterEnvironment): string;
|
|
10
|
+
export declare function ensureClusterModeSupported(env?: ClusterEnvironment): void;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cluster/index.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IACjC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,uBAAuB,EAAE,OAAO,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB;AA2BD,wBAAgB,wBAAwB,IAAI,kBAAkB,CAO7D;AAED,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,kBAA+C,GAAG,OAAO,CAOpG;AAED,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,kBAA+C,GAAG,MAAM,CAoBnG;AAED,wBAAgB,0BAA0B,CAAC,GAAG,GAAE,kBAA+C,GAAG,IAAI,CAIrG"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
function detectSharedArrayBuffer() {
|
|
2
|
+
return typeof SharedArrayBuffer !== 'undefined';
|
|
3
|
+
}
|
|
4
|
+
function detectAtomics() {
|
|
5
|
+
return typeof Atomics !== 'undefined';
|
|
6
|
+
}
|
|
7
|
+
function detectCrossOriginIsolation() {
|
|
8
|
+
const globalAny = globalThis;
|
|
9
|
+
return globalAny.crossOriginIsolated === true;
|
|
10
|
+
}
|
|
11
|
+
function detectOpfs() {
|
|
12
|
+
if (typeof navigator !== 'undefined') {
|
|
13
|
+
const storageManager = navigator.storage;
|
|
14
|
+
if (storageManager && typeof storageManager.getDirectory === 'function') {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const globalAny = globalThis;
|
|
19
|
+
return typeof globalAny.originPrivateFileSystem === 'object' && globalAny.originPrivateFileSystem !== null;
|
|
20
|
+
}
|
|
21
|
+
export function detectClusterEnvironment() {
|
|
22
|
+
return {
|
|
23
|
+
hasSharedArrayBuffer: detectSharedArrayBuffer(),
|
|
24
|
+
hasAtomics: detectAtomics(),
|
|
25
|
+
hasCrossOriginIsolation: detectCrossOriginIsolation(),
|
|
26
|
+
hasOpfs: detectOpfs(),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export function isClusterModeSupported(env = detectClusterEnvironment()) {
|
|
30
|
+
return (env.hasSharedArrayBuffer &&
|
|
31
|
+
env.hasAtomics &&
|
|
32
|
+
env.hasCrossOriginIsolation &&
|
|
33
|
+
env.hasOpfs);
|
|
34
|
+
}
|
|
35
|
+
export function describeClusterSupport(env = detectClusterEnvironment()) {
|
|
36
|
+
const missing = [];
|
|
37
|
+
if (!env.hasSharedArrayBuffer) {
|
|
38
|
+
missing.push('SharedArrayBuffer');
|
|
39
|
+
}
|
|
40
|
+
if (!env.hasAtomics) {
|
|
41
|
+
missing.push('Atomics');
|
|
42
|
+
}
|
|
43
|
+
if (!env.hasCrossOriginIsolation) {
|
|
44
|
+
missing.push('cross-origin isolation');
|
|
45
|
+
}
|
|
46
|
+
if (!env.hasOpfs) {
|
|
47
|
+
missing.push('OPFS');
|
|
48
|
+
}
|
|
49
|
+
if (missing.length === 0) {
|
|
50
|
+
return 'Cluster mode supported on this runtime';
|
|
51
|
+
}
|
|
52
|
+
return `Cluster mode unsupported: missing ${missing.join(', ')}`;
|
|
53
|
+
}
|
|
54
|
+
export function ensureClusterModeSupported(env = detectClusterEnvironment()) {
|
|
55
|
+
if (!isClusterModeSupported(env)) {
|
|
56
|
+
throw new Error(describeClusterSupport(env));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cluster/index.ts"],"names":[],"mappings":"AAWA,SAAS,uBAAuB;IAC9B,OAAO,OAAO,iBAAiB,KAAK,WAAW,CAAC;AAClD,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,OAAO,OAAO,KAAK,WAAW,CAAC;AACxC,CAAC;AAED,SAAS,0BAA0B;IACjC,MAAM,SAAS,GAAG,UAAmE,CAAC;IACtF,OAAO,SAAS,CAAC,mBAAmB,KAAK,IAAI,CAAC;AAChD,CAAC;AAED,SAAS,UAAU;IACjB,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;QACrC,MAAM,cAAc,GAAG,SAAS,CAAC,OAAkD,CAAC;QACpF,IAAI,cAAc,IAAI,OAAO,cAAc,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YACxE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,UAAuE,CAAC;IAC1F,OAAO,OAAO,SAAS,CAAC,uBAAuB,KAAK,QAAQ,IAAI,SAAS,CAAC,uBAAuB,KAAK,IAAI,CAAC;AAC7G,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,oBAAoB,EAAE,uBAAuB,EAAE;QAC/C,UAAU,EAAE,aAAa,EAAE;QAC3B,uBAAuB,EAAE,0BAA0B,EAAE;QACrD,OAAO,EAAE,UAAU,EAAE;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAA0B,wBAAwB,EAAE;IACzF,OAAO,CACL,GAAG,CAAC,oBAAoB;QACxB,GAAG,CAAC,UAAU;QACd,GAAG,CAAC,uBAAuB;QAC3B,GAAG,CAAC,OAAO,CACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAA0B,wBAAwB,EAAE;IACzF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,wCAAwC,CAAC;IAClD,CAAC;IAED,OAAO,qCAAqC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAA0B,wBAAwB,EAAE;IAC7F,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './btree/index.js';
|
|
|
2
2
|
export * from './storage/index.js';
|
|
3
3
|
export * from './schema/index.js';
|
|
4
4
|
export * from './core/index.js';
|
|
5
|
+
export * from './cluster/index.js';
|
|
5
6
|
export * from './flatbuffer-accessor.js';
|
|
6
7
|
export { FlatSQLDatabase, QueryResult, FlatBufferAccessor } from './core/database.js';
|
|
7
8
|
export { TableStore, TableRecord } from './core/table-store.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AAGzC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AAGzC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export * from './btree/index.js';
|
|
|
4
4
|
export * from './storage/index.js';
|
|
5
5
|
export * from './schema/index.js';
|
|
6
6
|
export * from './core/index.js';
|
|
7
|
+
export * from './cluster/index.js';
|
|
7
8
|
export * from './flatbuffer-accessor.js';
|
|
8
9
|
// Re-export main types for convenience
|
|
9
10
|
export { FlatSQLDatabase } from './core/database.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,sEAAsE;AAEtE,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AAEzC,uCAAuC;AACvC,OAAO,EAAE,eAAe,EAAmC,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAe,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAuC,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,sEAAsE;AAEtE,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AAEzC,uCAAuC;AACvC,OAAO,EAAE,eAAe,EAAmC,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAe,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAuC,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/schema/parser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,cAAc,EAA8B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/schema/parser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,cAAc,EAA8B,MAAM,YAAY,CAAC;AAsI7F,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,YAAY;IACpB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAsCD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CA2H/D;AAGD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CA2K5D;AAaD,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAuEnG;AAGD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,GAAG,cAAc,CAiBpF"}
|
package/dist/schema/parser.js
CHANGED
|
@@ -71,9 +71,6 @@ function isValidJSONSchema(value) {
|
|
|
71
71
|
}
|
|
72
72
|
return true;
|
|
73
73
|
}
|
|
74
|
-
/**
|
|
75
|
-
* Type guard to check if a value is a valid property definition.
|
|
76
|
-
*/
|
|
77
74
|
function isValidPropertyDef(value) {
|
|
78
75
|
if (value === null || typeof value !== 'object') {
|
|
79
76
|
return false;
|
|
@@ -82,8 +79,46 @@ function isValidPropertyDef(value) {
|
|
|
82
79
|
if (obj.type !== undefined && typeof obj.type !== 'string') {
|
|
83
80
|
return false;
|
|
84
81
|
}
|
|
82
|
+
if (obj.items !== undefined) {
|
|
83
|
+
if (typeof obj.items !== 'object' || obj.items === null) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
const items = obj.items;
|
|
87
|
+
if (items.type !== undefined && typeof items.type !== 'string') {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (obj.$ref !== undefined && typeof obj.$ref !== 'string') {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
85
94
|
return true;
|
|
86
95
|
}
|
|
96
|
+
const REF_PATTERN = /^#\/(?:(?:definitions)|(?:\$defs))\/(.+)$/;
|
|
97
|
+
function parseJsonRef(ref) {
|
|
98
|
+
const match = REF_PATTERN.exec(ref);
|
|
99
|
+
return match ? match[1] : null;
|
|
100
|
+
}
|
|
101
|
+
function applyJoinTables(parsed, joinRefs) {
|
|
102
|
+
const seen = new Set();
|
|
103
|
+
for (const ref of joinRefs) {
|
|
104
|
+
const target = ref.targetTable;
|
|
105
|
+
if (!target)
|
|
106
|
+
continue;
|
|
107
|
+
const joinName = `${ref.fromTable}_${target}_join`;
|
|
108
|
+
if (seen.has(joinName))
|
|
109
|
+
continue;
|
|
110
|
+
seen.add(joinName);
|
|
111
|
+
parsed.tables.push({
|
|
112
|
+
name: joinName,
|
|
113
|
+
namespace: '',
|
|
114
|
+
fields: [
|
|
115
|
+
{ name: `${ref.fromTable}RowId`, type: 'uint64', isVector: false, defaultValue: undefined, attributes: ['required'] },
|
|
116
|
+
{ name: `${target}RowId`, type: 'uint64', isVector: false, defaultValue: undefined, attributes: ['required'] },
|
|
117
|
+
],
|
|
118
|
+
isStruct: false,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
87
122
|
// Parse FlatBuffer IDL schema
|
|
88
123
|
export function parseFlatBufferIDL(source) {
|
|
89
124
|
const result = {
|
|
@@ -205,6 +240,7 @@ export function parseJSONSchema(source) {
|
|
|
205
240
|
tables: [],
|
|
206
241
|
enums: new Map(),
|
|
207
242
|
};
|
|
243
|
+
const joinReferences = [];
|
|
208
244
|
// Handle top-level object as a table
|
|
209
245
|
if (schema.type === 'object' && schema.properties) {
|
|
210
246
|
const tableName = schema.title || 'Root';
|
|
@@ -223,6 +259,10 @@ export function parseJSONSchema(source) {
|
|
|
223
259
|
const prop = propDef;
|
|
224
260
|
let type = 'string';
|
|
225
261
|
let isVector = false;
|
|
262
|
+
let refTarget = null;
|
|
263
|
+
if (typeof prop.$ref === 'string') {
|
|
264
|
+
refTarget = parseJsonRef(prop.$ref);
|
|
265
|
+
}
|
|
226
266
|
if (prop.type === 'integer') {
|
|
227
267
|
type = 'int64';
|
|
228
268
|
}
|
|
@@ -243,18 +283,27 @@ export function parseJSONSchema(source) {
|
|
|
243
283
|
// Nested object - will be stored as BLOB (serialized FlatBuffer)
|
|
244
284
|
type = propName;
|
|
245
285
|
}
|
|
286
|
+
if (refTarget) {
|
|
287
|
+
type = 'uint64';
|
|
288
|
+
isVector = false;
|
|
289
|
+
joinReferences.push({ fromTable: tableName, columnName: propName, targetTable: refTarget });
|
|
290
|
+
}
|
|
246
291
|
// Handle enums
|
|
247
292
|
if (prop.enum && Array.isArray(prop.enum)) {
|
|
248
293
|
const enumValues = prop.enum.filter((v) => typeof v === 'string');
|
|
249
294
|
result.enums.set(propName + 'Enum', enumValues);
|
|
250
295
|
type = propName + 'Enum';
|
|
251
296
|
}
|
|
297
|
+
const attributes = prop.required ? ['required'] : [];
|
|
298
|
+
if (refTarget) {
|
|
299
|
+
attributes.push('indexed');
|
|
300
|
+
}
|
|
252
301
|
fields.push({
|
|
253
302
|
name: propName,
|
|
254
303
|
type,
|
|
255
304
|
isVector,
|
|
256
305
|
defaultValue: prop.default,
|
|
257
|
-
attributes
|
|
306
|
+
attributes,
|
|
258
307
|
});
|
|
259
308
|
}
|
|
260
309
|
result.tables.push({
|
|
@@ -292,15 +341,30 @@ export function parseJSONSchema(source) {
|
|
|
292
341
|
}
|
|
293
342
|
const prop = propDef;
|
|
294
343
|
let type = jsonTypeToFB(prop.type || 'string');
|
|
295
|
-
|
|
344
|
+
let isVector = prop.type === 'array';
|
|
345
|
+
let refTarget = null;
|
|
296
346
|
if (isVector) {
|
|
297
347
|
type = jsonTypeToFB(prop.items?.type || 'string');
|
|
298
348
|
}
|
|
349
|
+
if (typeof prop.$ref === 'string') {
|
|
350
|
+
const parsedRef = parseJsonRef(prop.$ref);
|
|
351
|
+
if (parsedRef) {
|
|
352
|
+
refTarget = parsedRef;
|
|
353
|
+
type = 'uint64';
|
|
354
|
+
isVector = false;
|
|
355
|
+
joinReferences.push({ fromTable: defName, columnName: propName, targetTable: refTarget });
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
const attributes = [];
|
|
359
|
+
if (refTarget) {
|
|
360
|
+
attributes.push('indexed');
|
|
361
|
+
}
|
|
299
362
|
fields.push({
|
|
300
363
|
name: propName,
|
|
301
364
|
type,
|
|
302
365
|
isVector,
|
|
303
366
|
defaultValue: prop.default,
|
|
367
|
+
attributes,
|
|
304
368
|
});
|
|
305
369
|
}
|
|
306
370
|
result.tables.push({
|
|
@@ -312,6 +376,7 @@ export function parseJSONSchema(source) {
|
|
|
312
376
|
}
|
|
313
377
|
}
|
|
314
378
|
}
|
|
379
|
+
applyJoinTables(result, joinReferences);
|
|
315
380
|
return result;
|
|
316
381
|
}
|
|
317
382
|
function jsonTypeToFB(jsonType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/schema/parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/schema/parser.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flatsql",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "SQL queries over raw FlatBuffer storage - zero conversion, real-time indexing, pure streaming",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -18,13 +18,22 @@
|
|
|
18
18
|
"types": "./wasm/wasi.d.ts",
|
|
19
19
|
"import": "./wasm/wasi.js"
|
|
20
20
|
},
|
|
21
|
-
"./wasi.wasm": "./wasm/flatsql-wasi.wasm"
|
|
21
|
+
"./wasi.wasm": "./wasm/flatsql-wasi.wasm",
|
|
22
|
+
"./sdm": {
|
|
23
|
+
"types": "./sdm/index.d.ts",
|
|
24
|
+
"import": "./sdm/index.js"
|
|
25
|
+
},
|
|
26
|
+
"./sdm.wasm": "./sdm/flatsql-spatial.wasm"
|
|
22
27
|
},
|
|
23
28
|
"files": [
|
|
24
29
|
"dist",
|
|
25
30
|
"wasm/*.js",
|
|
26
31
|
"wasm/*.wasm",
|
|
27
32
|
"wasm/*.d.ts",
|
|
33
|
+
"sdm/*.js",
|
|
34
|
+
"sdm/*.wasm",
|
|
35
|
+
"sdm/*.d.ts",
|
|
36
|
+
"sdm/*.json",
|
|
28
37
|
"README.md",
|
|
29
38
|
"LICENSE"
|
|
30
39
|
],
|
|
@@ -32,13 +41,18 @@
|
|
|
32
41
|
"build": "tsc",
|
|
33
42
|
"build:wasm": "bash scripts/build-wasm.sh",
|
|
34
43
|
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
|
|
35
|
-
"test:wasm": "node wasm/test-
|
|
44
|
+
"test:wasm": "node wasm/test-bulk-ingest.mjs",
|
|
36
45
|
"dev": "tsc --watch",
|
|
37
46
|
"serve": "vite docs --port 8081",
|
|
47
|
+
"bench": "node bench/flatsql-perf.mjs",
|
|
48
|
+
"bench:perf": "node bench/flatsql-perf.mjs",
|
|
49
|
+
"bench:perf:profile": "node bench/flatsql-perf.mjs --profile",
|
|
38
50
|
"prepublishOnly": "npm run build",
|
|
39
51
|
"emsdk:install": "bash scripts/install-emsdk.sh",
|
|
40
52
|
"emsdk:env": "echo 'Run: source packages/emsdk/emsdk_env.sh'",
|
|
41
|
-
"test:wasi": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runTestsByPath test/wasi.test.ts"
|
|
53
|
+
"test:wasi": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runTestsByPath test/wasi.test.ts",
|
|
54
|
+
"test:cluster": "bash scripts/cluster-validation.sh",
|
|
55
|
+
"test:cluster:smoke": "bash scripts/cluster-validation.sh --duration=5 --stretch-duration=5 --readers=4 --stretch-readers=6"
|
|
42
56
|
},
|
|
43
57
|
"repository": {
|
|
44
58
|
"type": "git",
|
|
@@ -59,20 +73,26 @@
|
|
|
59
73
|
"wasm",
|
|
60
74
|
"webassembly",
|
|
61
75
|
"query",
|
|
62
|
-
"virtual-table"
|
|
76
|
+
"virtual-table",
|
|
77
|
+
"spatial",
|
|
78
|
+
"geospatial",
|
|
79
|
+
"voronoi",
|
|
80
|
+
"delaunay",
|
|
81
|
+
"rtree",
|
|
82
|
+
"space-data-module"
|
|
63
83
|
],
|
|
64
84
|
"author": "Digital Arsenal <tj@digitalarsenal.io>",
|
|
65
85
|
"license": "Apache-2.0",
|
|
66
86
|
"dependencies": {
|
|
67
|
-
"flatc-wasm": "^26.1.
|
|
87
|
+
"flatc-wasm": "^26.1.31",
|
|
68
88
|
"sql.js": "^1.10.0"
|
|
69
89
|
},
|
|
70
90
|
"devDependencies": {
|
|
91
|
+
"@types/jest": "^29.5.0",
|
|
71
92
|
"@types/node": "^20.0.0",
|
|
72
|
-
"typescript": "^5.3.0",
|
|
73
93
|
"jest": "^29.7.0",
|
|
74
|
-
"@types/jest": "^29.5.0",
|
|
75
94
|
"ts-jest": "^29.1.0",
|
|
95
|
+
"typescript": "^5.3.0",
|
|
76
96
|
"vite": "^5.0.0"
|
|
77
97
|
},
|
|
78
98
|
"engines": {
|
|
Binary file
|