@honua/react 0.1.2-beta.0 → 0.1.4-beta.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/contract/discovery.d.ts +34 -0
- package/contract/discovery.d.ts.map +1 -1
- package/contract/index.d.ts +7 -5
- package/contract/index.d.ts.map +1 -1
- package/contract/index.js +3 -2
- package/contract/pmtiles.d.ts +10 -1
- package/contract/pmtiles.d.ts.map +1 -1
- package/contract/pmtiles.js +10 -2
- package/contract/protocol-module.d.ts +84 -9
- package/contract/protocol-module.d.ts.map +1 -1
- package/contract/query-filter-fes.d.ts +18 -0
- package/contract/query-filter-fes.d.ts.map +1 -0
- package/contract/query-filter-fes.js +122 -0
- package/contract/query-filter.d.ts +300 -0
- package/contract/query-filter.d.ts.map +1 -0
- package/contract/query-filter.js +883 -0
- package/contract/schema.d.ts +12 -0
- package/contract/schema.d.ts.map +1 -1
- package/contract/schema.js +34 -0
- package/contract/source-capability-support.d.ts.map +1 -1
- package/contract/source-capability-support.js +15 -3
- package/contract/source.d.ts +45 -25
- package/contract/source.d.ts.map +1 -1
- package/contract/source.js +719 -479
- package/contract/types.d.ts +87 -18
- package/contract/types.d.ts.map +1 -1
- package/contract/widget-source.d.ts.map +1 -1
- package/core/client.d.ts +45 -21
- package/core/client.d.ts.map +1 -1
- package/core/client.js +224 -46
- package/core/error-classifications.d.ts +6 -0
- package/core/error-classifications.d.ts.map +1 -1
- package/core/error-classifications.js +6 -0
- package/core/error-code-registry.d.ts +6 -0
- package/core/error-code-registry.d.ts.map +1 -1
- package/core/error-code-registry.js +6 -0
- package/core/error-envelope.js +2 -0
- package/core/errors.d.ts +1 -1
- package/core/errors.js +1 -1
- package/core/geoparquet-sql.d.ts +68 -4
- package/core/geoparquet-sql.d.ts.map +1 -1
- package/core/geoparquet-sql.js +325 -8
- package/core/odata-write-codec.d.ts.map +1 -1
- package/core/odata-write-codec.js +0 -1
- package/core/odata.d.ts +6 -0
- package/core/odata.d.ts.map +1 -1
- package/core/odata.js +6 -1
- package/core/ogc-processes.d.ts +182 -25
- package/core/ogc-processes.d.ts.map +1 -1
- package/core/ogc-processes.js +602 -30
- package/core/process-runner.d.ts +8 -1
- package/core/process-runner.d.ts.map +1 -1
- package/core/process-runner.js +1 -0
- package/core/protocol-transport.d.ts +2 -0
- package/core/protocol-transport.d.ts.map +1 -1
- package/core/stac.d.ts +31 -0
- package/core/stac.d.ts.map +1 -1
- package/core/stac.js +136 -19
- package/core/surfaces.d.ts.map +1 -1
- package/core/surfaces.js +273 -68
- package/core/types.d.ts +123 -9
- package/core/types.d.ts.map +1 -1
- package/core/wfs-axis-order.d.ts +18 -0
- package/core/wfs-axis-order.d.ts.map +1 -0
- package/core/wfs-axis-order.js +108 -0
- package/core/wfs-capabilities.d.ts +65 -24
- package/core/wfs-capabilities.d.ts.map +1 -1
- package/core/wfs-capabilities.js +237 -27
- package/core/wfs-filter.d.ts +26 -3
- package/core/wfs-filter.d.ts.map +1 -1
- package/core/wfs-filter.js +48 -53
- package/core/wfs-protocol-error.d.ts +12 -0
- package/core/wfs-protocol-error.d.ts.map +1 -0
- package/core/wfs-protocol-error.js +13 -0
- package/core/wfs.d.ts +53 -1
- package/core/wfs.d.ts.map +1 -1
- package/core/wfs.js +251 -29
- package/core/wms-feature-info.d.ts +92 -0
- package/core/wms-feature-info.d.ts.map +1 -0
- package/core/wms-feature-info.js +285 -0
- package/core/wms.d.ts +9 -0
- package/core/wms.d.ts.map +1 -1
- package/core/wms.js +17 -5
- package/esri-compat/event-bus.d.ts +20 -0
- package/esri-compat/event-bus.d.ts.map +1 -1
- package/esri-compat/feature-filter.d.ts +46 -1
- package/esri-compat/feature-filter.d.ts.map +1 -1
- package/esri-compat/feature-filter.js +49 -0
- package/esri-compat/geojson-layer.d.ts +4 -2
- package/esri-compat/geojson-layer.d.ts.map +1 -1
- package/esri-compat/geojson-layer.js +4 -2
- package/esri-compat/identity-manager.js +2 -2
- package/esri-compat/imagery-layer.d.ts +2 -1
- package/esri-compat/imagery-layer.d.ts.map +1 -1
- package/esri-compat/imagery-layer.js +2 -1
- package/esri-compat/layer-list.d.ts +8 -1
- package/esri-compat/layer-list.d.ts.map +1 -1
- package/esri-compat/layer-list.js +11 -4
- package/esri-compat/legend.d.ts.map +1 -1
- package/esri-compat/legend.js +1 -1
- package/esri-compat/locator.d.ts +297 -0
- package/esri-compat/locator.d.ts.map +1 -0
- package/esri-compat/locator.js +579 -0
- package/esri-compat/map-image-layer.d.ts.map +1 -1
- package/esri-compat/map-view.d.ts.map +1 -1
- package/esri-compat/map-view.js +1 -1
- package/esri-compat/scene-view.d.ts.map +1 -1
- package/esri-compat/time-slider.d.ts +29 -0
- package/esri-compat/time-slider.d.ts.map +1 -1
- package/esri-compat/time-slider.js +117 -0
- package/esri-compat/wfs-layer.d.ts +2 -1
- package/esri-compat/wfs-layer.d.ts.map +1 -1
- package/esri-compat/wfs-layer.js +2 -1
- package/esri-compat/widget-host.d.ts +42 -6
- package/esri-compat/widget-host.d.ts.map +1 -1
- package/esri-compat/widget-host.js +99 -10
- package/generated-app/projection.d.ts.map +1 -1
- package/generated-app/runtime.d.ts.map +1 -1
- package/map/data-to-map-bridge.d.ts +1 -1
- package/map/data-to-map-bridge.d.ts.map +1 -1
- package/map/data-to-map-bridge.js +1 -2
- package/map/honua-map.d.ts.map +1 -1
- package/map/honua-map.js +1 -1
- package/map/index.d.ts +2 -0
- package/map/index.d.ts.map +1 -1
- package/map/index.js +2 -0
- package/map/realtime-reconciliation-adapter.d.ts +98 -0
- package/map/realtime-reconciliation-adapter.d.ts.map +1 -0
- package/map/realtime-reconciliation-adapter.js +84 -0
- package/map/temporal-playback.d.ts +25 -0
- package/map/temporal-playback.d.ts.map +1 -1
- package/map/temporal-playback.js +29 -1
- package/package.json +4 -3
- package/query-planner/canonical-filter.d.ts +30 -0
- package/query-planner/canonical-filter.d.ts.map +1 -0
- package/query-planner/canonical-filter.js +30 -0
- package/query-planner/columnar-plan.d.ts +63 -0
- package/query-planner/columnar-plan.d.ts.map +1 -0
- package/query-planner/columnar-plan.js +94 -0
- package/query-planner/diagnostics.d.ts +3 -3
- package/query-planner/diagnostics.d.ts.map +1 -1
- package/query-planner/diagnostics.js +17 -4
- package/query-planner/duckdb.d.ts.map +1 -1
- package/query-planner/duckdb.js +16 -2
- package/query-planner/execution-context.d.ts.map +1 -1
- package/query-planner/execution-context.js +3 -1
- package/query-planner/executor.d.ts.map +1 -1
- package/query-planner/executor.js +7 -1
- package/query-planner/geoservices.d.ts.map +1 -1
- package/query-planner/geoservices.js +24 -5
- package/query-planner/grpc.d.ts.map +1 -1
- package/query-planner/grpc.js +29 -5
- package/query-planner/index.d.ts +20 -5
- package/query-planner/index.d.ts.map +1 -1
- package/query-planner/index.js +16 -3
- package/query-planner/ir.d.ts +6 -1
- package/query-planner/ir.d.ts.map +1 -1
- package/query-planner/ir.js +63 -1
- package/query-planner/odata-protocol-module.d.ts +54 -0
- package/query-planner/odata-protocol-module.d.ts.map +1 -0
- package/query-planner/odata-protocol-module.js +199 -0
- package/query-planner/odata-v1.d.ts +23 -0
- package/query-planner/odata-v1.d.ts.map +1 -0
- package/query-planner/odata-v1.js +202 -0
- package/query-planner/odata.d.ts +0 -3
- package/query-planner/odata.d.ts.map +1 -1
- package/query-planner/odata.js +0 -143
- package/query-planner/ogc-features.d.ts.map +1 -1
- package/query-planner/ogc-features.js +23 -1
- package/query-planner/planner.d.ts +2 -2
- package/query-planner/planner.d.ts.map +1 -1
- package/query-planner/planner.js +146 -27
- package/query-planner/representation.d.ts +59 -0
- package/query-planner/representation.d.ts.map +1 -0
- package/query-planner/representation.js +140 -0
- package/query-planner/types.d.ts +153 -3
- package/query-planner/types.d.ts.map +1 -1
- package/query-planner/wfs-protocol-module.d.ts +57 -0
- package/query-planner/wfs-protocol-module.d.ts.map +1 -0
- package/query-planner/wfs-protocol-module.js +731 -0
- package/query-planner/wfs-v1.d.ts +41 -0
- package/query-planner/wfs-v1.d.ts.map +1 -0
- package/query-planner/wfs-v1.js +366 -0
- package/query-planner/wfs.d.ts +1 -3
- package/query-planner/wfs.d.ts.map +1 -1
- package/query-planner/wfs.js +1 -70
- package/react/honua-map.d.ts +3 -1
- package/react/honua-map.d.ts.map +1 -1
- package/react/honua-map.js +11 -1
- package/react/hooks.d.ts +1 -1
- package/react/hooks.js +1 -1
- package/react/selection.d.ts.map +1 -1
- package/react/selection.js +0 -0
- package/react/use-mounted-source.d.ts +1 -1
- package/react/use-mounted-source.js +1 -1
- package/realtime/checkpoint-store.d.ts +206 -0
- package/realtime/checkpoint-store.d.ts.map +1 -0
- package/realtime/checkpoint-store.js +504 -0
- package/realtime/contract.d.ts +142 -0
- package/realtime/contract.d.ts.map +1 -0
- package/realtime/contract.js +154 -0
- package/realtime/exploration.d.ts +16 -0
- package/realtime/exploration.d.ts.map +1 -0
- package/realtime/exploration.js +32 -0
- package/realtime/honua-server.d.ts +131 -0
- package/realtime/honua-server.d.ts.map +1 -0
- package/realtime/honua-server.js +302 -0
- package/realtime/index.d.ts +39 -0
- package/realtime/index.d.ts.map +1 -0
- package/realtime/index.js +26 -0
- package/realtime/odata-delta.d.ts +114 -0
- package/realtime/odata-delta.d.ts.map +1 -0
- package/realtime/odata-delta.js +483 -0
- package/realtime/projections.d.ts +30 -0
- package/realtime/projections.d.ts.map +1 -0
- package/realtime/projections.js +51 -0
- package/realtime/reconciliation.d.ts +245 -0
- package/realtime/reconciliation.d.ts.map +1 -0
- package/realtime/reconciliation.js +377 -0
- package/realtime/reducer.d.ts +14 -0
- package/realtime/reducer.d.ts.map +1 -0
- package/realtime/reducer.js +351 -0
- package/realtime/resumable-transport.d.ts +111 -0
- package/realtime/resumable-transport.d.ts.map +1 -0
- package/realtime/resumable-transport.js +406 -0
- package/realtime/resumable.d.ts +104 -0
- package/realtime/resumable.d.ts.map +1 -0
- package/realtime/resumable.js +632 -0
- package/realtime/sse.d.ts +23 -0
- package/realtime/sse.d.ts.map +1 -0
- package/realtime/sse.js +147 -0
- package/realtime/store.d.ts +18 -0
- package/realtime/store.d.ts.map +1 -0
- package/realtime/store.js +63 -0
- package/realtime/types.d.ts +190 -0
- package/realtime/types.d.ts.map +1 -0
- package/realtime/types.js +10 -0
- package/realtime/websocket.d.ts +60 -0
- package/realtime/websocket.d.ts.map +1 -0
- package/realtime/websocket.js +157 -0
- package/realtime/wire.d.ts +28 -0
- package/realtime/wire.d.ts.map +1 -0
- package/realtime/wire.js +73 -0
- package/runtime/index.d.ts +6 -2
- package/runtime/index.d.ts.map +1 -1
- package/runtime/index.js +3 -1
- package/runtime/load-package.d.ts +24 -0
- package/runtime/load-package.d.ts.map +1 -1
- package/runtime/load-package.js +45 -1
- package/runtime/maplibre-renderer.d.ts +11 -0
- package/runtime/maplibre-renderer.d.ts.map +1 -1
- package/runtime/maplibre-renderer.js +32 -7
- package/runtime/offline-region-protocol.d.ts +73 -0
- package/runtime/offline-region-protocol.d.ts.map +1 -0
- package/runtime/offline-region-protocol.js +63 -0
- package/runtime/offline-region-style.d.ts +78 -0
- package/runtime/offline-region-style.d.ts.map +1 -0
- package/runtime/offline-region-style.js +147 -0
- package/runtime/pmtiles-protocol.d.ts +7 -8
- package/runtime/pmtiles-protocol.d.ts.map +1 -1
- package/runtime/pmtiles-protocol.js +19 -66
- package/runtime/protocol-registry.d.ts +55 -0
- package/runtime/protocol-registry.d.ts.map +1 -0
- package/runtime/protocol-registry.js +103 -0
- package/runtime/runtime.d.ts +2 -0
- package/runtime/runtime.d.ts.map +1 -1
- package/runtime/runtime.js +6 -1
- package/studio/index.d.ts +24 -7
- package/studio/index.d.ts.map +1 -1
- package/studio/index.js +21 -7
- package/studio/lifecycle-client.d.ts +164 -0
- package/studio/lifecycle-client.d.ts.map +1 -0
- package/studio/lifecycle-client.js +299 -0
- package/studio/lifecycle-errors.d.ts +91 -0
- package/studio/lifecycle-errors.d.ts.map +1 -0
- package/studio/lifecycle-errors.js +77 -0
- package/studio/lifecycle-types.d.ts +321 -0
- package/studio/lifecycle-types.d.ts.map +1 -0
- package/studio/lifecycle-types.js +22 -0
- package/webmap/convert-label.js +0 -1
- package/webmap/convert-symbol.d.ts.map +1 -1
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan-derived columnar batch identity.
|
|
3
|
+
*
|
|
4
|
+
* `ColumnarBatchIdentityV1` is the cache-key contract shipped by #940: source
|
|
5
|
+
* id, source version, schema version, plan id, authorization scope, ordering,
|
|
6
|
+
* and freshness together decide whether two batches are the same answer. Until
|
|
7
|
+
* now the only source-side producer minted those fields itself, so
|
|
8
|
+
* `columnarBatchCacheKey` keyed on a plan id no planner ever issued.
|
|
9
|
+
*
|
|
10
|
+
* This module closes that: every identity field except freshness is read from
|
|
11
|
+
* an accepted {@link QueryExecutionPlan}, and `planId` is the plan's own
|
|
12
|
+
* `validity.fingerprint`. A plan, schema, scope, or query change therefore
|
|
13
|
+
* changes the cache key by construction rather than by convention.
|
|
14
|
+
*
|
|
15
|
+
* Freshness is the one execution-time input. Planning stays observation-clock
|
|
16
|
+
* free — an observation instant in a plan would make the plan fingerprint
|
|
17
|
+
* change on every explain — so the caller supplies it when the source is
|
|
18
|
+
* actually read.
|
|
19
|
+
*
|
|
20
|
+
* The module imports only types from `../columnar/`, so it adds no runtime edge
|
|
21
|
+
* to the columnar data plane.
|
|
22
|
+
*
|
|
23
|
+
* @module
|
|
24
|
+
*/
|
|
25
|
+
import type { ColumnarBatchIdentityV1 } from "../columnar/types.js";
|
|
26
|
+
import { type QueryExecutionPlan } from "./types.js";
|
|
27
|
+
/** Execution-time freshness evidence for a plan-produced batch. */
|
|
28
|
+
export interface ColumnarBatchIdentityFromPlanOptions {
|
|
29
|
+
/**
|
|
30
|
+
* RFC 3339 instant at which the source result was observed. Required, and
|
|
31
|
+
* supplied at execution: it is deliberately not a plan input.
|
|
32
|
+
*/
|
|
33
|
+
readonly observedAt: string;
|
|
34
|
+
/** RFC 3339 instant after which the batch must be revalidated. */
|
|
35
|
+
readonly staleAfter?: string;
|
|
36
|
+
/** Opaque source validator, such as an HTTP ETag. Never a credential. */
|
|
37
|
+
readonly validator?: string;
|
|
38
|
+
/** Opaque monotonic source generation or revision. */
|
|
39
|
+
readonly generation?: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Derive the batch identity a columnar-selected plan implies.
|
|
43
|
+
*
|
|
44
|
+
* Field derivation:
|
|
45
|
+
* - `planId` — the plan's `validity.fingerprint` verbatim, so two plans that
|
|
46
|
+
* are interchangeable for reuse share a cache entry and two that are not,
|
|
47
|
+
* do not. The broader `plan.fingerprint` also covers cost estimates, which
|
|
48
|
+
* change nothing about which rows come back, so it is deliberately not used.
|
|
49
|
+
* - `sourceId` / `sourceVersion` / `schemaVersion` — the plan's declared source
|
|
50
|
+
* identity, falling back to the plan's own descriptor and schema fingerprints
|
|
51
|
+
* when the source declares no version string. Both fallbacks are plan-derived
|
|
52
|
+
* and change whenever the underlying identity changes.
|
|
53
|
+
* - `authorizationScope` — the plan's authorization-scope *fingerprint*, never
|
|
54
|
+
* the raw scope values.
|
|
55
|
+
* - `ordering` — the canonical query's `orderBy`, as an ordering contract.
|
|
56
|
+
* - `freshness` — from {@link ColumnarBatchIdentityFromPlanOptions}.
|
|
57
|
+
*
|
|
58
|
+
* @throws HonuaCapabilityNotSupportedError when the plan did not select
|
|
59
|
+
* columnar execution. A columnar identity minted from an object plan would
|
|
60
|
+
* let a batch claim provenance the planner never granted.
|
|
61
|
+
*/
|
|
62
|
+
export declare function columnarBatchIdentityFromPlan(plan: QueryExecutionPlan, options: ColumnarBatchIdentityFromPlanOptions): ColumnarBatchIdentityV1;
|
|
63
|
+
//# sourceMappingURL=columnar-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"columnar-plan.d.ts","sourceRoot":"","sources":["../../../src/query-planner/columnar-plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAA6C,MAAM,sBAAsB,CAAC;AAE/G,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9E,mEAAmE;AACnE,MAAM,WAAW,oCAAoC;IACnD;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,oCAAoC,GAC5C,uBAAuB,CAqBzB"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan-derived columnar batch identity.
|
|
3
|
+
*
|
|
4
|
+
* `ColumnarBatchIdentityV1` is the cache-key contract shipped by #940: source
|
|
5
|
+
* id, source version, schema version, plan id, authorization scope, ordering,
|
|
6
|
+
* and freshness together decide whether two batches are the same answer. Until
|
|
7
|
+
* now the only source-side producer minted those fields itself, so
|
|
8
|
+
* `columnarBatchCacheKey` keyed on a plan id no planner ever issued.
|
|
9
|
+
*
|
|
10
|
+
* This module closes that: every identity field except freshness is read from
|
|
11
|
+
* an accepted {@link QueryExecutionPlan}, and `planId` is the plan's own
|
|
12
|
+
* `validity.fingerprint`. A plan, schema, scope, or query change therefore
|
|
13
|
+
* changes the cache key by construction rather than by convention.
|
|
14
|
+
*
|
|
15
|
+
* Freshness is the one execution-time input. Planning stays observation-clock
|
|
16
|
+
* free — an observation instant in a plan would make the plan fingerprint
|
|
17
|
+
* change on every explain — so the caller supplies it when the source is
|
|
18
|
+
* actually read.
|
|
19
|
+
*
|
|
20
|
+
* The module imports only types from `../columnar/`, so it adds no runtime edge
|
|
21
|
+
* to the columnar data plane.
|
|
22
|
+
*
|
|
23
|
+
* @module
|
|
24
|
+
*/
|
|
25
|
+
import { HonuaCapabilityNotSupportedError } from "../core/errors.js";
|
|
26
|
+
import { HonuaQueryPlanningError } from "./types.js";
|
|
27
|
+
/**
|
|
28
|
+
* Derive the batch identity a columnar-selected plan implies.
|
|
29
|
+
*
|
|
30
|
+
* Field derivation:
|
|
31
|
+
* - `planId` — the plan's `validity.fingerprint` verbatim, so two plans that
|
|
32
|
+
* are interchangeable for reuse share a cache entry and two that are not,
|
|
33
|
+
* do not. The broader `plan.fingerprint` also covers cost estimates, which
|
|
34
|
+
* change nothing about which rows come back, so it is deliberately not used.
|
|
35
|
+
* - `sourceId` / `sourceVersion` / `schemaVersion` — the plan's declared source
|
|
36
|
+
* identity, falling back to the plan's own descriptor and schema fingerprints
|
|
37
|
+
* when the source declares no version string. Both fallbacks are plan-derived
|
|
38
|
+
* and change whenever the underlying identity changes.
|
|
39
|
+
* - `authorizationScope` — the plan's authorization-scope *fingerprint*, never
|
|
40
|
+
* the raw scope values.
|
|
41
|
+
* - `ordering` — the canonical query's `orderBy`, as an ordering contract.
|
|
42
|
+
* - `freshness` — from {@link ColumnarBatchIdentityFromPlanOptions}.
|
|
43
|
+
*
|
|
44
|
+
* @throws HonuaCapabilityNotSupportedError when the plan did not select
|
|
45
|
+
* columnar execution. A columnar identity minted from an object plan would
|
|
46
|
+
* let a batch claim provenance the planner never granted.
|
|
47
|
+
*/
|
|
48
|
+
export function columnarBatchIdentityFromPlan(plan, options) {
|
|
49
|
+
if (plan.validity.representation !== "columnar") {
|
|
50
|
+
throw new HonuaCapabilityNotSupportedError("columnar-execution", plan.ir.source.protocol, plan.ir.source.id, {
|
|
51
|
+
context: { representation: plan.validity.representation, reason: plan.representation.reason },
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
const observedAt = requireText(options.observedAt, "observedAt");
|
|
55
|
+
return Object.freeze({
|
|
56
|
+
sourceId: plan.ir.source.id,
|
|
57
|
+
sourceVersion: plan.ir.source.sourceVersion ?? plan.provenance.source.descriptorFingerprint,
|
|
58
|
+
schemaVersion: plan.ir.source.schemaVersion ?? plan.validity.schemaFingerprint,
|
|
59
|
+
planId: plan.validity.fingerprint,
|
|
60
|
+
authorizationScope: plan.provenance.authorizationScope.fingerprint,
|
|
61
|
+
ordering: planOrdering(plan),
|
|
62
|
+
freshness: Object.freeze({
|
|
63
|
+
observedAt,
|
|
64
|
+
...(options.staleAfter === undefined ? {} : { staleAfter: requireText(options.staleAfter, "staleAfter") }),
|
|
65
|
+
...(options.validator === undefined ? {} : { validator: requireText(options.validator, "validator") }),
|
|
66
|
+
...(options.generation === undefined ? {} : { generation: requireText(options.generation, "generation") }),
|
|
67
|
+
}),
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The ordering contract the plan's canonical query establishes.
|
|
72
|
+
*
|
|
73
|
+
* Null placement is declared `last` because the compiled DuckDB `ORDER BY`
|
|
74
|
+
* emits no explicit `NULLS` clause and DuckDB's default null order is
|
|
75
|
+
* `NULLS LAST`; the identity states the order the rows actually arrive in
|
|
76
|
+
* rather than leaving it unspecified. A batch whose schema does not carry
|
|
77
|
+
* every ordering key is refused when the batch is created — the identity is
|
|
78
|
+
* never quietly loosened to match a narrower batch.
|
|
79
|
+
*/
|
|
80
|
+
function planOrdering(plan) {
|
|
81
|
+
const orderBy = plan.ir.query.orderBy ?? [];
|
|
82
|
+
const keys = orderBy.map((sort) => Object.freeze({
|
|
83
|
+
field: sort.field,
|
|
84
|
+
direction: sort.direction === "desc" ? "descending" : "ascending",
|
|
85
|
+
nulls: "last",
|
|
86
|
+
}));
|
|
87
|
+
return Object.freeze({ stable: keys.length > 0, keys: Object.freeze(keys) });
|
|
88
|
+
}
|
|
89
|
+
function requireText(value, label) {
|
|
90
|
+
if (typeof value !== "string" || value.length === 0) {
|
|
91
|
+
throw new HonuaQueryPlanningError("invalid-query", `columnar batch identity ${label} must be a non-empty string`);
|
|
92
|
+
}
|
|
93
|
+
return value;
|
|
94
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CapabilityPolicy, SourceDescriptor } from "../contract/types.js";
|
|
2
|
-
import type { CanonicalQuery, ExplainQueryOptions, QueryFallbackPolicy, QueryIrSourceIdentity, QueryIrSourceIdentityV2, QueryIrV1, QueryIrV2, QueryPlanBoundsV1, QueryPlanCacheDecisionV1, QueryPlanCacheOptions, QueryPlanFidelity, QueryPlanFidelityLoss, QueryPlanProvenanceV1, QueryPlanStepProvenanceV1, QueryPlanValidityV1, QueryPlanWarning, QueryPlanningEstimates } from "./types.js";
|
|
2
|
+
import type { CanonicalQuery, ExplainQueryOptions, QueryFallbackPolicy, QueryIrSourceIdentity, QueryIrSourceIdentityV2, QueryIrV1, QueryIrV2, QueryPlanBoundsV1, QueryPlanCacheDecisionV1, QueryPlanCacheOptions, QueryPlanFidelity, QueryPlanFidelityLoss, QueryPlanProvenanceV1, QueryPlanRepresentation, QueryPlanRepresentationDecisionV1, QueryPlanStepProvenanceV1, QueryPlanValidityV1, QueryPlanWarning, QueryPlanningEstimates } from "./types.js";
|
|
3
3
|
type SourceIdentity = QueryIrSourceIdentity | QueryIrSourceIdentityV2;
|
|
4
4
|
interface DiagnosticStep {
|
|
5
5
|
readonly engine: "remote" | "client";
|
|
@@ -29,7 +29,7 @@ export declare function summarizeFidelity(steps: readonly {
|
|
|
29
29
|
readonly fidelity: QueryPlanFidelity;
|
|
30
30
|
readonly losses: readonly QueryPlanFidelityLoss[];
|
|
31
31
|
};
|
|
32
|
-
export declare function createPlanWarnings(steps: readonly DiagnosticStep[], source: SourceIdentity): readonly QueryPlanWarning[];
|
|
33
|
-
export declare function createPlanValidity(ir: QueryIrV1 | QueryIrV2, provenance: QueryPlanProvenanceV1, capabilityPolicy: CapabilityPolicy, fallback: QueryFallbackPolicy, executionMode: "snapshot" | "delta"): QueryPlanValidityV1;
|
|
32
|
+
export declare function createPlanWarnings(steps: readonly DiagnosticStep[], source: SourceIdentity, representation: QueryPlanRepresentationDecisionV1): readonly QueryPlanWarning[];
|
|
33
|
+
export declare function createPlanValidity(ir: QueryIrV1 | QueryIrV2, provenance: QueryPlanProvenanceV1, capabilityPolicy: CapabilityPolicy, fallback: QueryFallbackPolicy, executionMode: "snapshot" | "delta", representation: QueryPlanRepresentation): QueryPlanValidityV1;
|
|
34
34
|
export {};
|
|
35
35
|
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../src/query-planner/diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EAErB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EAErB,yBAAyB,EAEzB,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAGpB,KAAK,cAAc,GAAG,qBAAqB,GAAG,uBAAuB,CAAC;AAGtE,UAAU,cAAc;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,WAAW,GAAG,eAAe,CAAC,GAChE,qBAAqB,CA6BvB;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,qBAAqB,GAAG,yBAAyB,CAQjG;AAED,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,wBAAwB,CA0C7F;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,sBAAsB,EACjC,UAAU,EAAE,qBAAqB,GAChC;IACD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;CAChD,CAUA;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,EAAE,GAAG,iBAAiB,CAU/G;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,SAAS;IAAE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAA;CAAE,EAAE,GAC5G;IAAE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAA;CAAE,CAO7F;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,MAAM,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../src/query-planner/diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EAErB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EAErB,uBAAuB,EACvB,iCAAiC,EACjC,yBAAyB,EAEzB,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAGpB,KAAK,cAAc,GAAG,qBAAqB,GAAG,uBAAuB,CAAC;AAGtE,UAAU,cAAc;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,WAAW,GAAG,eAAe,CAAC,GAChE,qBAAqB,CA6BvB;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,qBAAqB,GAAG,yBAAyB,CAQjG;AAED,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,wBAAwB,CA0C7F;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,sBAAsB,EACjC,UAAU,EAAE,qBAAqB,GAChC;IACD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;CAChD,CAUA;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,EAAE,GAAG,iBAAiB,CAU/G;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,SAAS;IAAE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAA;CAAE,EAAE,GAC5G;IAAE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAA;CAAE,CAO7F;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,iCAAiC,GAChD,SAAS,gBAAgB,EAAE,CA2C7B;AAMD,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,SAAS,GAAG,SAAS,EACzB,UAAU,EAAE,qBAAqB,EACjC,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,mBAAmB,EAC7B,aAAa,EAAE,UAAU,GAAG,OAAO,EACnC,cAAc,EAAE,uBAAuB,GACtC,mBAAmB,CAgBrB"}
|
|
@@ -113,8 +113,20 @@ export function summarizeFidelity(steps) {
|
|
|
113
113
|
: "exact";
|
|
114
114
|
return { fidelity, losses: steps.flatMap((step) => step.losses) };
|
|
115
115
|
}
|
|
116
|
-
export function createPlanWarnings(steps, source) {
|
|
116
|
+
export function createPlanWarnings(steps, source, representation) {
|
|
117
117
|
const warnings = [];
|
|
118
|
+
// Only surfaced when columnar was genuinely on offer. A source that cannot
|
|
119
|
+
// serve columnar states that in `representation.reason`; warning about it on
|
|
120
|
+
// every object plan would be noise, not information.
|
|
121
|
+
if (representation.selected === "object" && representation.available.includes("columnar")) {
|
|
122
|
+
warnings.push({
|
|
123
|
+
code: "columnar-representation-declined",
|
|
124
|
+
severity: "warning",
|
|
125
|
+
path: "$.representation",
|
|
126
|
+
message: `This source can serve columnar execution; object execution was selected (${representation.reason}).`,
|
|
127
|
+
remediation: 'Supply estimates that reach the plan\'s columnar thresholds, or pin representation: "columnar" to require it.',
|
|
128
|
+
});
|
|
129
|
+
}
|
|
118
130
|
if (steps.some((step) => step.engine === "client")) {
|
|
119
131
|
warnings.push({
|
|
120
132
|
code: "bounded-local-fallback",
|
|
@@ -147,12 +159,13 @@ export function createPlanWarnings(steps, source) {
|
|
|
147
159
|
function bboxApproximated(step) {
|
|
148
160
|
return step.compiled !== undefined && "bboxApproximated" in step.compiled && step.compiled.bboxApproximated === true;
|
|
149
161
|
}
|
|
150
|
-
export function createPlanValidity(ir, provenance, capabilityPolicy, fallback, executionMode) {
|
|
162
|
+
export function createPlanValidity(ir, provenance, capabilityPolicy, fallback, executionMode, representation) {
|
|
151
163
|
const unsigned = {
|
|
152
164
|
version: QUERY_PLAN_DIAGNOSTICS_VERSION,
|
|
153
165
|
plannerVersion: QUERY_PLANNER_VERSION,
|
|
154
166
|
contractVersion: `${ir.kind}@${ir.version}`,
|
|
155
167
|
executionMode,
|
|
168
|
+
representation,
|
|
156
169
|
sourceFingerprint: provenance.source.descriptorFingerprint,
|
|
157
170
|
schemaFingerprint: digest("schema-identity", provenance.schema),
|
|
158
171
|
discoveryFingerprint: provenance.discovery.fingerprint,
|
|
@@ -311,9 +324,9 @@ function compiledRowLimit(compiled) {
|
|
|
311
324
|
const artifact = compiled;
|
|
312
325
|
const field = artifact.compiler === "ogc-api-features-query-v1"
|
|
313
326
|
? "limit"
|
|
314
|
-
: artifact.compiler === "wfs-2.0-get-feature-v1"
|
|
327
|
+
: artifact.compiler === "wfs-2.0-get-feature-v1" || artifact.compiler === "wfs-2.0-protocol-query-v1"
|
|
315
328
|
? "count"
|
|
316
|
-
: artifact.compiler === "odata-v4-query-v1"
|
|
329
|
+
: artifact.compiler === "odata-v4-query-v1" || artifact.compiler === "odata-v4-protocol-query-v1"
|
|
317
330
|
? "top"
|
|
318
331
|
: artifact.compiler === "geoservices-rest-query-v1" || artifact.compiler === "honua-grpc-query-features-v1"
|
|
319
332
|
? "resultRecordCount"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duckdb.d.ts","sourceRoot":"","sources":["../../../src/query-planner/duckdb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EACV,oBAAoB,EAIpB,cAAc,EACf,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"duckdb.d.ts","sourceRoot":"","sources":["../../../src/query-planner/duckdb.ts"],"names":[],"mappings":"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"}
|
package/query-planner/duckdb.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* @module
|
|
13
13
|
*/
|
|
14
14
|
import { validateExecutableCrsBinding } from "../contract/schema.js";
|
|
15
|
-
import { compileAggregate, compileQuery, geometryExpr, parquetSourceExpr, quoteIdentifier, } from "../core/geoparquet-sql.js";
|
|
15
|
+
import { GeoParquetWhereClauseError, compileAggregate, compileQuery, geometryExpr, parquetSourceExpr, quoteIdentifier, } from "../core/geoparquet-sql.js";
|
|
16
16
|
import { queryFromCanonical } from "./ir.js";
|
|
17
17
|
import { parseGeoParquetResourceHandle } from "./resource.js";
|
|
18
18
|
import { hashSemanticQuery } from "./semantic-canonical.js";
|
|
@@ -64,9 +64,22 @@ export function compileDuckDbQuery(source, query) {
|
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
66
|
catch (error) {
|
|
67
|
+
rethrowRejectedWhere(error);
|
|
67
68
|
throw new HonuaQueryPlanningError("unsupported-query", `DuckDB query cannot be compiled deterministically: ${error instanceof Error ? error.message : String(error)}`);
|
|
68
69
|
}
|
|
69
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Surface a contained `Query.where` rejection as an invalid query rather than
|
|
73
|
+
* an unsupported one: the raw-text lane is supported, this specific expression
|
|
74
|
+
* is refused. Only the fixed rejection code travels, never the caller's text.
|
|
75
|
+
*/
|
|
76
|
+
function rethrowRejectedWhere(error) {
|
|
77
|
+
if (error instanceof GeoParquetWhereClauseError) {
|
|
78
|
+
throw new HonuaQueryPlanningError("invalid-query", `Query.where was rejected before SQL assembly: ${error.code}`, {
|
|
79
|
+
cause: error,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
70
83
|
/** Compile a credential-free template; execution recompiles with ephemeral resolved sources. */
|
|
71
84
|
export function compileDuckDbQueryV2(source, query) {
|
|
72
85
|
const geoparquet = source.geoparquet;
|
|
@@ -101,7 +114,8 @@ export function compileDuckDbQueryV2(source, query) {
|
|
|
101
114
|
...(compiled.bboxApproximated ? { bboxApproximated: true } : {}),
|
|
102
115
|
};
|
|
103
116
|
}
|
|
104
|
-
catch {
|
|
117
|
+
catch (error) {
|
|
118
|
+
rethrowRejectedWhere(error);
|
|
105
119
|
throw new HonuaQueryPlanningError("unsupported-query", "DuckDB query cannot be compiled safely for an opaque GeoParquet resource");
|
|
106
120
|
}
|
|
107
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../../src/query-planner/execution-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAInD,OAAO,EACL,KAAK,uBAAuB,EAE5B,KAAK,oBAAoB,EAE1B,MAAM,YAAY,CAAC;AAEpB,oFAAoF;AACpF,wBAAgB,iCAAiC,CAAC,CAAC,EACjD,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,OAAO,EAAE,uBAAuB,GAC/B,IAAI,
|
|
1
|
+
{"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../../src/query-planner/execution-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAInD,OAAO,EACL,KAAK,uBAAuB,EAE5B,KAAK,oBAAoB,EAE1B,MAAM,YAAY,CAAC;AAEpB,oFAAoF;AACpF,wBAAgB,iCAAiC,CAAC,CAAC,EACjD,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,OAAO,EAAE,uBAAuB,GAC/B,IAAI,CA0CN"}
|
|
@@ -8,7 +8,9 @@ export function assertQueryPlanExecutionContextV1(plan, source, options) {
|
|
|
8
8
|
const executionMode = options.executionMode ?? plan.validity.executionMode;
|
|
9
9
|
const currentIr = { ...plan.ir, source: current };
|
|
10
10
|
const currentProvenance = createQueryPlanProvenance(source.descriptor, current, options);
|
|
11
|
-
|
|
11
|
+
// Representation is plan-bound, not source-bound: it is re-asserted here so
|
|
12
|
+
// the validity fingerprint recomputes identically, never re-decided.
|
|
13
|
+
const currentValidity = createPlanValidity(currentIr, currentProvenance, plan.capabilityPolicy, plan.fallback, executionMode, plan.validity.representation);
|
|
12
14
|
if (currentValidity.fingerprint === plan.validity.fingerprint)
|
|
13
15
|
return;
|
|
14
16
|
if (!sameForeignSourceIdentity(current, plan.ir.source)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/query-planner/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAUlE,OAAO,EACL,KAAK,uBAAuB,EAK5B,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EAExB,MAAM,YAAY,CAAC;AAEpB,mFAAmF;AACnF,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/query-planner/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAUlE,OAAO,EACL,KAAK,uBAAuB,EAK5B,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EAExB,MAAM,YAAY,CAAC;AAEpB,mFAAmF;AACnF,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CA0BhC"}
|
|
@@ -11,6 +11,12 @@ import { HonuaQueryPlanExecutionError, } from "./types.js";
|
|
|
11
11
|
export async function executeQueryPlan(plan, source, options = {}) {
|
|
12
12
|
const acceptedPlan = validateQueryPlanSnapshot(plan);
|
|
13
13
|
assertPlanContext(acceptedPlan, source, options);
|
|
14
|
+
// This executor is the object-representation executor. Silently answering a
|
|
15
|
+
// columnar-selected plan with feature objects would misreport the
|
|
16
|
+
// representation the plan (and any batch identity derived from it) declares.
|
|
17
|
+
if (acceptedPlan.validity.representation !== "object") {
|
|
18
|
+
throw new HonuaQueryPlanExecutionError("invalid-plan", `executeQueryPlan returns object results, but this plan selected "${acceptedPlan.validity.representation}" execution; execute it through the plan's columnar producer or explain with representation: "object"`);
|
|
19
|
+
}
|
|
14
20
|
throwIfExecutionAborted(options.signal);
|
|
15
21
|
const remote = acceptedPlan.steps[0];
|
|
16
22
|
if (!remote || remote.engine !== "remote") {
|
|
@@ -34,7 +40,7 @@ function assertPlanContext(plan, source, options) {
|
|
|
34
40
|
const executionMode = options.executionMode ?? plan.validity.executionMode;
|
|
35
41
|
const currentIr = { ...plan.ir, source: current };
|
|
36
42
|
const currentProvenance = createQueryPlanProvenance(source.descriptor, current, options);
|
|
37
|
-
const currentValidity = createPlanValidity(currentIr, currentProvenance, plan.capabilityPolicy, plan.fallback, executionMode);
|
|
43
|
+
const currentValidity = createPlanValidity(currentIr, currentProvenance, plan.capabilityPolicy, plan.fallback, executionMode, plan.validity.representation);
|
|
38
44
|
if (currentValidity.fingerprint === plan.validity.fingerprint)
|
|
39
45
|
return;
|
|
40
46
|
if (!sameForeignSourceIdentity(current, plan.ir.source)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geoservices.d.ts","sourceRoot":"","sources":["../../../src/query-planner/geoservices.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"geoservices.d.ts","sourceRoot":"","sources":["../../../src/query-planner/geoservices.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { compileQueryFilterToSql92, compileTemporalFilterToGeoServicesTime, } from "../contract/query-filter.js";
|
|
1
2
|
import { validateExecutableCrsBinding } from "../contract/schema.js";
|
|
3
|
+
import { canonicalFilterParts } from "./canonical-filter.js";
|
|
2
4
|
import { hashSemanticQuery } from "./semantic-canonical.js";
|
|
3
5
|
import { prepareSemanticCompilerQuery, runSemanticCompiler, sameCrsDefinition, sameExecutableCrs, semanticSchemaField, semanticUnsupported, } from "./semantic-compiler.js";
|
|
4
6
|
import { exactDecimalText, finiteDecimalNumber, quotedSemanticString, recordSemanticFieldMapping, semanticRequestFingerprint, sortSemanticFieldMappings, sql92Identifier, verifiedSemanticNativeText, verifiedSemanticSourceText, verifiedSemanticSourceVersion, } from "./semantic-literals.js";
|
|
@@ -17,11 +19,28 @@ export function compileGeoServicesQuery(source, query) {
|
|
|
17
19
|
if (query.aggregation?.histogram || query.aggregation?.timeSeries) {
|
|
18
20
|
throw new HonuaQueryPlanningError("unsupported-query", "The first GeoServices planner slice supports metrics and groupBy; histogram/timeSeries compilers remain follow-on work");
|
|
19
21
|
}
|
|
22
|
+
const ctx = { protocol: source.protocol, sourceId: source.id };
|
|
23
|
+
const parts = canonicalFilterParts(query, ctx);
|
|
24
|
+
const typed = parts.expression ? compileQueryFilterToSql92(parts.expression, ctx) : {};
|
|
25
|
+
if (query.spatialFilter && typed.spatialFilter) {
|
|
26
|
+
throw new HonuaQueryPlanningError("unsupported-query", "A GeoServices query request carries one geometry; Query.spatialFilter and a spatial filter node cannot both be sent");
|
|
27
|
+
}
|
|
28
|
+
const spatialFilter = query.spatialFilter ?? typed.spatialFilter;
|
|
29
|
+
const whereParts = [
|
|
30
|
+
...(query.where ? [query.where.expression] : []),
|
|
31
|
+
...(typed.where !== undefined ? [typed.where] : []),
|
|
32
|
+
];
|
|
33
|
+
const where = whereParts.length === 0
|
|
34
|
+
? undefined
|
|
35
|
+
: whereParts.length === 1
|
|
36
|
+
? whereParts[0]
|
|
37
|
+
: whereParts.map((part) => `(${part})`).join(" AND ");
|
|
20
38
|
return {
|
|
21
39
|
compiler: "geoservices-rest-query-v1",
|
|
22
40
|
serviceId: source.serviceId,
|
|
23
41
|
layerId: source.layerId,
|
|
24
|
-
...(
|
|
42
|
+
...(where !== undefined ? { where } : {}),
|
|
43
|
+
...(parts.protocolTime ? { time: compileTemporalFilterToGeoServicesTime(parts.protocolTime, ctx) } : {}),
|
|
25
44
|
...(query.outFields && query.outFields.length > 0 ? { outFields: query.outFields } : {}),
|
|
26
45
|
...(query.returnGeometry !== undefined ? { returnGeometry: query.returnGeometry } : {}),
|
|
27
46
|
...(query.outSr !== undefined ? { outSr: query.outSr } : {}),
|
|
@@ -32,11 +51,11 @@ export function compileGeoServicesQuery(source, query) {
|
|
|
32
51
|
.join(","),
|
|
33
52
|
}
|
|
34
53
|
: {}),
|
|
35
|
-
...(
|
|
54
|
+
...(spatialFilter
|
|
36
55
|
? {
|
|
37
|
-
geometry:
|
|
38
|
-
geometryType:
|
|
39
|
-
...(
|
|
56
|
+
geometry: spatialFilter.geometry,
|
|
57
|
+
geometryType: spatialFilter.geometryType,
|
|
58
|
+
...(spatialFilter.spatialRel ? { spatialRel: spatialFilter.spatialRel } : {}),
|
|
40
59
|
}
|
|
41
60
|
: {}),
|
|
42
61
|
...(query.pagination?.offset !== undefined ? { resultOffset: query.pagination.offset } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc.d.ts","sourceRoot":"","sources":["../../../src/query-planner/grpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"grpc.d.ts","sourceRoot":"","sources":["../../../src/query-planner/grpc.ts"],"names":[],"mappings":"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"}
|
package/query-planner/grpc.js
CHANGED
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
*
|
|
13
13
|
* @module
|
|
14
14
|
*/
|
|
15
|
+
import { compileQueryFilterToSql92 } from "../contract/query-filter.js";
|
|
15
16
|
import { validateExecutableCrsBinding } from "../contract/schema.js";
|
|
17
|
+
import { canonicalFilterParts, refuseCanonicalFilter } from "./canonical-filter.js";
|
|
16
18
|
import { hashSemanticQuery } from "./semantic-canonical.js";
|
|
17
19
|
import { prepareSemanticCompilerQuery, runSemanticCompiler, sameExecutableCrs, semanticSchemaField, semanticUnsupported, } from "./semantic-compiler.js";
|
|
18
20
|
import { HonuaQueryPlanningError } from "./types.js";
|
|
@@ -51,13 +53,35 @@ export function compileGrpcQuery(source, query) {
|
|
|
51
53
|
// Aggregation returns statistic rows, never geometry — mirror the FeatureService
|
|
52
54
|
// and GeoServices contract by forcing returnGeometry=false for statistics.
|
|
53
55
|
const returnGeometry = aggregation ? false : query.returnGeometry;
|
|
56
|
+
// The gRPC FeatureService speaks the same SQL-92 `where` vocabulary as the
|
|
57
|
+
// REST FeatureServer, so the typed filter lowers through the same compiler.
|
|
58
|
+
// It has no `time` parameter, so a source-dimension temporal filter refuses.
|
|
59
|
+
const ctx = { protocol: "grpc", sourceId: source.id };
|
|
60
|
+
const parts = canonicalFilterParts(query, ctx);
|
|
61
|
+
if (parts.protocolTime) {
|
|
62
|
+
refuseCanonicalFilter("Query.temporalFilter without a field", "honua gRPC FeatureService", "QueryFeatures has no time parameter; name the temporal field so the predicate stays exact");
|
|
63
|
+
}
|
|
64
|
+
const typed = parts.expression ? compileQueryFilterToSql92(parts.expression, ctx) : {};
|
|
65
|
+
if (query.spatialFilter && typed.spatialFilter) {
|
|
66
|
+
throw new HonuaQueryPlanningError("unsupported-query", "A gRPC QueryFeatures request carries one geometry; Query.spatialFilter and a spatial filter node cannot both be sent");
|
|
67
|
+
}
|
|
68
|
+
const spatialFilter = query.spatialFilter ?? typed.spatialFilter;
|
|
69
|
+
const whereParts = [
|
|
70
|
+
...(query.where ? [query.where.expression] : []),
|
|
71
|
+
...(typed.where !== undefined ? [typed.where] : []),
|
|
72
|
+
];
|
|
73
|
+
const where = whereParts.length === 0
|
|
74
|
+
? undefined
|
|
75
|
+
: whereParts.length === 1
|
|
76
|
+
? whereParts[0]
|
|
77
|
+
: whereParts.map((part) => `(${part})`).join(" AND ");
|
|
54
78
|
return {
|
|
55
79
|
compiler: "honua-grpc-query-features-v1",
|
|
56
80
|
service: "honua.v1.FeatureService",
|
|
57
81
|
method: "QueryFeatures",
|
|
58
82
|
serviceId: source.serviceId,
|
|
59
83
|
layerId: source.layerId,
|
|
60
|
-
...(
|
|
84
|
+
...(where !== undefined ? { where } : {}),
|
|
61
85
|
...(query.outFields && query.outFields.length > 0 ? { outFields: query.outFields } : {}),
|
|
62
86
|
...(returnGeometry !== undefined ? { returnGeometry } : {}),
|
|
63
87
|
...(query.outSr !== undefined ? { outSr: query.outSr } : {}),
|
|
@@ -66,12 +90,12 @@ export function compileGrpcQuery(source, query) {
|
|
|
66
90
|
orderBy: query.orderBy.map((sort) => `${sort.field}${sort.direction === "desc" ? " DESC" : ""}`).join(","),
|
|
67
91
|
}
|
|
68
92
|
: {}),
|
|
69
|
-
...(
|
|
93
|
+
...(spatialFilter
|
|
70
94
|
? {
|
|
71
95
|
spatialFilter: {
|
|
72
|
-
geometry:
|
|
73
|
-
geometryType:
|
|
74
|
-
spatialRelationship: spatialRelationship(
|
|
96
|
+
geometry: spatialFilter.geometry,
|
|
97
|
+
geometryType: spatialFilter.geometryType,
|
|
98
|
+
spatialRelationship: spatialRelationship(spatialFilter.spatialRel),
|
|
75
99
|
},
|
|
76
100
|
}
|
|
77
101
|
: {}),
|
package/query-planner/index.d.ts
CHANGED
|
@@ -11,13 +11,22 @@
|
|
|
11
11
|
* @packageDocumentation
|
|
12
12
|
*/
|
|
13
13
|
export { canonicalStringify, sha256, toJsonValue } from "./canonical.js";
|
|
14
|
+
export { columnarBatchIdentityFromPlan } from "./columnar-plan.js";
|
|
15
|
+
export type { ColumnarBatchIdentityFromPlanOptions } from "./columnar-plan.js";
|
|
16
|
+
export { COLUMNAR_REPRESENTATION_ENCODINGS, COLUMNAR_REPRESENTATION_MIN_BYTES, COLUMNAR_REPRESENTATION_MIN_ROWS, createQueryPlanRepresentationDecision, isColumnarRepresentationEncoding, } from "./representation.js";
|
|
14
17
|
export { compileDuckDbQuery, compileDuckDbQueryV2, compileSemanticDuckDbQuery } from "./duckdb.js";
|
|
15
18
|
export { executeQueryPlan } from "./executor.js";
|
|
16
19
|
export { compileGeoServicesQuery, compileSemanticGeoServicesQuery } from "./geoservices.js";
|
|
17
20
|
export { compileGrpcQuery, compileSemanticGrpcQuery } from "./grpc.js";
|
|
18
21
|
export { compileOgcApiFeaturesQuery, compileSemanticOgcApiFeaturesQuery } from "./ogc-features.js";
|
|
19
|
-
export {
|
|
20
|
-
export {
|
|
22
|
+
export { odataProtocolModule } from "./odata-protocol-module.js";
|
|
23
|
+
export type { OdataProtocolExecutionQuery, OdataProtocolModule, OdataProtocolQueryBinding, } from "./odata-protocol-module.js";
|
|
24
|
+
export { compileOdataQuery } from "./odata-v1.js";
|
|
25
|
+
export { compileSemanticOdataQuery } from "./odata.js";
|
|
26
|
+
export { HonuaWfsProtocolError, wfsProtocolModule } from "./wfs-protocol-module.js";
|
|
27
|
+
export type { WfsProtocolErrorReason, WfsProtocolExecutionQuery, WfsProtocolModule, WfsProtocolQueryBinding, } from "./wfs-protocol-module.js";
|
|
28
|
+
export { compileWfsQuery } from "./wfs-v1.js";
|
|
29
|
+
export { compileSemanticWfsQuery } from "./wfs.js";
|
|
21
30
|
export { canonicalizeQuery, createGeoParquetQueryIr, createQueryIr, hashQueryIr, queryFromCanonical, } from "./ir.js";
|
|
22
31
|
export { explainQuery, hashQueryPlan, migrateGeoParquetQueryPlanV1, parseQueryPlan, queryPlanCacheKey, serializeQueryPlan, } from "./planner.js";
|
|
23
32
|
export { QUERY_RESOURCE_HANDLE_KIND, QUERY_RESOURCE_HANDLE_VERSION, createGeoParquetResourceHandle, createGeoParquetResourceRegistry, hashGeoParquetResourceHandle, parseGeoParquetResourceHandle, resolveGeoParquetResource, } from "./resource.js";
|
|
@@ -35,10 +44,16 @@ export type { SemanticGeoServicesCompileOptions, SemanticGeoServicesCompiledQuer
|
|
|
35
44
|
export type { SemanticGrpcCompileOptions, SemanticGrpcCompiledQueryV1, SemanticGrpcCoordinate, SemanticGrpcCoordinateSequence, SemanticGrpcGeometry, SemanticGrpcSourceIdentity, SemanticGrpcSpatialReference, SemanticGrpcSpatialRelationship, } from "./grpc.js";
|
|
36
45
|
export type { Cql2FilterLanguage, OgcApiFeaturesFilterConformanceEvidence, SemanticOgcApiFeaturesCompileOptions, SemanticOgcApiFeaturesCompiledQueryV1, SemanticOgcApiFeaturesSourceIdentity, } from "./ogc-features.js";
|
|
37
46
|
export type { SemanticWfsCompileOptions, SemanticWfsCompiledQueryV1, SemanticWfsSourceIdentity, Wfs20FilterCapabilitiesEvidence, } from "./wfs.js";
|
|
38
|
-
export { COLUMNAR_WORKER_CANCEL_KIND, COLUMNAR_WORKER_ERROR_KIND, COLUMNAR_WORKER_PROGRESS_KIND, COLUMNAR_WORKER_PROTOCOL_VERSION, COLUMNAR_WORKER_REQUEST_KIND, COLUMNAR_WORKER_RESULT_KIND, ColumnarBatchLease, GEOARROW_SPEC_VERSION, HONUA_GEOARROW_LAYOUT_VERSION, HonuaGeoArrowError, HonuaColumnarWorkerError, createColumnarBatch, createColumnarWorkerSession, createGeoArrowBatch, decodeGeoArrowBatch, fromApacheArrowRecordBatch, inspectGeoArrowBatch, inspectColumnarBatch, leaseColumnarBatch, loadApacheArrow, startColumnarWorkerHost, toApacheArrowRecordBatch, } from "../columnar/index.js";
|
|
47
|
+
export { COLUMNAR_WORKER_CANCEL_KIND, COLUMNAR_WORKER_ERROR_KIND, COLUMNAR_WORKER_PROGRESS_KIND, COLUMNAR_WORKER_PROTOCOL_VERSION, COLUMNAR_WORKER_REQUEST_KIND, COLUMNAR_WORKER_RESULT_KIND, ColumnarBatchLease, DEFAULT_GEOARROW_AGGREGATE_MAX_GROUPS, DEFAULT_GEOARROW_AGGREGATE_YIELD_ROWS, GEOARROW_AGGREGATE_ABORT_CHECK_ROWS, GEOARROW_AGGREGATE_MAX_GRID_CELL_INDEX, GEOARROW_SPEC_VERSION, HONUA_GEOARROW_AGGREGATE_LAYOUT_VERSION, HONUA_GEOARROW_LAYOUT_VERSION, HonuaGeoArrowError, HonuaColumnarWorkerError, createColumnarBatch, createColumnarWorkerSession, createGeoArrowAggregateOperation, createGeoArrowBatch, createGeoArrowReprojectOperation, readGeoArrowAggregateBatch, deserializeGeoArrowBatch, decodeGeoArrowBatch, fromApacheArrowRecordBatch, inspectGeoArrowBatch, inspectColumnarBatch, leaseColumnarBatch, loadApacheArrow, startColumnarWorkerHost, serializeGeoArrowBatch, toApacheArrowRecordBatch, } from "../columnar/index.js";
|
|
48
|
+
export { DEFAULT_COLUMNAR_RESULT_MAX_FEATURES, columnarBatchToResult, columnarBatchToResultPages, resultToColumnarBatch, } from "../columnar/index.js";
|
|
49
|
+
export type { ColumnarBatchToResultOptions, ColumnarBatchToResultPagesOptions, ColumnarGeoJsonGeometry, ColumnarGeoJsonGeometryType, ColumnarResult, ColumnarResultAttributeBinding, ColumnarResultDictionaryBinding, ColumnarResultFeatureIdBinding, ColumnarResultGeometryDescriptor, ColumnarResultProvenance, ColumnarResultTemporalBinding, ResultToColumnarBatchAttributeOptions, ResultToColumnarBatchGeometryOptions, ResultToColumnarBatchOptions, ResultToColumnarBatchResult, } from "../columnar/index.js";
|
|
50
|
+
export { COLUMNAR_PATCH_ABORT_CHECK_ROWS, COLUMNAR_PATCH_KIND, COLUMNAR_PATCH_VERSION, DEFAULT_COLUMNAR_PATCH_MAX_CAPACITY_UTILIZATION, DEFAULT_COLUMNAR_PATCH_MAX_OPERATIONS, DEFAULT_COLUMNAR_PATCH_MAX_TOMBSTONE_OVERLAY_BYTES, DEFAULT_COLUMNAR_PATCH_MAX_TOMBSTONE_RATIO, DEFAULT_COLUMNAR_PATCH_MAX_VERTEX_GROWTH_RATIO, HONUA_COLUMNAR_PATCH_LAYOUT_VERSION, HonuaColumnarPatchError, applyColumnarPatch, columnarPatchLiveMask, createColumnarPatch, createColumnarPatchOperation, createPatchableGeoArrowBatch, decodePatchedGeoArrowBatch, inspectColumnarPatchState, } from "../columnar/index.js";
|
|
51
|
+
export type { ApplyColumnarPatchOptions, ApplyColumnarPatchOutcomeV1, ColumnarPatchAppendV1, ColumnarPatchAppliedInPlaceV1, ColumnarPatchCapacityV1, ColumnarPatchCursorV1, ColumnarPatchDeleteV1, ColumnarPatchGeometry, ColumnarPatchMetricsV1, ColumnarPatchOperationV1, ColumnarPatchRebuildOptions, ColumnarPatchRebuildReason, ColumnarPatchRebuiltV1, ColumnarPatchRejectedV1, ColumnarPatchRejectionCode, ColumnarPatchReserveV1, ColumnarPatchStateV1, ColumnarPatchThresholds, ColumnarPatchUpdateV1, ColumnarPatchV1, CreateColumnarPatchInput, CreateColumnarPatchOperationOptions, CreatePatchableGeoArrowBatchOptions, CreatedPatchableGeoArrowBatch, DecodedPatchedGeoArrowBatch, PatchableGeoArrowBatchMetrics, } from "../columnar/index.js";
|
|
52
|
+
export { COLUMNAR_BATCH_CACHE_CONFORMANCE_CASES, DEFAULT_COLUMNAR_BATCH_CACHE_MAX_AGE_MS, DEFAULT_COLUMNAR_BATCH_CACHE_MAX_RECORDS, DEFAULT_COLUMNAR_BATCH_CACHE_QUOTA_BYTES, GEOARROW_ENVELOPE_MIGRATIONS, HONUA_COLUMNAR_BATCH_CACHE_CONFORMANCE_KIND, HONUA_COLUMNAR_BATCH_CACHE_CONFORMANCE_VERSION, HONUA_COLUMNAR_BATCH_CACHE_FORMAT, HONUA_GEOARROW_ENVELOPE_KIND, HONUA_GEOARROW_ENVELOPE_VERSION, MAX_COLUMNAR_BATCH_CACHE_MAX_AGE_MS, MAX_COLUMNAR_BATCH_CACHE_MAX_RECORDS, MAX_COLUMNAR_BATCH_CACHE_QUOTA_BYTES, columnarAuthorizationScopeDigest, columnarBatchCacheFixtureBatch, columnarBatchCacheFixtureIdentity, columnarBatchCacheKey, columnarBatchCacheLegacyEntry, columnarBatchCacheOrderingDigest, createColumnarBatchCache, createIndexedDbColumnarBatchCacheStorage, createMemoryColumnarBatchCacheStorage, planColumnarBatchCacheAdmission, planGeoArrowEnvelopeMigration, readableGeoArrowEnvelopeVersions, runColumnarBatchCacheConformance, } from "../columnar/index.js";
|
|
53
|
+
export type { ColumnarBatchCacheAdmissionV1, ColumnarBatchCacheConformanceCaseResultV1, ColumnarBatchCacheConformanceOptions, ColumnarBatchCacheConformanceReportV1, ColumnarBatchCacheDiagnosticV1, ColumnarBatchCacheEntryV1, ColumnarBatchCacheFreshnessV1, ColumnarBatchCacheHandle, ColumnarBatchCacheMissReason, ColumnarBatchCacheOptions, ColumnarBatchCacheReadOptions, ColumnarBatchCacheReadV1, ColumnarBatchCacheRecordV1, ColumnarBatchCacheRefusalReason, ColumnarBatchCacheStaleReason, ColumnarBatchCacheStorage, ColumnarBatchCacheWriteOptions, ColumnarBatchCacheWriteV1, ColumnarTelemetry, ColumnarTelemetryIdentityV1, ColumnarTelemetryKind, ColumnarTelemetryOptions, ColumnarTelemetrySpan, ColumnarTelemetrySpanResult, GeoArrowEnvelopeMigrationPlanV1, GeoArrowEnvelopeMigrationRefusal, GeoArrowEnvelopeMigrationV1, IndexedDbColumnarBatchCacheStorageOptions, } from "../columnar/index.js";
|
|
39
54
|
export { COLUMNAR_BATCH_KIND, COLUMNAR_BATCH_VERSION, COLUMNAR_TRANSFER_KIND, DEFAULT_COLUMNAR_BATCH_MAX_BACKING_BYTES, DEFAULT_COLUMNAR_BATCH_MAX_BUFFER_VIEWS, DEFAULT_COLUMNAR_BATCH_MAX_METADATA_ENTRIES, DEFAULT_COLUMNAR_BATCH_MAX_ROWS, DEFAULT_COLUMNAR_BATCH_MAX_SCHEMA_NODES, DEFAULT_COLUMNAR_BATCH_MAX_STRING_BYTES, HonuaColumnarTransferError, } from "../columnar/index.js";
|
|
40
|
-
export type { ApacheArrowAdapterMetrics, ApacheArrowAdapterOptions, ApacheArrowDataLike, ApacheArrowFieldLike, ApacheArrowModuleImporter, ApacheArrowModuleLike, ApacheArrowRecordBatchLike, ApacheArrowRecordBatchResult, ApacheArrowTypeLike, ApacheArrowVectorLike, ColumnarBatchLeaseState, ColumnarBatchIdentityV1, ColumnarBatchLimits, ColumnarBatchMetrics, ColumnarBatchV1, ColumnarBufferRole, ColumnarBufferV1, ColumnarFieldV1, ColumnarFreshnessV1, ColumnarOrderingKeyV1, ColumnarOrderingV1, ColumnarSchemaV1, ColumnarTransferErrorCode, ColumnarTransferMessageV1, ColumnarTransferOptions, ColumnarTransferReceipt, ColumnarTransferTarget, ColumnarTypeV1, CreateColumnarBatchInput, ColumnarWorkerCancelV1, ColumnarWorkerErrorCode, ColumnarWorkerErrorV1, ColumnarWorkerExecutionProgress, ColumnarWorkerExecutionResult, ColumnarWorkerFactory, ColumnarWorkerFaultEvent, ColumnarWorkerHost, ColumnarWorkerMessageEvent, ColumnarWorkerOperation, ColumnarWorkerOperationContext, ColumnarWorkerProgressV1, ColumnarWorkerRequestV1, ColumnarWorkerResultV1, ColumnarWorkerSession, ColumnarWorkerSessionState, ColumnarWorkerTransport, CreateColumnarWorkerSessionOptions, ExecuteColumnarWorkerOperationOptions, CreateGeoArrowBatchInput, CreatedGeoArrowBatch, DecodedGeoArrowBatch, DecodedGeoArrowRow, GeoArrowBatchInspection, GeoArrowConversionLimits, GeoArrowConversionMetrics, GeoArrowCoordinateLayout, GeoArrowCrs, GeoArrowDictionaryBuffers, GeoArrowDictionaryColumnInput, GeoArrowDimensions, GeoArrowEdges, GeoArrowFeatureIdColumnInput, GeoArrowGeometryBuffers, GeoArrowGeometryColumnInput, GeoArrowGeometryKind, GeoArrowLineString, GeoArrowLineStringColumnInput, GeoArrowPoint, GeoArrowPointColumnInput, GeoArrowPolygon, GeoArrowPolygonColumnInput, GeoArrowPosition, GeoArrowTemporalBuffers, GeoArrowTemporalColumnInput, GeoArrowTimestampUnit, FromApacheArrowRecordBatchOptions, GeoArrowBatchFromApacheResult, HonuaGeoArrowErrorCode, LoadApacheArrowOptions, StartColumnarWorkerHostOptions, } from "../columnar/index.js";
|
|
55
|
+
export type { ApacheArrowAdapterMetrics, ApacheArrowAdapterOptions, ApacheArrowDataLike, ApacheArrowFieldLike, ApacheArrowModuleImporter, ApacheArrowModuleLike, ApacheArrowRecordBatchLike, ApacheArrowRecordBatchResult, ApacheArrowTypeLike, ApacheArrowVectorLike, ColumnarBatchLeaseState, ColumnarBatchIdentityV1, ColumnarBatchLimits, ColumnarBatchMetrics, ColumnarBatchV1, ColumnarBufferRole, ColumnarBufferV1, ColumnarFieldV1, ColumnarFreshnessV1, ColumnarOrderingKeyV1, ColumnarOrderingV1, ColumnarSchemaV1, ColumnarTransferErrorCode, ColumnarTransferMessageV1, ColumnarTransferOptions, ColumnarTransferReceipt, ColumnarTransferTarget, ColumnarTypeV1, CreateColumnarBatchInput, ColumnarWorkerCancelV1, ColumnarWorkerErrorCode, ColumnarWorkerErrorV1, ColumnarWorkerExecutionProgress, ColumnarWorkerExecutionResult, ColumnarWorkerFactory, ColumnarWorkerFaultEvent, ColumnarWorkerHost, ColumnarWorkerMessageEvent, ColumnarWorkerOperation, ColumnarWorkerOperationContext, ColumnarWorkerProgressV1, ColumnarWorkerRequestV1, ColumnarWorkerResultV1, ColumnarWorkerSession, ColumnarWorkerSessionState, ColumnarWorkerStreamOrdering, ColumnarWorkerTransport, CreateColumnarWorkerSessionOptions, ExecuteColumnarWorkerOperationOptions, CreateGeoArrowAggregateOperationOptions, CreateGeoArrowBatchInput, CreateGeoArrowReprojectOperationOptions, CreatedGeoArrowBatch, GeoArrowAggregateDictionaryGroupSpec, GeoArrowAggregateGridGroupSpec, GeoArrowAggregateGroupSpec, GeoArrowAggregateMetricKind, GeoArrowAggregateMetricSpec, GeoArrowAggregateNullKeyPolicy, GeoArrowAggregateNumericColumn, GeoArrowAggregateResult, GeoArrowAggregateRow, GeoArrowAggregateSource, GeoArrowAggregateTemporalGroupSpec, GeoArrowAggregateTruncationUnit, GeoArrowBatchSerializationResult, DecodedGeoArrowBatch, DecodedGeoArrowRow, GeoArrowBatchInspection, GeoArrowConversionLimits, GeoArrowConversionMetrics, GeoArrowSerializationMetrics, GeoArrowSerializationOptions, GeoArrowCoordinateLayout, GeoArrowCrs, GeoArrowDictionaryBuffers, GeoArrowDictionaryColumnInput, GeoArrowDimensions, GeoArrowEdges, GeoArrowFeatureIdColumnInput, GeoArrowGeometryBuffers, GeoArrowGeometryColumnInput, GeoArrowGeometryKind, GeoArrowLineString, GeoArrowLineStringColumnInput, GeoArrowPoint, GeoArrowPointColumnInput, GeoArrowPolygon, GeoArrowPolygonColumnInput, GeoArrowPosition, GeoArrowTemporalBuffers, GeoArrowTemporalColumnInput, GeoArrowTimestampUnit, FromApacheArrowRecordBatchOptions, GeoArrowBatchFromApacheResult, HonuaGeoArrowErrorCode, LoadApacheArrowOptions, StartColumnarWorkerHostOptions, } from "../columnar/index.js";
|
|
41
56
|
export { HonuaQueryPlanExecutionError, HonuaQueryPlanningError, MAX_LOCAL_MATERIALIZATION_ROWS, QUERY_IR_KIND, QUERY_IR_VERSION, QUERY_PLAN_KIND, QUERY_PLAN_DIAGNOSTICS_VERSION, QUERY_PLANNER_VERSION, QUERY_PLAN_VERSION, QUERY_IR_V2_VERSION, QUERY_PLAN_V2_VERSION, } from "./types.js";
|
|
42
|
-
export type { CanonicalQuery, CanonicalSpatialFilter, DuckDbCompiledQueryV1, DuckDbCompiledQueryV2, DuckDbGeometryEncoding, ExecuteQueryPlanOptions, ExplainGeoParquetQueryOptions, ExplainQueryOptions, GeoParquetEffectiveSchemaFieldV1, GeoParquetRemoteQueryPlanStepV2, GeoServicesCompiledQueryV1, GrpcCompiledQueryV1, GrpcSpatialRelationship, GrpcStatisticType, JsonPrimitive, JsonValue, LocalAggregatePlanStep, OgcApiFeaturesCompiledQueryV1, OdataCompiledQueryV1, QueryExecutionPlan, QueryExecutionPlanV1, QueryExecutionPlanV2, QueryFallbackPolicy, QueryIrGeoparquetIdentity, QueryIrGeoparquetResourceIdentity, QueryIrSourceIdentity, QueryIrSourceIdentityV2, QueryIrV1, QueryIrV2, QueryPlanExecution, QueryPlanExecutionErrorCode, QueryPlanExecutor, QueryPlanningErrorCode, QueryPlanningEstimates, QueryPlanBoundConfidence, QueryPlanBoundSource, QueryPlanBoundsV1, QueryPlanCacheAction, QueryPlanCacheDecisionV1, QueryPlanCacheFreshness, QueryPlanCacheOptions, QueryPlanCachePolicy, QueryPlanDiscoveryContext, QueryPlanDiscoveryState, QueryPlanExecutionFailureReason, QueryPlanExecutionMode, QueryPlanFidelity, QueryPlanFidelityLoss, QueryPlanProvenanceV1, QueryPlanQuantityBound, QueryPlanStepProvenanceV1, QueryPlanValidatorInput, QueryPlanValidatorKind, QueryPlanValidityV1, QueryPlanWarning, QueryPlanWarningCode, RemoteCompiledQueryV1, QueryPlanStep, QueryPlanStepV2, RemoteQueryPlanStep, WfsCompiledQueryV1, } from "./types.js";
|
|
57
|
+
export type { CanonicalQuery, CanonicalSpatialFilter, DuckDbCompiledQueryV1, DuckDbCompiledQueryV2, DuckDbGeometryEncoding, ExecuteQueryPlanOptions, ExplainGeoParquetQueryOptions, ExplainQueryOptions, GeoParquetEffectiveSchemaFieldV1, GeoParquetRemoteQueryPlanStepV2, GeoServicesCompiledQueryV1, GrpcCompiledQueryV1, GrpcSpatialRelationship, GrpcStatisticType, JsonPrimitive, JsonValue, LocalAggregatePlanStep, OgcApiFeaturesCompiledQueryV1, OdataCompiledQueryV1, OdataProtocolCompiledQueryV1, QueryExecutionPlan, QueryExecutionPlanV1, QueryExecutionPlanV2, QueryFallbackPolicy, QueryIrGeoparquetIdentity, QueryIrGeoparquetResourceIdentity, QueryIrSourceIdentity, QueryIrSourceIdentityV2, QueryIrV1, QueryIrV2, QueryPlanExecution, QueryPlanExecutionErrorCode, QueryPlanExecutor, QueryPlanningErrorCode, QueryPlanningEstimates, QueryPlanBoundConfidence, QueryPlanBoundSource, QueryPlanBoundsV1, QueryPlanCacheAction, QueryPlanCacheDecisionV1, QueryPlanCacheFreshness, QueryPlanCacheOptions, QueryPlanCachePolicy, QueryPlanDiscoveryContext, QueryPlanDiscoveryState, QueryPlanExecutionFailureReason, QueryPlanExecutionMode, QueryPlanFidelity, QueryPlanFidelityLoss, QueryPlanProvenanceV1, QueryPlanQuantityBound, QueryPlanRepresentation, QueryPlanRepresentationDecisionV1, QueryPlanRepresentationInputsV1, QueryPlanRepresentationReason, QueryPlanRepresentationRequest, QueryPlanStepProvenanceV1, QueryPlanValidatorInput, QueryPlanValidatorKind, QueryPlanValidityV1, QueryPlanWarning, QueryPlanWarningCode, RemoteCompiledQueryV1, QueryPlanStep, QueryPlanStepV2, RemoteQueryPlanStep, WfsCompiledQueryV1, WfsProtocolCompiledQueryV1, } from "./types.js";
|
|
43
58
|
export type { CreateGeoParquetResourceHandleInput, GeoParquetResolverResourceReferenceV1, GeoParquetResourceHandleV1, GeoParquetResourceRegistry, GeoParquetResourceRegistryOptions, GeoParquetResourceResolutionContext, GeoParquetResourceResolver, RegisterGeoParquetResourceInput, ResolvedGeoParquetResource, } from "./resource.js";
|
|
44
59
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/query-planner/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/query-planner/index.ts"],"names":[],"mappings":"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"}
|