@comunica/actor-query-operation-source 3.0.1 → 3.0.3

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.
@@ -28,8 +28,14 @@ class ActorQueryOperationSource extends bus_query_operation_1.ActorQueryOperatio
28
28
  }
29
29
  const sourceWrapper = bus_query_operation_1.ActorQueryOperation.getOperationSource(action.operation);
30
30
  const mergedContext = sourceWrapper.context ? action.context.merge(sourceWrapper.context) : action.context;
31
+ // eslint-disable-next-line ts/switch-exhaustiveness-check
31
32
  switch (action.operation.type) {
33
+ // Special case: allow CONSTRUCT queries that are SLICED to be pushed into sources as well.
34
+ case sparqlalgebrajs_1.Algebra.types.SLICE:
32
35
  case sparqlalgebrajs_1.Algebra.types.CONSTRUCT: {
36
+ if (action.operation.type === sparqlalgebrajs_1.Algebra.types.SLICE && action.operation.input.type !== sparqlalgebrajs_1.Algebra.types.CONSTRUCT) {
37
+ break;
38
+ }
33
39
  const quadStream = sourceWrapper.source.queryQuads(action.operation, mergedContext);
34
40
  const metadata = (0, metadata_1.getMetadataQuads)(quadStream);
35
41
  return {
@@ -56,16 +62,14 @@ class ActorQueryOperationSource extends bus_query_operation_1.ActorQueryOperatio
56
62
  type: 'void',
57
63
  execute: () => sourceWrapper.source.queryVoid(action.operation, mergedContext),
58
64
  };
59
- default: {
60
- const bindingsStream = sourceWrapper.source.queryBindings(action.operation, mergedContext);
61
- const metadata = (0, metadata_1.getMetadataBindings)(bindingsStream);
62
- return {
63
- type: 'bindings',
64
- bindingsStream,
65
- metadata,
66
- };
67
- }
68
65
  }
66
+ const bindingsStream = sourceWrapper.source.queryBindings(action.operation, mergedContext);
67
+ const metadata = (0, metadata_1.getMetadataBindings)(bindingsStream);
68
+ return {
69
+ type: 'bindings',
70
+ bindingsStream,
71
+ metadata,
72
+ };
69
73
  }
70
74
  }
71
75
  exports.ActorQueryOperationSource = ActorQueryOperationSource;
