@_linked/core 2.18.0 → 2.19.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 +23 -0
- package/README.md +24 -3
- package/lib/esm/index.d.ts +3 -0
- package/lib/esm/index.js +1 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/interfaces/IDataset.d.ts +23 -0
- package/lib/esm/queries/CountBuilder.d.ts +69 -0
- package/lib/esm/queries/CountBuilder.js +162 -0
- package/lib/esm/queries/CountBuilder.js.map +1 -0
- package/lib/esm/queries/CountQuery.d.ts +80 -0
- package/lib/esm/queries/CountQuery.js +7 -0
- package/lib/esm/queries/CountQuery.js.map +1 -0
- package/lib/esm/queries/IntermediateRepresentation.d.ts +31 -1
- package/lib/esm/queries/QueryBuilder.d.ts +80 -0
- package/lib/esm/queries/QueryBuilder.js +98 -13
- package/lib/esm/queries/QueryBuilder.js.map +1 -1
- package/lib/esm/queries/fromJSON.d.ts +5 -3
- package/lib/esm/queries/fromJSON.js +4 -1
- package/lib/esm/queries/fromJSON.js.map +1 -1
- package/lib/esm/queries/lower.d.ts +17 -2
- package/lib/esm/queries/lower.js +61 -0
- package/lib/esm/queries/lower.js.map +1 -1
- package/lib/esm/queries/queryDispatch.d.ts +35 -0
- package/lib/esm/queries/queryDispatch.js +36 -0
- package/lib/esm/queries/queryDispatch.js.map +1 -1
- package/lib/esm/shapes/Shape.d.ts +32 -0
- package/lib/esm/shapes/Shape.js +47 -0
- package/lib/esm/shapes/Shape.js.map +1 -1
- package/lib/esm/sparql/SparqlDataset.d.ts +11 -0
- package/lib/esm/sparql/SparqlDataset.js +19 -2
- package/lib/esm/sparql/SparqlDataset.js.map +1 -1
- package/lib/esm/sparql/index.d.ts +3 -3
- package/lib/esm/sparql/index.js +3 -3
- package/lib/esm/sparql/index.js.map +1 -1
- package/lib/esm/sparql/irToAlgebra.d.ts +32 -1
- package/lib/esm/sparql/irToAlgebra.js +74 -0
- package/lib/esm/sparql/irToAlgebra.js.map +1 -1
- package/lib/esm/sparql/resultMapping.d.ts +14 -1
- package/lib/esm/sparql/resultMapping.js +40 -0
- package/lib/esm/sparql/resultMapping.js.map +1 -1
- package/lib/esm/utils/ShapeClass.d.ts +1 -1
- package/lib/esm/utils/ShapeClass.js +7 -3
- package/lib/esm/utils/ShapeClass.js.map +1 -1
- package/package.json +1 -1
|
@@ -13,6 +13,7 @@ import { processWhereClause, evaluateSortCallback, } from './SelectQuery.js';
|
|
|
13
13
|
import { WIRE_VERSION, assertWireVersion } from './wireVersion.js';
|
|
14
14
|
import { getQueryDispatch } from './queryDispatch.js';
|
|
15
15
|
import { AskBuilder } from './AskBuilder.js';
|
|
16
|
+
import { CountBuilder } from './CountBuilder.js';
|
|
16
17
|
import { resolveUriOrThrow } from '../utils/NodeReference.js';
|
|
17
18
|
import { FieldSet } from './FieldSet.js';
|
|
18
19
|
import { PendingQueryContext, UnresolvedContextError } from './QueryContext.js';
|
|
@@ -226,15 +227,90 @@ export class SelectBuilder {
|
|
|
226
227
|
});
|
|
227
228
|
}
|
|
228
229
|
/**
|
|
229
|
-
*
|
|
230
|
+
* **How many** rows match this query — the total of the match set, as a real
|
|
231
|
+
* `number`.
|
|
230
232
|
*
|
|
231
|
-
*
|
|
232
|
-
*
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
233
|
+
* ```ts
|
|
234
|
+
* await Person.select().where(p => p.name.equals('Semmy')).count(); // number
|
|
235
|
+
* await SelectBuilder.from(shapeIri).where(…).count(); // from an IRI alone
|
|
236
|
+
* ```
|
|
237
|
+
*
|
|
238
|
+
* ### The query is normalised to its cheapest correct form first
|
|
239
|
+
*
|
|
240
|
+
* **Dropped** — the projection, preloads, sorting *and pagination*
|
|
241
|
+
* (`limit`/`offset`). **Kept** — filters, `minus` entries and the subject: those
|
|
242
|
+
* decide membership of the match set. Against a SPARQL store that goes out as:
|
|
243
|
+
*
|
|
244
|
+
* ```sparql
|
|
245
|
+
* SELECT (COUNT(DISTINCT ?a0) AS ?count)
|
|
246
|
+
* WHERE { ?a0 rdf:type <…> . ?a0 <…name> ?a0_name . FILTER(?a0_name = "Semmy") }
|
|
247
|
+
* ```
|
|
248
|
+
*
|
|
249
|
+
* ### `limit`/`offset` are dropped, not rejected
|
|
250
|
+
*
|
|
251
|
+
* A count of a windowed query is meaningless — `OFFSET` skips rows of a *solution
|
|
252
|
+
* sequence*, and the number a count answers is a property of the whole match set,
|
|
253
|
+
* not of a page of it. So `.limit(20).offset(40).count()` costs, and answers,
|
|
254
|
+
* exactly the same as a bare `.count()`.
|
|
255
|
+
*
|
|
256
|
+
* Dropping rather than throwing is deliberate: the paging caller holds **one**
|
|
257
|
+
* builder and wants the page *and* its total from the same filter, so rejecting
|
|
258
|
+
* the combination would force it to rebuild the builder by hand for no
|
|
259
|
+
* correctness gain. There is exactly one sensible reading, and it is this one.
|
|
260
|
+
* `.exists()` already made the same call, so the DSL has one rule — *a
|
|
261
|
+
* scalar-answering query drops the solution-sequence modifiers* — not two.
|
|
262
|
+
*
|
|
263
|
+
* Nor is the drop merely a convention: a {@link CountBuilder} has nowhere to hold
|
|
264
|
+
* a window, so it cannot be forgotten or half-applied downstream.
|
|
265
|
+
*
|
|
266
|
+
* `DISTINCT` is likewise not optional. A filter on a multi-valued property yields
|
|
267
|
+
* several rows per subject, so the count is of distinct subjects — "how many
|
|
268
|
+
* instances match", which is the question asked.
|
|
269
|
+
*
|
|
270
|
+
* ### Errors are not swallowed
|
|
271
|
+
*
|
|
272
|
+
* A store, transport or lowering failure **rejects**; it is never reported as `0`.
|
|
273
|
+
* `0` is a plausible count: it renders an empty table and looks like data. Do not
|
|
274
|
+
* wrap this in `.catch(() => 0)`.
|
|
275
|
+
*
|
|
276
|
+
* The one case that resolves `0` without querying is a query with no subject to
|
|
277
|
+
* count — `.for(null)`, `.for(undefined)`, or an unresolved `PendingQueryContext`
|
|
278
|
+
* *as the subject*.
|
|
279
|
+
*
|
|
280
|
+
* @param target Optional explicit dataset, as for {@link exec}.
|
|
236
281
|
*/
|
|
237
|
-
|
|
282
|
+
count(target) {
|
|
283
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
284
|
+
return this.toCount().exec(target);
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Reduce this select to the count query that answers "how many match?".
|
|
289
|
+
*
|
|
290
|
+
* Public, unlike the ask equivalent, because a caller may want to **forward**
|
|
291
|
+
* rather than execute: `builder.toCount().toJSON()` is the `{op: 'count'}` wire
|
|
292
|
+
* envelope a router or RPC boundary sends on, and `fromJSON` turns it back into a
|
|
293
|
+
* `CountBuilder` on the other side.
|
|
294
|
+
*
|
|
295
|
+
* Only the pattern survives — shape, subject(s), filters, `minus`. The projection,
|
|
296
|
+
* preloads, sorting and pagination are not so much "dropped" as unrepresentable:
|
|
297
|
+
* {@link CountBuilder} has nowhere to put them. That is the point of it being a
|
|
298
|
+
* separate builder rather than a mode of this one.
|
|
299
|
+
*/
|
|
300
|
+
toCount() {
|
|
301
|
+
return CountBuilder.of(Object.assign({ shapeClass: this._shape }, this._patternSpec()));
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* The pattern-bearing part of this select: shape-membership, subject(s), filters
|
|
305
|
+
* and `minus` — everything that decides which nodes are in the match set, and
|
|
306
|
+
* nothing that shapes or windows the rows describing them.
|
|
307
|
+
*
|
|
308
|
+
* Shared by {@link _toAsk} and {@link toCount} rather than written twice. That is
|
|
309
|
+
* not only about duplication: if the two normalisations drifted, `.exists()` and
|
|
310
|
+
* `.count()` would disagree about what the match set *is* — a count of 0 next to
|
|
311
|
+
* an `exists` of `true`, from the same builder.
|
|
312
|
+
*/
|
|
313
|
+
_patternSpec() {
|
|
238
314
|
let where;
|
|
239
315
|
if (this._whereFn) {
|
|
240
316
|
where = processWhereClause(this._whereFn, this._shape);
|
|
@@ -251,23 +327,32 @@ export class SelectBuilder {
|
|
|
251
327
|
}
|
|
252
328
|
// A PendingQueryContext must survive as itself. It has an `id` *getter*, so
|
|
253
329
|
// narrowing it to `{id}` here would silently resolve it against THIS process's
|
|
254
|
-
// context map — and the
|
|
330
|
+
// context map — and the query would then travel as a concrete IRI where the
|
|
255
331
|
// equivalent select travels as `{"@ctx": name}` for the receiver to resolve.
|
|
256
332
|
const subject = this._subject instanceof PendingQueryContext
|
|
257
333
|
? this._subject
|
|
258
334
|
: this._subject && typeof this._subject === 'object' && 'id' in this._subject
|
|
259
335
|
? { id: this._subject.id }
|
|
260
336
|
: undefined;
|
|
261
|
-
return
|
|
262
|
-
shapeClass: this._shape,
|
|
337
|
+
return {
|
|
263
338
|
subject,
|
|
264
339
|
subjects: this._subjects,
|
|
265
340
|
where,
|
|
266
341
|
minusEntries,
|
|
267
|
-
// `.for(null)`. An unresolved pending context is handled by AskBuilder.exec,
|
|
268
|
-
// which sees the live context and answers `false` without querying.
|
|
269
342
|
nullSubject: this._nullSubject,
|
|
270
|
-
}
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Reduce this select to the ask query that answers the same existence question.
|
|
347
|
+
*
|
|
348
|
+
* Only the pattern survives — shape, subject(s), filters, `minus`. The
|
|
349
|
+
* projection, preloads, sorting and pagination are not "dropped" so much as
|
|
350
|
+
* unrepresentable: {@link AskBuilder} has nowhere to put them. That is the point
|
|
351
|
+
* of it being a separate builder rather than a mode of this one — the
|
|
352
|
+
* normalisation cannot be forgotten or half-applied.
|
|
353
|
+
*/
|
|
354
|
+
_toAsk() {
|
|
355
|
+
return AskBuilder.of(Object.assign({ shapeClass: this._shape }, this._patternSpec()));
|
|
271
356
|
}
|
|
272
357
|
/**
|
|
273
358
|
* Preload a component's query fields at the given property path.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../src/queries/QueryBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../src/queries/QueryBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Kind-detecting `fromJSON` — rehydrate any query DSL-JSON back into its builder.
|
|
3
3
|
*
|
|
4
|
-
* Ask and mutation envelopes carry an `op` discriminator; select envelopes
|
|
4
|
+
* Ask, count and mutation envelopes carry an `op` discriminator; select envelopes
|
|
5
5
|
* (`QueryBuilderJSON`) do not. This is the inbound boundary helper: a receiving
|
|
6
6
|
* process turns wire JSON into a live query with `fromJSON(json).exec()` (the
|
|
7
7
|
* existing generic dispatch), no per-op routing needed.
|
|
@@ -11,8 +11,10 @@ import { CreateBuilder } from './CreateBuilder.js';
|
|
|
11
11
|
import { UpdateBuilder } from './UpdateBuilder.js';
|
|
12
12
|
import { DeleteBuilder } from './DeleteBuilder.js';
|
|
13
13
|
import { AskBuilder } from './AskBuilder.js';
|
|
14
|
+
import { CountBuilder } from './CountBuilder.js';
|
|
14
15
|
import type { AskQueryJSON } from './AskQuery.js';
|
|
16
|
+
import type { CountQueryJSON } from './CountQuery.js';
|
|
15
17
|
import type { MutationJSON } from './MutationSerialization.js';
|
|
16
18
|
/** Any query in its wire (DSL-JSON) form. */
|
|
17
|
-
export type QueryJSON = QueryBuilderJSON | AskQueryJSON | MutationJSON;
|
|
18
|
-
export declare function fromJSON(json: QueryJSON): SelectBuilder | AskBuilder | CreateBuilder | UpdateBuilder | DeleteBuilder;
|
|
19
|
+
export type QueryJSON = QueryBuilderJSON | AskQueryJSON | CountQueryJSON | MutationJSON;
|
|
20
|
+
export declare function fromJSON(json: QueryJSON): SelectBuilder | AskBuilder | CountBuilder | CreateBuilder | UpdateBuilder | DeleteBuilder;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
/**
|
|
7
7
|
* Kind-detecting `fromJSON` — rehydrate any query DSL-JSON back into its builder.
|
|
8
8
|
*
|
|
9
|
-
* Ask and mutation envelopes carry an `op` discriminator; select envelopes
|
|
9
|
+
* Ask, count and mutation envelopes carry an `op` discriminator; select envelopes
|
|
10
10
|
* (`QueryBuilderJSON`) do not. This is the inbound boundary helper: a receiving
|
|
11
11
|
* process turns wire JSON into a live query with `fromJSON(json).exec()` (the
|
|
12
12
|
* existing generic dispatch), no per-op routing needed.
|
|
@@ -16,6 +16,7 @@ import { CreateBuilder } from './CreateBuilder.js';
|
|
|
16
16
|
import { UpdateBuilder } from './UpdateBuilder.js';
|
|
17
17
|
import { DeleteBuilder } from './DeleteBuilder.js';
|
|
18
18
|
import { AskBuilder } from './AskBuilder.js';
|
|
19
|
+
import { CountBuilder } from './CountBuilder.js';
|
|
19
20
|
import { assertWireVersion } from './wireVersion.js';
|
|
20
21
|
export function fromJSON(json) {
|
|
21
22
|
assertWireVersion(json === null || json === void 0 ? void 0 : json.v);
|
|
@@ -23,6 +24,8 @@ export function fromJSON(json) {
|
|
|
23
24
|
switch (json.op) {
|
|
24
25
|
case 'ask':
|
|
25
26
|
return AskBuilder.fromJSON(json);
|
|
27
|
+
case 'count':
|
|
28
|
+
return CountBuilder.fromJSON(json);
|
|
26
29
|
case 'create':
|
|
27
30
|
return CreateBuilder.fromJSON(json);
|
|
28
31
|
case 'update':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fromJSON.js","sourceRoot":"","sources":["../../../src/queries/fromJSON.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;GAOG;AACH,OAAO,EAAC,aAAa,EAAwB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"fromJSON.js","sourceRoot":"","sources":["../../../src/queries/fromJSON.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;GAOG;AACH,OAAO,EAAC,aAAa,EAAwB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAI/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AASnD,MAAM,UAAU,QAAQ,CACtB,IAAe;IAQf,iBAAiB,CAAE,IAAsB,aAAtB,IAAI,uBAAJ,IAAI,CAAoB,CAAC,CAAC,CAAC;IAC9C,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACrD,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;YAChB,KAAK,KAAK;gBACR,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAoB,CAAC,CAAC;YACnD,KAAK,OAAO;gBACV,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAsB,CAAC,CAAC;YACvD,KAAK,QAAQ;gBACX,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ;gBACX,wEAAwE;gBACxE,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,QAAQ;gBACX,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC;gBACE,oEAAoE;gBACpE,qEAAqE;gBACrE,uCAAuC;gBACvC,MAAM,IAAI,KAAK,CACb,qBAAqB,MAAM,CAAE,IAAsB,CAAC,EAAE,CAAC,yBAAyB,CACjF,CAAC;QACN,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAwB,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { IRAskQuery, IRSelectQuery } from './IntermediateRepresentation.js';
|
|
1
|
+
import type { IRAskQuery, IRCountQuery, IRSelectQuery } from './IntermediateRepresentation.js';
|
|
2
2
|
import type { RawAskInput } from './AskQuery.js';
|
|
3
|
+
import type { RawCountInput } from './CountQuery.js';
|
|
3
4
|
import type { IRCreateQuery } from './CreateQuery.js';
|
|
4
5
|
import type { IRUpdateQuery } from './UpdateQuery.js';
|
|
5
6
|
import type { IRDeleteQuery } from './DeleteQuery.js';
|
|
@@ -14,6 +15,11 @@ export type LowerableAsk = {
|
|
|
14
15
|
readonly __queryKind: 'ask';
|
|
15
16
|
toRawInput(): RawAskInput;
|
|
16
17
|
};
|
|
18
|
+
/** A count query that can be lowered (the count builder). */
|
|
19
|
+
export type LowerableCount = {
|
|
20
|
+
readonly __queryKind: 'count';
|
|
21
|
+
toRawInput(): RawCountInput;
|
|
22
|
+
};
|
|
17
23
|
/** A mutation query that can be lowered (the mutation builders). */
|
|
18
24
|
export type LowerableCreate = {
|
|
19
25
|
readonly __queryKind: 'create';
|
|
@@ -27,9 +33,18 @@ export type LowerableDelete = {
|
|
|
27
33
|
readonly __queryKind: 'delete';
|
|
28
34
|
_lowerSpec(): DeleteLowerSpec;
|
|
29
35
|
};
|
|
30
|
-
export type LowerableQuery = LowerableSelect | LowerableAsk | LowerableCreate | LowerableUpdate | LowerableDelete;
|
|
36
|
+
export type LowerableQuery = LowerableSelect | LowerableAsk | LowerableCount | LowerableCreate | LowerableUpdate | LowerableDelete;
|
|
37
|
+
/**
|
|
38
|
+
* The variable a root count binds its `COUNT` to.
|
|
39
|
+
*
|
|
40
|
+
* Chosen not to collide with the `a<N>` alias scheme the pipeline generates for
|
|
41
|
+
* the root and every traversal, so it never needs the collision rename
|
|
42
|
+
* `selectToAlgebra` applies to aggregate aliases.
|
|
43
|
+
*/
|
|
44
|
+
export declare const COUNT_ALIAS = "count";
|
|
31
45
|
export declare function lower(query: LowerableSelect): IRSelectQuery;
|
|
32
46
|
export declare function lower(query: LowerableAsk): IRAskQuery;
|
|
47
|
+
export declare function lower(query: LowerableCount): IRCountQuery;
|
|
33
48
|
export declare function lower(query: LowerableCreate): IRCreateQuery;
|
|
34
49
|
export declare function lower(query: LowerableUpdate): IRUpdateQuery;
|
|
35
50
|
export declare function lower(query: LowerableDelete): IRDeleteQuery;
|
package/lib/esm/queries/lower.js
CHANGED
|
@@ -143,12 +143,73 @@ function lowerAsk(input) {
|
|
|
143
143
|
subjectIds: selected.subjectIds,
|
|
144
144
|
};
|
|
145
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* The variable a root count binds its `COUNT` to.
|
|
148
|
+
*
|
|
149
|
+
* Chosen not to collide with the `a<N>` alias scheme the pipeline generates for
|
|
150
|
+
* the root and every traversal, so it never needs the collision rename
|
|
151
|
+
* `selectToAlgebra` applies to aggregate aliases.
|
|
152
|
+
*/
|
|
153
|
+
export const COUNT_ALIAS = 'count';
|
|
154
|
+
/**
|
|
155
|
+
* Lower a count to its canonical IR.
|
|
156
|
+
*
|
|
157
|
+
* Reuses the select pipeline to build the pattern — one implementation of shape
|
|
158
|
+
* scans, traversals, filters and minus — and then keeps only the pattern-bearing
|
|
159
|
+
* part, exactly as {@link lowerAsk} does. The `entries: []` is why nothing is
|
|
160
|
+
* projected: a count has no projection to build.
|
|
161
|
+
*/
|
|
162
|
+
function lowerCount(input) {
|
|
163
|
+
if (input.nullSubject) {
|
|
164
|
+
// "How many nodes with no id match?" is answered `0` without querying —
|
|
165
|
+
// `CountBuilder.exec` does that before dispatching. Reaching lowering means a
|
|
166
|
+
// store took the builder off the normal path; a subject-less pattern would
|
|
167
|
+
// count every instance of the shape and report it as the count of one node.
|
|
168
|
+
throw new Error('Cannot lower a count query with no subject (`.for(null)`). It resolves to ' +
|
|
169
|
+
'`0` without querying — execute it through `exec()` rather than lowering it.');
|
|
170
|
+
}
|
|
171
|
+
if (!input.shape) {
|
|
172
|
+
throw new Error('Cannot lower a count query with no shape. A shapeless count would count ' +
|
|
173
|
+
'every node in the store, under any type or none.');
|
|
174
|
+
}
|
|
175
|
+
// A `{"@ctx": name}` subject arrives here as a live PendingQueryContext, and
|
|
176
|
+
// `buildSelectQuery` narrows a subject with `'id' in subject` — so an UNRESOLVED
|
|
177
|
+
// one would quietly yield `subjectId: undefined` and the count would be of every
|
|
178
|
+
// instance of the shape, reported as the count of one node. `CountBuilder.exec`
|
|
179
|
+
// answers `0` for that case before dispatching, but this path is reached without
|
|
180
|
+
// it: a receiver that rehydrates an envelope with `fromJSON` and hands the builder
|
|
181
|
+
// straight to a store. Resolve it here, which throws `UnresolvedContextError` when
|
|
182
|
+
// the context is unset — the same "not ready" a where-clause reference raises, and
|
|
183
|
+
// never a plausible number.
|
|
184
|
+
const subject = input.subject instanceof PendingQueryContext
|
|
185
|
+
? { id: resolveContextId(input.subject.contextName, true) }
|
|
186
|
+
: input.subject;
|
|
187
|
+
const selected = buildSelectQuery({
|
|
188
|
+
entries: [],
|
|
189
|
+
shape: input.shape,
|
|
190
|
+
subject,
|
|
191
|
+
subjects: input.subjects,
|
|
192
|
+
where: input.where,
|
|
193
|
+
minusEntries: input.minusEntries,
|
|
194
|
+
});
|
|
195
|
+
return {
|
|
196
|
+
kind: 'count',
|
|
197
|
+
root: selected.root,
|
|
198
|
+
patterns: selected.patterns,
|
|
199
|
+
where: selected.where,
|
|
200
|
+
subjectId: selected.subjectId,
|
|
201
|
+
subjectIds: selected.subjectIds,
|
|
202
|
+
alias: COUNT_ALIAS,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
146
205
|
export function lower(query) {
|
|
147
206
|
switch (query.__queryKind) {
|
|
148
207
|
case 'select':
|
|
149
208
|
return buildSelectQuery(query.toRawInput());
|
|
150
209
|
case 'ask':
|
|
151
210
|
return lowerAsk(query.toRawInput());
|
|
211
|
+
case 'count':
|
|
212
|
+
return lowerCount(query.toRawInput());
|
|
152
213
|
case 'create':
|
|
153
214
|
return lowerCreate(query._lowerSpec());
|
|
154
215
|
case 'update':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lower.js","sourceRoot":"","sources":["../../../src/queries/lower.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;GAWG;AACH,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAC,sBAAsB,EAA4B,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,8BAA8B,EAC9B,mCAAmC,EACnC,8BAA8B,EAC9B,iCAAiC,EACjC,mCAAmC,GACpC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"lower.js","sourceRoot":"","sources":["../../../src/queries/lower.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import type { UpdateQuery } from './UpdateQuery.js';
|
|
|
4
4
|
import type { DeleteQuery, DeleteResponse } from './DeleteQuery.js';
|
|
5
5
|
import type { IDataset } from '../interfaces/IDataset.js';
|
|
6
6
|
import type { AskQuery } from './AskQuery.js';
|
|
7
|
+
import type { CountQuery } from './CountQuery.js';
|
|
7
8
|
/**
|
|
8
9
|
* Abstraction boundary between the DSL layer (Shape) and the storage layer
|
|
9
10
|
* (LinkedStorage / IDataset). Both sides import this leaf module; neither
|
|
@@ -16,6 +17,15 @@ export interface QueryDispatch {
|
|
|
16
17
|
selectQuery<R = any>(query: SelectQuery): Promise<R>;
|
|
17
18
|
/** Answer an ask query — a boolean, not a result set. */
|
|
18
19
|
askQuery(query: AskQuery): Promise<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* Answer a count query — a number, not a result set.
|
|
22
|
+
*
|
|
23
|
+
* **Optional**, unlike `askQuery`. This interface is implemented by object
|
|
24
|
+
* literals in consuming packages (`setQueryDispatch({…})`), so requiring it would
|
|
25
|
+
* break every one of them at compile time. {@link resolveCount} turns a missing
|
|
26
|
+
* implementation into a precise runtime error instead.
|
|
27
|
+
*/
|
|
28
|
+
countQuery?(query: CountQuery): Promise<number>;
|
|
19
29
|
createQuery<R = any>(query: CreateQuery): Promise<R>;
|
|
20
30
|
updateQuery<R = any>(query: UpdateQuery): Promise<R>;
|
|
21
31
|
deleteQuery(query: DeleteQuery): Promise<DeleteResponse>;
|
|
@@ -41,6 +51,31 @@ type ExistenceTarget = {
|
|
|
41
51
|
* propagate for the same reason — "could not ask" is never `false`.
|
|
42
52
|
*/
|
|
43
53
|
export declare function resolveExistence(target: ExistenceTarget, query: AskQuery): Promise<boolean>;
|
|
54
|
+
/** A target that can answer a count query. */
|
|
55
|
+
type CountTarget = {
|
|
56
|
+
countQuery?(query: CountQuery): Promise<number>;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Answer a count query against `target` — the single entry point for every
|
|
60
|
+
* number-answered query in the library, as {@link resolveExistence} is for boolean
|
|
61
|
+
* ones. `CountBuilder.exec()` and a router's `countQuery` both come here rather than
|
|
62
|
+
* calling `countQuery` directly, so the contract below is enforced once for every
|
|
63
|
+
* store.
|
|
64
|
+
*
|
|
65
|
+
* There is deliberately **no translation to a select query anywhere in this
|
|
66
|
+
* package.** A count goes to `IDataset.countQuery` and a SPARQL-backed store turns
|
|
67
|
+
* it into `SELECT (COUNT(DISTINCT ?s) AS ?count)`. A store that lacks an aggregate
|
|
68
|
+
* primitive implements `countQuery` itself, in whatever way its backend allows —
|
|
69
|
+
* that decision belongs to the store, and making it here (by fetching every row and
|
|
70
|
+
* measuring the array) would hide an unbounded read behind a cheap-looking call.
|
|
71
|
+
*
|
|
72
|
+
* `countQuery` must resolve to a **finite, non-negative integer**: anything else
|
|
73
|
+
* rejects rather than being coerced. Errors propagate for the same reason a failed
|
|
74
|
+
* ask is never `false` — and more sharply, because `0` is a *plausible* count. A
|
|
75
|
+
* count that reported an unreachable store as `0` would render an empty table that
|
|
76
|
+
* looks exactly like real data.
|
|
77
|
+
*/
|
|
78
|
+
export declare function resolveCount(target: CountTarget, query: CountQuery): Promise<number>;
|
|
44
79
|
export declare function setQueryDispatch(d: QueryDispatch): void;
|
|
45
80
|
export declare function getQueryDispatch(): QueryDispatch;
|
|
46
81
|
/** The mutating query kinds — the `IDataset` methods that are optional per-store. */
|
|
@@ -39,6 +39,42 @@ export function resolveExistence(target, query) {
|
|
|
39
39
|
return answer;
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Answer a count query against `target` — the single entry point for every
|
|
44
|
+
* number-answered query in the library, as {@link resolveExistence} is for boolean
|
|
45
|
+
* ones. `CountBuilder.exec()` and a router's `countQuery` both come here rather than
|
|
46
|
+
* calling `countQuery` directly, so the contract below is enforced once for every
|
|
47
|
+
* store.
|
|
48
|
+
*
|
|
49
|
+
* There is deliberately **no translation to a select query anywhere in this
|
|
50
|
+
* package.** A count goes to `IDataset.countQuery` and a SPARQL-backed store turns
|
|
51
|
+
* it into `SELECT (COUNT(DISTINCT ?s) AS ?count)`. A store that lacks an aggregate
|
|
52
|
+
* primitive implements `countQuery` itself, in whatever way its backend allows —
|
|
53
|
+
* that decision belongs to the store, and making it here (by fetching every row and
|
|
54
|
+
* measuring the array) would hide an unbounded read behind a cheap-looking call.
|
|
55
|
+
*
|
|
56
|
+
* `countQuery` must resolve to a **finite, non-negative integer**: anything else
|
|
57
|
+
* rejects rather than being coerced. Errors propagate for the same reason a failed
|
|
58
|
+
* ask is never `false` — and more sharply, because `0` is a *plausible* count. A
|
|
59
|
+
* count that reported an unreachable store as `0` would render an empty table that
|
|
60
|
+
* looks exactly like real data.
|
|
61
|
+
*/
|
|
62
|
+
export function resolveCount(target, query) {
|
|
63
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
if (typeof (target === null || target === void 0 ? void 0 : target.countQuery) !== 'function') {
|
|
65
|
+
throw new Error('This dataset does not implement IDataset.countQuery(query). A count query is ' +
|
|
66
|
+
'answered with a number — a SPARQL store emits ' +
|
|
67
|
+
'SELECT (COUNT(DISTINCT ?s) AS ?count) — and is never rewritten as a select ' +
|
|
68
|
+
'on its behalf, which would read every matching row to measure the array.');
|
|
69
|
+
}
|
|
70
|
+
const answer = yield target.countQuery(query);
|
|
71
|
+
if (typeof answer !== 'number' || !Number.isInteger(answer) || answer < 0) {
|
|
72
|
+
throw new Error(`countQuery must resolve to a non-negative integer; got ${answer === null ? 'null' : typeof answer === 'number' ? String(answer) : typeof answer}. A count query will not coerce — a NaN or a missing value that fell through ` +
|
|
73
|
+
'as 0 would silently read as "no matches".');
|
|
74
|
+
}
|
|
75
|
+
return answer;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
42
78
|
// Global-backed so it is SHARED across duplicate copies of this module. In dev,
|
|
43
79
|
// `@_linked/core` can be evaluated twice (Vite/`src` + Node/`lib` — an accepted
|
|
44
80
|
// 2-instance state, see report-011). The module REGISTRY already lives on the
|
|
@@ -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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"}
|
|
@@ -116,6 +116,38 @@ export declare abstract class Shape {
|
|
|
116
116
|
* global query dispatch.
|
|
117
117
|
*/
|
|
118
118
|
static exists<S extends Shape>(this: ShapeConstructor<S> | typeof Shape, id: string | NodeReferenceValue | PendingQueryContext | null | undefined, target?: IDataset): Promise<boolean>;
|
|
119
|
+
/**
|
|
120
|
+
* How many instances of this shape exist — a real `number`.
|
|
121
|
+
*
|
|
122
|
+
* ```typescript
|
|
123
|
+
* const total = await Person.count();
|
|
124
|
+
* ```
|
|
125
|
+
*
|
|
126
|
+
* This is the unfiltered total. For a filtered one, compose on the builder, which
|
|
127
|
+
* is the form a paging table wants:
|
|
128
|
+
*
|
|
129
|
+
* ```typescript
|
|
130
|
+
* await Person.select().where(p => p.name.equals('Semmy')).count();
|
|
131
|
+
* ```
|
|
132
|
+
*
|
|
133
|
+
* Runs the cheapest correct query: against a SPARQL store,
|
|
134
|
+
* `SELECT (COUNT(DISTINCT ?a0) AS ?count) WHERE { ?a0 rdf:type <ShapeClass> }` —
|
|
135
|
+
* the shape's type triple and nothing else. Note the type triple: this counts
|
|
136
|
+
* instances **of this shape**, not nodes in general.
|
|
137
|
+
*
|
|
138
|
+
* **On the base class — `Shape.count()` — this throws.** Unlike
|
|
139
|
+
* {@link Shape.exists}, whose shapeless reading ("does this node exist at all?")
|
|
140
|
+
* is useful and cheap, a shapeless count would count every node in every dataset
|
|
141
|
+
* the router knows. No caller means that, so it is refused rather than answered.
|
|
142
|
+
*
|
|
143
|
+
* **Errors reject — they are never reported as `0`.** Do not wrap this in a
|
|
144
|
+
* `.catch(() => 0)`: `0` is a plausible count, so a broken one renders an empty
|
|
145
|
+
* table that looks exactly like real data.
|
|
146
|
+
*
|
|
147
|
+
* @param target Optional explicit dataset to run against; omitted uses the
|
|
148
|
+
* global query dispatch.
|
|
149
|
+
*/
|
|
150
|
+
static count<S extends Shape>(this: ShapeConstructor<S> | typeof Shape, target?: IDataset): Promise<number>;
|
|
119
151
|
/**
|
|
120
152
|
* Update properties of an instance of this shape.
|
|
121
153
|
* Chain `.for(id)` to target a specific entity.
|