@_linked/core 2.20.2 → 2.21.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/CHANGELOG.md +48 -0
- package/lib/esm/interfaces/IDataset.d.ts +23 -23
- package/lib/esm/queries/CountBuilder.js +3 -0
- package/lib/esm/queries/CountBuilder.js.map +1 -1
- package/lib/esm/queries/queryDispatch.d.ts +36 -26
- package/lib/esm/queries/queryDispatch.js +40 -22
- package/lib/esm/queries/queryDispatch.js.map +1 -1
- package/lib/esm/sparql/SparqlDataset.d.ts +27 -10
- package/lib/esm/sparql/SparqlDataset.js +11 -17
- package/lib/esm/sparql/SparqlDataset.js.map +1 -1
- package/lib/esm/sparql/resultMapping.js +2 -1
- package/lib/esm/sparql/resultMapping.js.map +1 -1
- package/lib/esm/utils/LinkedStorage.d.ts +16 -1
- package/lib/esm/utils/LinkedStorage.js +14 -0
- package/lib/esm/utils/LinkedStorage.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,53 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.21.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#242](https://github.com/linked-fw/core/pull/242) [`6a57d08`](https://github.com/linked-fw/core/commit/6a57d08659dfb0a37af77ff8024d3c7a9bb23497) Thanks [@flyon](https://github.com/flyon)! - Carry a root `COUNT` over the `selectQuery` channel, and remove `IDataset.countQuery`.
|
|
8
|
+
|
|
9
|
+
A count was modelled on an ask and given a method of its own. That was wrong, and it
|
|
10
|
+
made the feature unusable outside a store held directly. An ask really is a distinct
|
|
11
|
+
SPARQL query form (`ASK WHERE { … }`) and earns its own method; a count is
|
|
12
|
+
`SELECT (COUNT(DISTINCT ?s) AS ?count) WHERE { … }` — a select with an aggregate
|
|
13
|
+
projection, lowered by `countToAlgebra` calling `selectToAlgebra` and swapping the
|
|
14
|
+
projection, sent over the same transport, answered with the same result-set response.
|
|
15
|
+
|
|
16
|
+
Because it had its own method, every router had to grow an arm for it — and
|
|
17
|
+
`LinkedStorage` never did: `setDefaultDataset` registered select/ask/create/update/
|
|
18
|
+
delete, so `.count()` rejected with "does not implement `IDataset.countQuery`" on every
|
|
19
|
+
path that went through the router, which is every path in an application.
|
|
20
|
+
`@_linked/server`'s backend API store could not implement the handler either, having
|
|
21
|
+
no `LinkedStorage.countQuery` to call. Only the tests that held a `SparqlDataset`
|
|
22
|
+
directly passed.
|
|
23
|
+
|
|
24
|
+
- `SparqlDataset.selectQuery` now branches on the lowered IR (`kind === 'count'`,
|
|
25
|
+
as `updateQuery` and `deleteQuery` already branch on theirs) and emits the aggregate.
|
|
26
|
+
It is overloaded: a `SelectQuery` answers `SelectResult`, a `CountQuery` answers
|
|
27
|
+
`number`. The select path is untouched, and `countToAlgebra` and the lowering are
|
|
28
|
+
unchanged.
|
|
29
|
+
- `IDataset.selectQuery` and `QueryDispatch.selectQuery` accept
|
|
30
|
+
`SelectQuery | CountQuery` and may answer `SelectResult | number`. Existing
|
|
31
|
+
implementations stay valid with no edit (a narrower parameter and a narrower return
|
|
32
|
+
type both remain assignable), and every router that already forwards a select now
|
|
33
|
+
forwards a count for free — `LinkedStorage` needed no new method at all.
|
|
34
|
+
- **`IDataset.countQuery` and `SparqlDataset.countQuery` are removed.** A caller who
|
|
35
|
+
held a SPARQL store and called `store.countQuery(query)` calls
|
|
36
|
+
`store.selectQuery(query)` with the same query instead. The optional interface
|
|
37
|
+
member could not be usefully implemented by anyone: a store that implemented it was
|
|
38
|
+
never reached, because no router forwarded to it.
|
|
39
|
+
- The count contract is unchanged and still enforced in one place, now at the select
|
|
40
|
+
dispatch in `resolveCount`: the answer must be a finite, non-negative integer, never
|
|
41
|
+
coerced, and a failure always rejects. A store that ignores the count and answers
|
|
42
|
+
with rows is refused by that same check rather than having its array measured — `0`
|
|
43
|
+
is a plausible count, and one that came from a broken query renders an empty table
|
|
44
|
+
indistinguishable from real data.
|
|
45
|
+
|
|
46
|
+
Minor rather than major: the only removed surface that ever worked is
|
|
47
|
+
`SparqlDataset.countQuery`, reachable only by a caller holding a SPARQL store
|
|
48
|
+
directly, released one version ago, and replaced by a call with the same argument.
|
|
49
|
+
Nothing that went through `LinkedStorage` can break, because nothing there worked.
|
|
50
|
+
|
|
3
51
|
## 2.20.2
|
|
4
52
|
|
|
5
53
|
### Patch Changes
|
|
@@ -21,7 +21,29 @@ export interface IDataset {
|
|
|
21
21
|
* Prepares the store to be used.
|
|
22
22
|
*/
|
|
23
23
|
init?(): Promise<any>;
|
|
24
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Answer a select query — **and a count query**, which arrives here too.
|
|
26
|
+
*
|
|
27
|
+
* A count is not a query form of its own the way an ask is. An ask is
|
|
28
|
+
* `ASK WHERE { … }`; a count is `SELECT (COUNT(DISTINCT ?s) AS ?count) WHERE { … }`
|
|
29
|
+
* — a select with an aggregate projection, over the same transport, answered with
|
|
30
|
+
* the same result-set response. Giving it a method of its own meant every router
|
|
31
|
+
* had to grow an arm for it, and any that did not silently could not count.
|
|
32
|
+
*
|
|
33
|
+
* So a store that wants to answer counts branches on the lowered IR:
|
|
34
|
+
* `lower(query).kind === 'count'` (see {@link CountQuery} and `SparqlDataset`).
|
|
35
|
+
* A store that does not is no worse off than before — it will fail loudly at the
|
|
36
|
+
* dispatch (`resolveCount`), which refuses anything but a non-negative integer.
|
|
37
|
+
* There is deliberately **no path in this package that rewrites a count as a row
|
|
38
|
+
* query** and measures the array: that would hide an unbounded read behind a call
|
|
39
|
+
* that looks cheap.
|
|
40
|
+
*
|
|
41
|
+
* A count must be answered with a real, non-negative integer, and must reject on
|
|
42
|
+
* failure: reporting an unreachable store as `0` renders an empty table that is
|
|
43
|
+
* indistinguishable from real data, which is the failure mode this API was built
|
|
44
|
+
* to remove.
|
|
45
|
+
*/
|
|
46
|
+
selectQuery(query: SelectQuery | CountQuery): Promise<SelectResult | number>;
|
|
25
47
|
/**
|
|
26
48
|
* Answer an ask query — a boolean, not a result set.
|
|
27
49
|
*
|
|
@@ -43,28 +65,6 @@ export interface IDataset {
|
|
|
43
65
|
* API was built to remove.
|
|
44
66
|
*/
|
|
45
67
|
askQuery(query: AskQuery): Promise<boolean>;
|
|
46
|
-
/**
|
|
47
|
-
* Count the matching instances — a number, not a result set.
|
|
48
|
-
*
|
|
49
|
-
* **Optional**, unlike {@link askQuery}. Adding a required method would break
|
|
50
|
-
* every existing implementer at compile time; `resolveCount` in `queryDispatch`
|
|
51
|
-
* turns a missing implementation into a precise runtime error instead. Every
|
|
52
|
-
* store extending {@link SparqlDataset} gets it with no edit.
|
|
53
|
-
*
|
|
54
|
-
* A {@link CountQuery} carries a pattern and nothing else: no projection, no
|
|
55
|
-
* sorting, and in particular no pagination — a count of a windowed query is
|
|
56
|
-
* meaningless, so the type cannot hold a window. A SPARQL-backed store emits
|
|
57
|
-
* `SELECT (COUNT(DISTINCT ?s) AS ?count) WHERE { … }`; another backend answers it
|
|
58
|
-
* however it can. This package contains **no path that rewrites a count as a
|
|
59
|
-
* select** and measures the array: that would hide an unbounded read behind a
|
|
60
|
-
* call that looks cheap.
|
|
61
|
-
*
|
|
62
|
-
* Must resolve to a real, non-negative integer — a non-number is rejected, not
|
|
63
|
-
* coerced. Must reject on failure: reporting an unreachable store as `0` renders
|
|
64
|
-
* an empty table that is indistinguishable from real data, which is the failure
|
|
65
|
-
* mode this API was built to remove.
|
|
66
|
-
*/
|
|
67
|
-
countQuery?(query: CountQuery): Promise<number>;
|
|
68
68
|
/**
|
|
69
69
|
* Receives update AND upsert mutations — `lower(query)` yields `kind: 'update'`,
|
|
70
70
|
* `'update_where'` or `'upsert'`. An implementation that does not handle `'upsert'`
|
|
@@ -138,6 +138,9 @@ export class CountBuilder {
|
|
|
138
138
|
// `async` ensures a missing global dispatch rejects rather than throwing
|
|
139
139
|
// synchronously past the caller's `.catch()`.
|
|
140
140
|
const dispatch = target !== null && target !== void 0 ? target : getQueryDispatch();
|
|
141
|
+
// `resolveCount` dispatches over the SELECT channel — a count is a select with
|
|
142
|
+
// an aggregate projection, not a query form of its own — and checks the answer
|
|
143
|
+
// is a real non-negative integer before it reaches the caller.
|
|
141
144
|
return resolveCount(dispatch, this);
|
|
142
145
|
});
|
|
143
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CountBuilder.js","sourceRoot":"","sources":["../../../src/queries/CountBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CountBuilder.js","sourceRoot":"","sources":["../../../src/queries/CountBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,18 +14,15 @@ import type { CountQuery } from './CountQuery.js';
|
|
|
14
14
|
* result types through its own generics; the dispatch is a runtime bridge.
|
|
15
15
|
*/
|
|
16
16
|
export interface QueryDispatch {
|
|
17
|
-
selectQuery<R = any>(query: SelectQuery): Promise<R>;
|
|
18
|
-
/** Answer an ask query — a boolean, not a result set. */
|
|
19
|
-
askQuery(query: AskQuery): Promise<boolean>;
|
|
20
17
|
/**
|
|
21
|
-
* Answer a
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* break every one of them at compile time. {@link resolveCount} turns a missing
|
|
26
|
-
* implementation into a precise runtime error instead.
|
|
18
|
+
* Answer a select query — **and a count**, which travels this channel too: a
|
|
19
|
+
* count is a select with an aggregate projection, not a query form of its own, so
|
|
20
|
+
* it needs no method here and no router has to grow an arm for it. It arrives as a
|
|
21
|
+
* {@link CountQuery} and resolves to a `number`; see {@link resolveCount}.
|
|
27
22
|
*/
|
|
28
|
-
|
|
23
|
+
selectQuery<R = any>(query: SelectQuery | CountQuery): Promise<R>;
|
|
24
|
+
/** Answer an ask query — a boolean, not a result set. */
|
|
25
|
+
askQuery(query: AskQuery): Promise<boolean>;
|
|
29
26
|
createQuery<R = any>(query: CreateQuery): Promise<R>;
|
|
30
27
|
updateQuery<R = any>(query: UpdateQuery): Promise<R>;
|
|
31
28
|
deleteQuery(query: DeleteQuery): Promise<DeleteResponse>;
|
|
@@ -51,29 +48,42 @@ type ExistenceTarget = {
|
|
|
51
48
|
* propagate for the same reason — "could not ask" is never `false`.
|
|
52
49
|
*/
|
|
53
50
|
export declare function resolveExistence(target: ExistenceTarget, query: AskQuery): Promise<boolean>;
|
|
54
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* A target that can answer a count query — which is to say, any target that can
|
|
53
|
+
* answer a select. There is no count-specific member to look for.
|
|
54
|
+
*/
|
|
55
55
|
type CountTarget = {
|
|
56
|
-
|
|
56
|
+
selectQuery?(query: any): Promise<any>;
|
|
57
57
|
};
|
|
58
58
|
/**
|
|
59
59
|
* Answer a count query against `target` — the single entry point for every
|
|
60
60
|
* number-answered query in the library, as {@link resolveExistence} is for boolean
|
|
61
|
-
* ones. `CountBuilder.exec()`
|
|
62
|
-
*
|
|
63
|
-
* store.
|
|
61
|
+
* ones. `CountBuilder.exec()` comes here rather than calling the store directly, so
|
|
62
|
+
* the contract below is enforced once for every store.
|
|
64
63
|
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
64
|
+
* **A count is dispatched over the SELECT channel.** It is not a separate query
|
|
65
|
+
* form: `SELECT (COUNT(DISTINCT ?s) AS ?count) WHERE { … }` is a select with an
|
|
66
|
+
* aggregate projection, run over the same transport and answered with the same
|
|
67
|
+
* result-set response — which is exactly why an ask, which really is a different
|
|
68
|
+
* form (`ASK WHERE { … }`), has its own `IDataset.askQuery` and a count does not.
|
|
69
|
+
* Riding `selectQuery` is what lets a count reach a store through every router that
|
|
70
|
+
* already forwards a select, rather than needing a new arm in each of them (the
|
|
71
|
+
* arm `LinkedStorage` never grew, which is how a count came to fail on every
|
|
72
|
+
* application path while passing against a store held directly).
|
|
73
|
+
*
|
|
74
|
+
* There is still deliberately **no translation to a row query anywhere in this
|
|
75
|
+
* package.** A store receives the count query itself and decides how to answer it;
|
|
76
|
+
* one extending `SparqlDataset` branches on the lowered IR and emits the aggregate.
|
|
77
|
+
* Nothing here fetches every row and measures the array — that would hide an
|
|
78
|
+
* unbounded read behind a call that looks cheap.
|
|
71
79
|
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
80
|
+
* The answer must be a **finite, non-negative integer**: anything else rejects
|
|
81
|
+
* rather than being coerced. That validation lives here, at the dispatch, because
|
|
82
|
+
* this is where the count result is read — and it is load-bearing. Errors propagate
|
|
83
|
+
* for the same reason a failed ask is never `false`, and more sharply, because `0`
|
|
84
|
+
* is a *plausible* count: a count that reported an unreachable store as `0` would
|
|
85
|
+
* render an empty table that looks exactly like real data. A store that ignored the
|
|
86
|
+
* count and answered with rows is caught by the same check.
|
|
77
87
|
*/
|
|
78
88
|
export declare function resolveCount(target: CountTarget, query: CountQuery): Promise<number>;
|
|
79
89
|
export declare function setQueryDispatch(d: QueryDispatch): void;
|
|
@@ -42,35 +42,53 @@ export function resolveExistence(target, query) {
|
|
|
42
42
|
/**
|
|
43
43
|
* Answer a count query against `target` — the single entry point for every
|
|
44
44
|
* number-answered query in the library, as {@link resolveExistence} is for boolean
|
|
45
|
-
* ones. `CountBuilder.exec()`
|
|
46
|
-
*
|
|
47
|
-
* store.
|
|
45
|
+
* ones. `CountBuilder.exec()` comes here rather than calling the store directly, so
|
|
46
|
+
* the contract below is enforced once for every store.
|
|
48
47
|
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
48
|
+
* **A count is dispatched over the SELECT channel.** It is not a separate query
|
|
49
|
+
* form: `SELECT (COUNT(DISTINCT ?s) AS ?count) WHERE { … }` is a select with an
|
|
50
|
+
* aggregate projection, run over the same transport and answered with the same
|
|
51
|
+
* result-set response — which is exactly why an ask, which really is a different
|
|
52
|
+
* form (`ASK WHERE { … }`), has its own `IDataset.askQuery` and a count does not.
|
|
53
|
+
* Riding `selectQuery` is what lets a count reach a store through every router that
|
|
54
|
+
* already forwards a select, rather than needing a new arm in each of them (the
|
|
55
|
+
* arm `LinkedStorage` never grew, which is how a count came to fail on every
|
|
56
|
+
* application path while passing against a store held directly).
|
|
57
|
+
*
|
|
58
|
+
* There is still deliberately **no translation to a row query anywhere in this
|
|
59
|
+
* package.** A store receives the count query itself and decides how to answer it;
|
|
60
|
+
* one extending `SparqlDataset` branches on the lowered IR and emits the aggregate.
|
|
61
|
+
* Nothing here fetches every row and measures the array — that would hide an
|
|
62
|
+
* unbounded read behind a call that looks cheap.
|
|
55
63
|
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
64
|
+
* The answer must be a **finite, non-negative integer**: anything else rejects
|
|
65
|
+
* rather than being coerced. That validation lives here, at the dispatch, because
|
|
66
|
+
* this is where the count result is read — and it is load-bearing. Errors propagate
|
|
67
|
+
* for the same reason a failed ask is never `false`, and more sharply, because `0`
|
|
68
|
+
* is a *plausible* count: a count that reported an unreachable store as `0` would
|
|
69
|
+
* render an empty table that looks exactly like real data. A store that ignored the
|
|
70
|
+
* count and answered with rows is caught by the same check.
|
|
61
71
|
*/
|
|
62
72
|
export function resolveCount(target, query) {
|
|
63
73
|
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
-
if (typeof (target === null || target === void 0 ? void 0 : target.
|
|
65
|
-
throw new Error('This dataset does not implement IDataset.
|
|
66
|
-
'
|
|
67
|
-
'SELECT (COUNT(DISTINCT ?s) AS ?count)
|
|
68
|
-
'
|
|
74
|
+
if (typeof (target === null || target === void 0 ? void 0 : target.selectQuery) !== 'function') {
|
|
75
|
+
throw new Error('This dataset does not implement IDataset.selectQuery(query), which is how a ' +
|
|
76
|
+
'count query is dispatched: a count is a select with an aggregate projection ' +
|
|
77
|
+
'(a SPARQL store emits SELECT (COUNT(DISTINCT ?s) AS ?count)), not a query ' +
|
|
78
|
+
'form of its own.');
|
|
69
79
|
}
|
|
70
|
-
const answer = yield target.
|
|
80
|
+
const answer = yield target.selectQuery(query);
|
|
71
81
|
if (typeof answer !== 'number' || !Number.isInteger(answer) || answer < 0) {
|
|
72
|
-
throw new Error(`
|
|
73
|
-
|
|
82
|
+
throw new Error(`A count query must be answered with a non-negative integer; got ${answer === null
|
|
83
|
+
? 'null'
|
|
84
|
+
: typeof answer === 'number'
|
|
85
|
+
? String(answer)
|
|
86
|
+
: Array.isArray(answer)
|
|
87
|
+
? 'an array of rows'
|
|
88
|
+
: typeof answer}. It is not coerced — a NaN or a missing value that fell through as 0 would ` +
|
|
89
|
+
'silently read as "no matches". A store that answered with rows ran the ' +
|
|
90
|
+
'pattern as a row query instead of counting it: it must branch on the lowered ' +
|
|
91
|
+
"IR's `kind === 'count'` and emit an aggregate.");
|
|
74
92
|
}
|
|
75
93
|
return answer;
|
|
76
94
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryDispatch.js","sourceRoot":"","sources":["../../../src/queries/queryDispatch.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"queryDispatch.js","sourceRoot":"","sources":["../../../src/queries/queryDispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,34 @@ export declare abstract class SparqlDataset implements IDataset {
|
|
|
52
52
|
* No return value — the update is fire-and-forget at the SPARQL level.
|
|
53
53
|
*/
|
|
54
54
|
protected abstract executeSparqlUpdate(sparql: string): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Answer a select query — **and a count, which is a select.**
|
|
57
|
+
*
|
|
58
|
+
* A count is not a distinct query form the way an ask is. An ask really is
|
|
59
|
+
* `ASK WHERE { … }` and needs its own method; a count is
|
|
60
|
+
* `SELECT (COUNT(DISTINCT ?a0) AS ?count) WHERE { … }` — the same query form, the
|
|
61
|
+
* same transport (`executeSparqlSelect`), the same result-set response, differing
|
|
62
|
+
* only in its projection. `countToAlgebra` says so itself: it builds its plan by
|
|
63
|
+
* calling `selectToAlgebra` and swapping the projection, and yields
|
|
64
|
+
* `{type: 'select'}`.
|
|
65
|
+
*
|
|
66
|
+
* So a count rides this channel rather than a method of its own. That is not
|
|
67
|
+
* tidiness: it is what lets a count reach a store through every router that
|
|
68
|
+
* already forwards a select — `LinkedStorage.selectQuery`, a backend API store —
|
|
69
|
+
* with no per-kind plumbing to add in each of them, and no optional `IDataset`
|
|
70
|
+
* member that a third-party store silently lacks.
|
|
71
|
+
*
|
|
72
|
+
* The branch is on the LOWERED IR, as `updateQuery` and `deleteQuery` branch on
|
|
73
|
+
* theirs: `lower()` is the one place that knows a count from a select, and a
|
|
74
|
+
* rehydrated envelope (`fromJSON`) arrives here as a builder like any other.
|
|
75
|
+
*
|
|
76
|
+
* A count carries only a pattern, so there is nothing to normalise away on that
|
|
77
|
+
* path: no projection, no ordering, and in particular no `LIMIT`/`OFFSET`, which
|
|
78
|
+
* the builder dropped before the query ever reached the IR. Errors reject; a count
|
|
79
|
+
* failure is never reported as `0`.
|
|
80
|
+
*/
|
|
55
81
|
selectQuery(query: SelectQuery): Promise<SelectResult>;
|
|
82
|
+
selectQuery(query: CountQuery): Promise<number>;
|
|
56
83
|
/**
|
|
57
84
|
* Answer an ask query — emitted as `ASK WHERE { … }`.
|
|
58
85
|
*
|
|
@@ -61,16 +88,6 @@ export declare abstract class SparqlDataset implements IDataset {
|
|
|
61
88
|
* of the node under any type or none. Errors reject; never reported as `false`.
|
|
62
89
|
*/
|
|
63
90
|
askQuery(query: AskQuery): Promise<boolean>;
|
|
64
|
-
/**
|
|
65
|
-
* Count the matching instances — emitted as
|
|
66
|
-
* `SELECT (COUNT(DISTINCT ?a0) AS ?count) WHERE { … }`.
|
|
67
|
-
*
|
|
68
|
-
* A {@link CountQuery} carries only a pattern, so there is nothing to normalise
|
|
69
|
-
* away here: no projection, no ordering, and in particular no `LIMIT`/`OFFSET`,
|
|
70
|
-
* which the builder dropped before the query ever reached the IR. Errors reject;
|
|
71
|
-
* they are never reported as `0`.
|
|
72
|
-
*/
|
|
73
|
-
countQuery(query: CountQuery): Promise<number>;
|
|
74
91
|
createQuery(query: CreateQuery): Promise<CreateResult>;
|
|
75
92
|
updateQuery(query: UpdateQuery): Promise<UpdateResult>;
|
|
76
93
|
deleteQuery(query: DeleteQuery): Promise<DeleteResponse>;
|
|
@@ -43,7 +43,18 @@ export class SparqlDataset {
|
|
|
43
43
|
}
|
|
44
44
|
selectQuery(query) {
|
|
45
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
// Cast once for the call rather than lowering in each branch: `lower` is
|
|
47
|
+
// overloaded per query kind and cannot resolve a union, and lowering twice
|
|
48
|
+
// would be the thing this method most needs not to do.
|
|
46
49
|
const ir = lower(query);
|
|
50
|
+
if (ir.kind === 'count') {
|
|
51
|
+
const sparql = countToSparql(ir, this.options);
|
|
52
|
+
const json = yield this.executeSparqlSelect(sparql);
|
|
53
|
+
// `mapSparqlCountResult` is strict in the same way the guard below is: it
|
|
54
|
+
// refuses an ASK response, an empty result set and a non-integer binding
|
|
55
|
+
// rather than answering `0`.
|
|
56
|
+
return mapSparqlCountResult(json, ir);
|
|
57
|
+
}
|
|
47
58
|
const sparql = selectToSparql(ir, this.options);
|
|
48
59
|
const json = yield this.executeSparqlSelect(sparql);
|
|
49
60
|
if (!isSparqlSelectResults(json)) {
|
|
@@ -68,23 +79,6 @@ export class SparqlDataset {
|
|
|
68
79
|
return mapSparqlAskResult(json);
|
|
69
80
|
});
|
|
70
81
|
}
|
|
71
|
-
/**
|
|
72
|
-
* Count the matching instances — emitted as
|
|
73
|
-
* `SELECT (COUNT(DISTINCT ?a0) AS ?count) WHERE { … }`.
|
|
74
|
-
*
|
|
75
|
-
* A {@link CountQuery} carries only a pattern, so there is nothing to normalise
|
|
76
|
-
* away here: no projection, no ordering, and in particular no `LIMIT`/`OFFSET`,
|
|
77
|
-
* which the builder dropped before the query ever reached the IR. Errors reject;
|
|
78
|
-
* they are never reported as `0`.
|
|
79
|
-
*/
|
|
80
|
-
countQuery(query) {
|
|
81
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
-
const ir = lower(query);
|
|
83
|
-
const sparql = countToSparql(ir, this.options);
|
|
84
|
-
const json = yield this.executeSparqlSelect(sparql);
|
|
85
|
-
return mapSparqlCountResult(json, ir);
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
82
|
createQuery(query) {
|
|
89
83
|
return __awaiter(this, void 0, void 0, function* () {
|
|
90
84
|
const ir = lower(query);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SparqlDataset.js","sourceRoot":"","sources":["../../../src/sparql/SparqlDataset.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"SparqlDataset.js","sourceRoot":"","sources":["../../../src/sparql/SparqlDataset.ts"],"names":[],"mappings":"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"}
|
|
@@ -612,7 +612,8 @@ export function mapSparqlCountResult(json, query) {
|
|
|
612
612
|
'is not a non-negative integer. It is not coerced — a count that silently reads ' +
|
|
613
613
|
'as 0 hides a broken query behind an empty table. (These checks are repeated ' +
|
|
614
614
|
'here rather than left to `resolveCount`, because a caller may hold a store and ' +
|
|
615
|
-
'
|
|
615
|
+
'pass a count query to `selectQuery` on it directly, which does not go through ' +
|
|
616
|
+
'that helper.)');
|
|
616
617
|
}
|
|
617
618
|
return value;
|
|
618
619
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resultMapping.js","sourceRoot":"","sources":["../../../src/sparql/resultMapping.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resultMapping.js","sourceRoot":"","sources":["../../../src/sparql/resultMapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { CoreSet } from '../collections/CoreSet.js';
|
|
|
2
2
|
import type { IDataset } from '../interfaces/IDataset.js';
|
|
3
3
|
import type { SelectQuery } from '../queries/SelectQuery.js';
|
|
4
4
|
import type { AskQuery } from '../queries/AskQuery.js';
|
|
5
|
+
import type { CountQuery } from '../queries/CountQuery.js';
|
|
5
6
|
import type { CreateQuery } from '../queries/CreateQuery.js';
|
|
6
7
|
import type { UpdateQuery } from '../queries/UpdateQuery.js';
|
|
7
8
|
import type { DeleteQuery, DeleteResponse } from '../queries/DeleteQuery.js';
|
|
@@ -34,7 +35,21 @@ export declare abstract class LinkedStorage {
|
|
|
34
35
|
/** Resolve the IDataset for a given shape class. Walks the prototype chain. */
|
|
35
36
|
static getDatasetForShapeClass(shapeClass?: Function | null): IDataset | undefined;
|
|
36
37
|
private static resolveDatasetForQueryShape;
|
|
37
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Route a select query — **and a count**, which is a select.
|
|
40
|
+
*
|
|
41
|
+
* A count is not a separate query form (an ask is: `ASK WHERE { … }`); it is
|
|
42
|
+
* `SELECT (COUNT(DISTINCT ?s) AS ?count) WHERE { … }`, routed by the same shape to
|
|
43
|
+
* the same dataset and answered over the same channel. So it needs no arm of its
|
|
44
|
+
* own here — which is the point: when it had one, this router was missing it, and
|
|
45
|
+
* `.count()` failed on every path that went through the router while passing
|
|
46
|
+
* against a store held directly.
|
|
47
|
+
*
|
|
48
|
+
* The count contract — a real, non-negative integer, a failure never flattened
|
|
49
|
+
* into `0` — belongs to `resolveCount`, which the builder goes through. None of it
|
|
50
|
+
* is re-implemented here, exactly as none of `resolveExistence` is.
|
|
51
|
+
*/
|
|
52
|
+
static selectQuery<ResultType>(query: SelectQuery | CountQuery): Promise<ResultType>;
|
|
38
53
|
/**
|
|
39
54
|
* Route an ask query.
|
|
40
55
|
*
|
|
@@ -109,6 +109,20 @@ export class LinkedStorage {
|
|
|
109
109
|
}
|
|
110
110
|
return this.defaultDataset;
|
|
111
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Route a select query — **and a count**, which is a select.
|
|
114
|
+
*
|
|
115
|
+
* A count is not a separate query form (an ask is: `ASK WHERE { … }`); it is
|
|
116
|
+
* `SELECT (COUNT(DISTINCT ?s) AS ?count) WHERE { … }`, routed by the same shape to
|
|
117
|
+
* the same dataset and answered over the same channel. So it needs no arm of its
|
|
118
|
+
* own here — which is the point: when it had one, this router was missing it, and
|
|
119
|
+
* `.count()` failed on every path that went through the router while passing
|
|
120
|
+
* against a store held directly.
|
|
121
|
+
*
|
|
122
|
+
* The count contract — a real, non-negative integer, a failure never flattened
|
|
123
|
+
* into `0` — belongs to `resolveCount`, which the builder goes through. None of it
|
|
124
|
+
* is re-implemented here, exactly as none of `resolveExistence` is.
|
|
125
|
+
*/
|
|
112
126
|
static selectQuery(query) {
|
|
113
127
|
if (!(query === null || query === void 0 ? void 0 : query.shape)) {
|
|
114
128
|
return Promise.reject(new Error('Invalid select query passed to LinkedStorage.selectQuery(): missing shape.'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkedStorage.js","sourceRoot":"","sources":["../../../src/utils/LinkedStorage.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"LinkedStorage.js","sourceRoot":"","sources":["../../../src/utils/LinkedStorage.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,2BAA2B,CAAC;AAQlD,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAG9C,yEAAyE;AACzE,8EAA8E;AAC9E,+EAA+E;AAC/E,uEAAuE;AACvE,0DAA0D;AAC1D,MAAM,mBAAmB,GACvB,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,EAAU,CAAC;AAC/D,mBAAmB,CAAC,4BAA4B;IAC9C,CAAC,MAAA,mBAAmB,CAAC,4BAA4B,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAE9D;;;;;;;;;GASG;AACH,MAAM,OAAgB,aAAa;IAKjC,yEAAyE;IACzE,MAAM,CAAC,sBAAsB;;QAC3B,OAAO,MAAA,mBAAmB,CAAC,4BAA4B,mCAAI,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,aAAa;QAClB,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,kEAAkE;IAClE,MAAM,CAAC,iBAAiB;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,gFAAgF;IAChF,MAAM,CAAC,iBAAiB,CAAC,OAAiB;;QACxC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,IAAI,MAAA,IAAI,CAAC,cAAc,0CAAE,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QACD,gBAAgB,CAAC;YACf,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACvC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACvC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACvC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;IAED,wEAAwE;IACxE,MAAM,CAAC,mBAAmB,CAAC,OAAiB,EAAE,GAAG,YAAwB;QACvE,YAAY,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yEAAyE;IACzE,MAAM,CAAC,WAAW;QAChB,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAY,CAAC;QACzC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAChE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,gDAAgD;IAChD,MAAM,CAAC,oBAAoB;QACzB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,+EAA+E;IAC/E,MAAM,CAAC,uBAAuB,CAAC,UAA4B;QACzD,IAAI,OAAO,GAAoB,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,IAAI,CAAC;QAClD,OAAO,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,MAAM,KAAK,QAAQ,CAAC,SAAS,IAAI,MAAM,KAAK,IAAI;gBAAE,MAAM;YAC5D,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEO,MAAM,CAAC,2BAA2B,CACxC,KAAgD;QAEhD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QACD,6EAA6E;QAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,aAAa,CAAE,KAAsB,CAAC,EAAE,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,WAAW,CAChB,KAA+B;QAE/B,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAA,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CACP,4EAA4E,CAC7E,CACF,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAA,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAClF,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAwB,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAO,QAAQ,CAAC,KAAe;;YACnC,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAA,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;YACJ,CAAC;YACD,OAAO,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;KAAA;IAED;;;;;;;;OAQG;IACK,MAAM,CAAO,aAAa,CAAC,KAAe;;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;YACJ,CAAC;YACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,MAAM,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;YAC1D,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAED,MAAM,CAAC,WAAW,CAAe,KAAkB;QACjD,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAA,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CACP,4EAA4E,CAC7E,CACF,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAA,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAChE,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAA0B,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,WAAW,CAAe,KAAkB;QACjD,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAA,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CACP,4EAA4E,CAC7E,CACF,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAA,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAChE,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAA0B,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,KAAkB;QACnC,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAA,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CACP,4EAA4E,CAC7E,CACF,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAA,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAChE,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;;AAlOc,4BAAc,GAC3B,IAAI,GAAG,EAAE,CAAC"}
|