@@ -1 +1 @@
1
- {"version":3,"file":"ActorQueryOperationSource.js","sourceRoot":"","sources":["ActorQueryOperationSource.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IActionQueryOperation, IActorQueryOperationArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation } from '@comunica/bus-query-operation';\nimport { KeysInitQuery } from '@comunica/context-entries';\nimport type { IActorTest } from '@comunica/core';\nimport { getMetadataBindings, getMetadataQuads } from '@comunica/metadata';\nimport type {\n IPhysicalQueryPlanLogger,\n IQueryOperationResult,\n IQuerySourceWrapper,\n} from '@comunica/types';\nimport { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Source Query Operation Actor.\n */\nexport class ActorQueryOperationSource extends ActorQueryOperation {\n public constructor(args: IActorQueryOperationArgs) {\n super(args);\n }\n\n public async test(action: IActionQueryOperation): Promise<IActorTest> {\n if (!ActorQueryOperation.getOperationSource(action.operation)) {\n throw new Error(`Actor ${this.name} requires an operation with source annotation.`);\n }\n return { httpRequests: 1 };\n }\n\n public async run(action: IActionQueryOperation): Promise<IQueryOperationResult> {\n // Log to physical plan\n const physicalQueryPlanLogger: IPhysicalQueryPlanLogger | undefined = action.context\n .get(KeysInitQuery.physicalQueryPlanLogger);\n if (physicalQueryPlanLogger) {\n physicalQueryPlanLogger.logOperation(\n action.operation.type,\n undefined,\n action.operation,\n action.context.get(KeysInitQuery.physicalQueryPlanNode),\n this.name,\n {},\n );\n action.context = action.context.set(KeysInitQuery.physicalQueryPlanNode, action.operation);\n }\n\n const sourceWrapper: IQuerySourceWrapper = ActorQueryOperation.getOperationSource(action.operation)!;\n const mergedContext = sourceWrapper.context ? action.context.merge(sourceWrapper.context) : action.context;\n\n switch (action.operation.type) {\n case Algebra.types.CONSTRUCT: {\n const quadStream = sourceWrapper.source.queryQuads(action.operation, mergedContext);\n const metadata = getMetadataQuads(quadStream);\n return {\n type: 'quads',\n quadStream,\n metadata,\n };\n }\n case Algebra.types.ASK:\n return {\n type: 'boolean',\n execute: () => sourceWrapper.source.queryBoolean(<Algebra.Ask>action.operation, mergedContext),\n };\n case Algebra.types.COMPOSITE_UPDATE:\n case Algebra.types.DELETE_INSERT:\n case Algebra.types.LOAD:\n case Algebra.types.CLEAR:\n case Algebra.types.CREATE:\n case Algebra.types.DROP:\n case Algebra.types.ADD:\n case Algebra.types.MOVE:\n case Algebra.types.COPY:\n return {\n type: 'void',\n execute: () => sourceWrapper.source.queryVoid(<Algebra.Update>action.operation, mergedContext),\n };\n default: {\n const bindingsStream = sourceWrapper.source.queryBindings(action.operation, mergedContext);\n const metadata = getMetadataBindings(bindingsStream);\n return {\n type: 'bindings',\n bindingsStream,\n metadata,\n };\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"ActorQueryOperationSource.js","sourceRoot":"","sources":["ActorQueryOperationSource.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IActionQueryOperation, IActorQueryOperationArgs } from '@comunica/bus-query-operation';\nimport { ActorQueryOperation } from '@comunica/bus-query-operation';\nimport { KeysInitQuery } from '@comunica/context-entries';\nimport type { IActorTest } from '@comunica/core';\nimport { getMetadataBindings, getMetadataQuads } from '@comunica/metadata';\nimport type {\n IPhysicalQueryPlanLogger,\n IQueryOperationResult,\n IQuerySourceWrapper,\n} from '@comunica/types';\nimport { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Source Query Operation Actor.\n */\nexport class ActorQueryOperationSource extends ActorQueryOperation {\n public constructor(args: IActorQueryOperationArgs) {\n super(args);\n }\n\n public async test(action: IActionQueryOperation): Promise<IActorTest> {\n if (!ActorQueryOperation.getOperationSource(action.operation)) {\n throw new Error(`Actor ${this.name} requires an operation with source annotation.`);\n }\n return { httpRequests: 1 };\n }\n\n public async run(action: IActionQueryOperation): Promise<IQueryOperationResult> {\n // Log to physical plan\n const physicalQueryPlanLogger: IPhysicalQueryPlanLogger | undefined = action.context\n .get(KeysInitQuery.physicalQueryPlanLogger);\n if (physicalQueryPlanLogger) {\n physicalQueryPlanLogger.logOperation(\n action.operation.type,\n undefined,\n action.operation,\n action.context.get(KeysInitQuery.physicalQueryPlanNode),\n this.name,\n {},\n );\n action.context = action.context.set(KeysInitQuery.physicalQueryPlanNode, action.operation);\n }\n\n const sourceWrapper: IQuerySourceWrapper = ActorQueryOperation.getOperationSource(action.operation)!;\n const mergedContext = sourceWrapper.context ? action.context.merge(sourceWrapper.context) : action.context;\n\n // eslint-disable-next-line ts/switch-exhaustiveness-check\n switch (action.operation.type) {\n // Special case: allow CONSTRUCT queries that are SLICED to be pushed into sources as well.\n case Algebra.types.SLICE:\n case Algebra.types.CONSTRUCT: {\n if (action.operation.type === Algebra.types.SLICE && action.operation.input.type !== Algebra.types.CONSTRUCT) {\n break;\n }\n const quadStream = sourceWrapper.source.queryQuads(action.operation, mergedContext);\n const metadata = getMetadataQuads(quadStream);\n return {\n type: 'quads',\n quadStream,\n metadata,\n };\n }\n case Algebra.types.ASK:\n return {\n type: 'boolean',\n execute: () => sourceWrapper.source.queryBoolean(<Algebra.Ask>action.operation, mergedContext),\n };\n case Algebra.types.COMPOSITE_UPDATE:\n case Algebra.types.DELETE_INSERT:\n case Algebra.types.LOAD:\n case Algebra.types.CLEAR:\n case Algebra.types.CREATE:\n case Algebra.types.DROP:\n case Algebra.types.ADD:\n case Algebra.types.MOVE:\n case Algebra.types.COPY:\n return {\n type: 'void',\n execute: () => sourceWrapper.source.queryVoid(<Algebra.Update>action.operation, mergedContext),\n };\n }\n\n const bindingsStream = sourceWrapper.source.queryBindings(action.operation, mergedContext);\n const metadata = getMetadataBindings(bindingsStream);\n return {\n type: 'bindings',\n bindingsStream,\n metadata,\n };\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comunica/actor-query-operation-source",
3
- "version": "3.0.1",
3
+ "version": "3.0.3",
4
4
  "description": "A source query-operation actor",
5
5
  "lsd:module": true,
6
6
  "license": "MIT",
@@ -37,12 +37,12 @@
37
37
  "build:components": "componentsjs-generator"
38
38
  },
39
39
  "dependencies": {
40
- "@comunica/bus-query-operation": "^3.0.1",
41
- "@comunica/context-entries": "^3.0.1",
42
- "@comunica/core": "^3.0.1",
43
- "@comunica/metadata": "^3.0.1",
44
- "@comunica/types": "^3.0.1",
40
+ "@comunica/bus-query-operation": "^3.0.3",
41
+ "@comunica/context-entries": "^3.0.3",
42
+ "@comunica/core": "^3.0.3",
43
+ "@comunica/metadata": "^3.0.3",
44
+ "@comunica/types": "^3.0.3",
45
45
  "sparqlalgebrajs": "^4.3.3"
46
46
  },
47
- "gitHead": "9c0b537cd927d29590c287fe882185d88a65461b"
47
+ "gitHead": "a1e050b7e921d6ea5532abc09391e49938c7e5f3"
48
48
  }