@finos/legend-application-data-cube 0.2.7 → 0.3.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.
Files changed (65) hide show
  1. package/lib/components/builder/LegendDataCubeBuilder.d.ts.map +1 -1
  2. package/lib/components/builder/LegendDataCubeBuilder.js +4 -1
  3. package/lib/components/builder/LegendDataCubeBuilder.js.map +1 -1
  4. package/lib/components/builder/LegendDataCubeCreator.d.ts.map +1 -1
  5. package/lib/components/builder/LegendDataCubeCreator.js +12 -5
  6. package/lib/components/builder/LegendDataCubeCreator.js.map +1 -1
  7. package/lib/components/builder/LegendDataCubeLoader.js +6 -6
  8. package/lib/components/builder/LegendDataCubeLoader.js.map +1 -1
  9. package/lib/components/builder/source/AdhocQueryDataCubeSourceBuilder.d.ts.map +1 -1
  10. package/lib/components/builder/source/AdhocQueryDataCubeSourceBuilder.js +2 -3
  11. package/lib/components/builder/source/AdhocQueryDataCubeSourceBuilder.js.map +1 -1
  12. package/lib/components/builder/source/LegendQueryDataCubeSourceBuilder.js +6 -6
  13. package/lib/components/builder/source/LegendQueryDataCubeSourceBuilder.js.map +1 -1
  14. package/lib/components/builder/source/LocalFileDataCubeSourceBuilder.d.ts +22 -0
  15. package/lib/components/builder/source/LocalFileDataCubeSourceBuilder.d.ts.map +1 -0
  16. package/lib/components/builder/source/LocalFileDataCubeSourceBuilder.js +29 -0
  17. package/lib/components/builder/source/LocalFileDataCubeSourceBuilder.js.map +1 -0
  18. package/lib/index.css +1 -1
  19. package/lib/package.json +3 -3
  20. package/lib/stores/LegendDataCubeDataCubeEngine.d.ts +5 -3
  21. package/lib/stores/LegendDataCubeDataCubeEngine.d.ts.map +1 -1
  22. package/lib/stores/LegendDataCubeDataCubeEngine.js +297 -120
  23. package/lib/stores/LegendDataCubeDataCubeEngine.js.map +1 -1
  24. package/lib/stores/{LegendDataCubeCacheManager.d.ts → LegendDataCubeDuckDBEngine.d.ts} +18 -6
  25. package/lib/stores/LegendDataCubeDuckDBEngine.d.ts.map +1 -0
  26. package/lib/stores/{LegendDataCubeCacheManager.js → LegendDataCubeDuckDBEngine.js} +81 -39
  27. package/lib/stores/LegendDataCubeDuckDBEngine.js.map +1 -0
  28. package/lib/stores/builder/LegendDataCubeBuilderStore.js +2 -2
  29. package/lib/stores/builder/LegendDataCubeBuilderStore.js.map +1 -1
  30. package/lib/stores/builder/LegendDataCubeCreatorState.d.ts.map +1 -1
  31. package/lib/stores/builder/LegendDataCubeCreatorState.js +3 -0
  32. package/lib/stores/builder/LegendDataCubeCreatorState.js.map +1 -1
  33. package/lib/stores/builder/source/LegendDataCubeSourceBuilderState.d.ts +5 -1
  34. package/lib/stores/builder/source/LegendDataCubeSourceBuilderState.d.ts.map +1 -1
  35. package/lib/stores/builder/source/LegendDataCubeSourceBuilderState.js +4 -1
  36. package/lib/stores/builder/source/LegendDataCubeSourceBuilderState.js.map +1 -1
  37. package/lib/stores/builder/source/LegendQueryDataCubeSourceBuilderState.d.ts.map +1 -1
  38. package/lib/stores/builder/source/LegendQueryDataCubeSourceBuilderState.js +1 -1
  39. package/lib/stores/builder/source/LegendQueryDataCubeSourceBuilderState.js.map +1 -1
  40. package/lib/stores/builder/source/LocalFileDataCubeSourceBuilderState.d.ts +38 -0
  41. package/lib/stores/builder/source/LocalFileDataCubeSourceBuilderState.d.ts.map +1 -0
  42. package/lib/stores/builder/source/LocalFileDataCubeSourceBuilderState.js +122 -0
  43. package/lib/stores/builder/source/LocalFileDataCubeSourceBuilderState.js.map +1 -0
  44. package/lib/stores/model/LocalFileDataCubeSource.d.ts +44 -0
  45. package/lib/stores/model/LocalFileDataCubeSource.d.ts.map +1 -0
  46. package/lib/stores/model/LocalFileDataCubeSource.js +57 -0
  47. package/lib/stores/model/LocalFileDataCubeSource.js.map +1 -0
  48. package/package.json +13 -13
  49. package/src/components/builder/LegendDataCubeBuilder.tsx +6 -1
  50. package/src/components/builder/LegendDataCubeCreator.tsx +23 -6
  51. package/src/components/builder/LegendDataCubeLoader.tsx +7 -7
  52. package/src/components/builder/source/AdhocQueryDataCubeSourceBuilder.tsx +2 -3
  53. package/src/components/builder/source/LegendQueryDataCubeSourceBuilder.tsx +8 -8
  54. package/src/components/builder/source/LocalFileDataCubeSourceBuilder.tsx +59 -0
  55. package/src/stores/LegendDataCubeDataCubeEngine.ts +407 -182
  56. package/src/stores/{LegendDataCubeCacheManager.ts → LegendDataCubeDuckDBEngine.ts} +86 -42
  57. package/src/stores/builder/LegendDataCubeBuilderStore.tsx +2 -2
  58. package/src/stores/builder/LegendDataCubeCreatorState.tsx +6 -0
  59. package/src/stores/builder/source/LegendDataCubeSourceBuilderState.ts +4 -1
  60. package/src/stores/builder/source/LegendQueryDataCubeSourceBuilderState.ts +3 -1
  61. package/src/stores/builder/source/LocalFileDataCubeSourceBuilderState.ts +179 -0
  62. package/src/stores/model/LocalFileDataCubeSource.ts +67 -0
  63. package/tsconfig.json +4 -1
  64. package/lib/stores/LegendDataCubeCacheManager.d.ts.map +0 -1
  65. package/lib/stores/LegendDataCubeCacheManager.js.map +0 -1
@@ -13,33 +13,34 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { V1_Lambda, V1_PureGraphManager, RelationalExecutionActivities, TDSExecutionResult, V1_ParameterValue, V1_PureModelContextPointer, V1_LegendSDLC, V1_serializePureModelContext, V1_buildParserError, V1_ParserError, V1_relationTypeModelSchema, V1_getGenericTypeFullPath, LAMBDA_PIPE, V1_rawBaseExecutionContextModelSchema, V1_deserializeExecutionResult, V1_parameterValueModelSchema, V1_buildExecutionResult, V1_RawBaseExecutionContext, PureClientVersion, V1_buildEngineError, V1_EngineError, V1_PackageableType, V1_deserializeRawValueSpecificationType, V1_Protocol, V1_deserializeExecutionPlan, V1_SQLExecutionNode, V1_SimpleExecutionPlan, V1_ClassInstance, V1_ClassInstanceType, V1_Column, V1_Database, V1_Date, V1_DuckDBDatasourceSpecification, V1_EngineRuntime, V1_IdentifiedConnection, V1_Integer, V1_PackageableElementPointer, V1_PackageableRuntime, V1_PureModelContextData, V1_RelationStoreAccessor, V1_RelationalDatabaseConnection, V1_Schema, V1_StoreConnections, V1_Table, V1_TestAuthenticationStrategy, V1_VarChar, V1_Bit, V1_Float, PackageableElementPointerType, DatabaseType, PRIMITIVE_TYPE, } from '@finos/legend-graph';
17
- import { _elementPtr, DataCubeEngine, _function, DataCubeFunction, AdhocQueryDataCubeSource, ADHOC_QUERY_DATA_CUBE_SOURCE_TYPE, RawAdhocQueryDataCubeSource, _lambda, _defaultPrimitiveTypeValue, CachedDataCubeSource, } from '@finos/legend-data-cube';
16
+ import { V1_Lambda, V1_PureGraphManager, RelationalExecutionActivities, TDSExecutionResult, V1_ParameterValue, V1_PureModelContextPointer, V1_LegendSDLC, V1_serializePureModelContext, V1_buildParserError, V1_ParserError, V1_relationTypeModelSchema, V1_getGenericTypeFullPath, LAMBDA_PIPE, V1_rawBaseExecutionContextModelSchema, V1_deserializeExecutionResult, V1_parameterValueModelSchema, V1_buildExecutionResult, V1_RawBaseExecutionContext, PureClientVersion, V1_buildEngineError, V1_EngineError, V1_PackageableType, V1_deserializeRawValueSpecificationType, V1_Protocol, V1_deserializeExecutionPlan, V1_SQLExecutionNode, V1_SimpleExecutionPlan, V1_ClassInstance, V1_ClassInstanceType, V1_Column, V1_Database, V1_Date, V1_DuckDBDatasourceSpecification, V1_EngineRuntime, V1_IdentifiedConnection, V1_Integer, V1_PackageableElementPointer, V1_PackageableRuntime, V1_PureModelContextData, V1_RelationStoreAccessor, V1_RelationalDatabaseConnection, V1_Schema, V1_StoreConnections, V1_Table, V1_TestAuthenticationStrategy, V1_VarChar, V1_Bit, V1_Float, PackageableElementPointerType, DatabaseType, PRIMITIVE_TYPE, V1_BigInt, V1_Decimal, V1_Double, V1_Timestamp, V1_TinyInt, V1_SmallInt, V1_serializePureModelContextData, } from '@finos/legend-graph';
17
+ import { _elementPtr, DataCubeEngine, _function, DataCubeFunction, AdhocQueryDataCubeSource, ADHOC_QUERY_DATA_CUBE_SOURCE_TYPE, RawAdhocQueryDataCubeSource, _lambda, _defaultPrimitiveTypeValue, CachedDataCubeSource, DataCubeExecutionError, } from '@finos/legend-data-cube';
18
18
  import { isNonNullable, LogEvent, UnsupportedOperationError, assertErrorThrown, NetworkClientError, HttpStatus, at, assertType, guaranteeType, guaranteeNonNullable, filterByType, } from '@finos/legend-shared';
19
- import { LegendDataCubeDataCubeCacheManager } from './LegendDataCubeCacheManager.js';
19
+ import { LegendDataCubeDuckDBEngine } from './LegendDataCubeDuckDBEngine.js';
20
20
  import { APPLICATION_EVENT } from '@finos/legend-application';
21
21
  import { LEGEND_QUERY_DATA_CUBE_SOURCE_TYPE, LegendQueryDataCubeSource, RawLegendQueryDataCubeSource, } from './model/LegendQueryDataCubeSource.js';
22
22
  import { deserialize, serialize } from 'serializr';
23
23
  import { resolveVersion, } from '@finos/legend-server-depot';
24
+ import { LOCAL_FILE_QUERY_DATA_CUBE_SOURCE_TYPE, LocalFileDataCubeSource, RawLocalFileQueryDataCubeSource, } from './model/LocalFileDataCubeSource.js';
24
25
  export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
25
26
  _application;
26
27
  _depotServerClient;
27
28
  _engineServerClient;
28
29
  _graphManager;
29
- _cacheManager;
30
+ _duckDBEngine;
30
31
  constructor(application, depotServerClient, engineServerClient, graphManager) {
31
32
  super();
32
33
  this._application = application;
33
34
  this._depotServerClient = depotServerClient;
34
35
  this._engineServerClient = engineServerClient;
35
36
  this._graphManager = graphManager;
36
- this._cacheManager = new LegendDataCubeDataCubeCacheManager();
37
+ this._duckDBEngine = new LegendDataCubeDuckDBEngine();
37
38
  }
38
- async initializeCacheManager() {
39
- await this._cacheManager.initialize();
39
+ async initialize() {
40
+ await this._duckDBEngine.initialize();
40
41
  }
41
- async disposeCacheManager() {
42
- await this._cacheManager.dispose();
42
+ async dispose() {
43
+ await this._duckDBEngine.dispose();
43
44
  }
44
45
  // ---------------------------------- IMPLEMENTATION ----------------------------------
45
46
  async processSource(value) {
@@ -59,6 +60,31 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
59
60
  }
60
61
  return source;
61
62
  }
63
+ case LOCAL_FILE_QUERY_DATA_CUBE_SOURCE_TYPE: {
64
+ const rawSource = RawLocalFileQueryDataCubeSource.serialization.fromJson(value);
65
+ const source = new LocalFileDataCubeSource();
66
+ source.fileName = rawSource.fileName;
67
+ source.count = rawSource.count;
68
+ source.db = rawSource.db;
69
+ source.model = rawSource.model;
70
+ source.runtime = rawSource.runtime;
71
+ source.schema = rawSource.schema;
72
+ source.table = rawSource.table;
73
+ const query = new V1_ClassInstance();
74
+ query.type = V1_ClassInstanceType.RELATION_STORE_ACCESSOR;
75
+ const storeAccessor = new V1_RelationStoreAccessor();
76
+ storeAccessor.path = [source.db, source.schema, source.table];
77
+ query.value = storeAccessor;
78
+ source.query = query;
79
+ try {
80
+ source.columns = (await this._getLambdaRelationType(this.serializeValueSpecification(_lambda([], [source.query])), source.model)).columns;
81
+ }
82
+ catch (error) {
83
+ assertErrorThrown(error);
84
+ throw new Error(`Can't get query result columns. Make sure the source query return a relation (i.e. typed TDS). Error: ${error.message}`);
85
+ }
86
+ return source;
87
+ }
62
88
  case LEGEND_QUERY_DATA_CUBE_SOURCE_TYPE: {
63
89
  const rawSource = RawLegendQueryDataCubeSource.serialization.fromJson(value);
64
90
  const queryInfo = await this._graphManager.getQueryInfo(rawSource.queryId);
@@ -186,50 +212,86 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
186
212
  const queryCodePromise = this.getValueSpecificationCode(query);
187
213
  let result;
188
214
  const startTime = performance.now();
189
- if (source instanceof AdhocQueryDataCubeSource) {
190
- result = await this._runQuery(query, source.model, undefined, options);
191
- }
192
- else if (source instanceof LegendQueryDataCubeSource) {
193
- query.parameters = source.lambda.parameters;
194
- result = await this._runQuery(query, source.model, source.parameterValues, options);
195
- }
196
- else if (source instanceof CachedDataCubeSource) {
197
- // get the execute plan to extract the generated SQL to run against cached DB
198
- const executionPlan = await this._generateExecutionPlan(query, source.model, [],
199
- // NOTE: for caching, we're using DuckDB, but its protocol models
200
- // are not available in the latest production protocol version V1_33_0, so
201
- // we have to force using VX_X_X
202
- // once we either cut another protocol version or backport the DuckDB models
203
- // to V1_33_0, we will can remove this
204
- { ...options, clientVersion: PureClientVersion.VX_X_X });
205
- const sql = guaranteeNonNullable(executionPlan instanceof V1_SimpleExecutionPlan
206
- ? executionPlan.rootExecutionNode.executionNodes
207
- .filter(filterByType(V1_SQLExecutionNode))
208
- .at(-1)?.sqlQuery
209
- : undefined, `Can't process execution plan: failed to extract generated SQL`);
215
+ try {
216
+ if (source instanceof AdhocQueryDataCubeSource) {
217
+ result = await this._runQuery(query, source.model, undefined, options);
218
+ }
219
+ else if (source instanceof LegendQueryDataCubeSource) {
220
+ query.parameters = source.lambda.parameters;
221
+ result = await this._runQuery(query, source.model, source.parameterValues, options);
222
+ }
223
+ else if (source instanceof CachedDataCubeSource) {
224
+ // get the execute plan to extract the generated SQL to run against cached DB
225
+ const executionPlan = await this._generateExecutionPlan(query, source.model, [],
226
+ // NOTE: for caching, we're using DuckDB, but its protocol models
227
+ // are not available in the latest production protocol version V1_33_0, so
228
+ // we have to force using VX_X_X
229
+ // once we either cut another protocol version or backport the DuckDB models
230
+ // to V1_33_0, we will can remove this
231
+ { ...options, clientVersion: PureClientVersion.VX_X_X });
232
+ const sql = guaranteeNonNullable(executionPlan instanceof V1_SimpleExecutionPlan
233
+ ? executionPlan.rootExecutionNode.executionNodes
234
+ .filter(filterByType(V1_SQLExecutionNode))
235
+ .at(-1)?.sqlQuery
236
+ : undefined, `Can't process execution plan: failed to extract generated SQL`);
237
+ const endTime = performance.now();
238
+ return {
239
+ executedQuery: await queryCodePromise,
240
+ executedSQL: sql,
241
+ result: await this._duckDBEngine.runSQLQuery(sql),
242
+ executionTime: endTime - startTime,
243
+ };
244
+ }
245
+ else if (source instanceof LocalFileDataCubeSource) {
246
+ // get the execute plan to extract the generated SQL to run against cached DB
247
+ const executionPlan = await this._generateExecutionPlan(query, source.model, [],
248
+ // NOTE: for local file, we're using DuckDB, but its protocol models
249
+ // are not available in the latest production protocol version V1_33_0, so
250
+ // we have to force using VX_X_X
251
+ // once we either cut another protocol version or backport the DuckDB models
252
+ // to V1_33_0, we will can remove this
253
+ { ...options, clientVersion: PureClientVersion.VX_X_X });
254
+ const sql = guaranteeNonNullable(executionPlan instanceof V1_SimpleExecutionPlan
255
+ ? executionPlan.rootExecutionNode.executionNodes
256
+ .filter(filterByType(V1_SQLExecutionNode))
257
+ .at(-1)?.sqlQuery
258
+ : undefined, `Can't process execution plan: failed to extract generated SQL`);
259
+ const endTime = performance.now();
260
+ return {
261
+ executedQuery: await queryCodePromise,
262
+ executedSQL: sql,
263
+ result: await this._duckDBEngine.runSQLQuery(sql),
264
+ executionTime: endTime - startTime,
265
+ };
266
+ }
267
+ else {
268
+ throw new UnsupportedOperationError(`Can't execute query with unsupported source`);
269
+ }
270
+ assertType(result, TDSExecutionResult, `Can't process execution result: expected tabular data set format`);
210
271
  const endTime = performance.now();
272
+ const queryCode = await queryCodePromise;
273
+ const sql = guaranteeNonNullable(result.activities?.[0] instanceof RelationalExecutionActivities
274
+ ? result.activities[0].sql
275
+ : undefined, `Can't process execution result: failed to extract generated SQL`);
211
276
  return {
212
- executedQuery: await queryCodePromise,
277
+ result: result,
278
+ executedQuery: queryCode,
213
279
  executedSQL: sql,
214
- result: await this._cacheManager.runSQLQuery(sql),
215
280
  executionTime: endTime - startTime,
216
281
  };
217
282
  }
218
- else {
219
- throw new UnsupportedOperationError(`Can't execute query with unsupported source`);
283
+ catch (error) {
284
+ assertErrorThrown(error);
285
+ if (error instanceof DataCubeExecutionError) {
286
+ try {
287
+ error.queryCode = await this.getValueSpecificationCode(query, true);
288
+ }
289
+ catch {
290
+ // ignore
291
+ }
292
+ }
293
+ throw error;
220
294
  }
221
- assertType(result, TDSExecutionResult, `Can't process execution result: expected tabular data set format`);
222
- const endTime = performance.now();
223
- const queryCode = await queryCodePromise;
224
- const sql = guaranteeNonNullable(result.activities?.[0] instanceof RelationalExecutionActivities
225
- ? result.activities[0].sql
226
- : undefined, `Can't process execution result: failed to extract generated SQL`);
227
- return {
228
- result: result,
229
- executedQuery: queryCode,
230
- executedSQL: sql,
231
- executionTime: endTime - startTime,
232
- };
233
295
  }
234
296
  buildExecutionContext(source) {
235
297
  if (source instanceof AdhocQueryDataCubeSource) {
@@ -244,6 +306,9 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
244
306
  else if (source instanceof CachedDataCubeSource) {
245
307
  return _function(DataCubeFunction.FROM, [_elementPtr(source.runtime)].filter(isNonNullable));
246
308
  }
309
+ else if (source instanceof LocalFileDataCubeSource) {
310
+ return _function(DataCubeFunction.FROM, [_elementPtr(source.runtime)].filter(isNonNullable));
311
+ }
247
312
  return undefined;
248
313
  }
249
314
  // ---------------------------------- CACHING --------------------------------------
@@ -251,74 +316,45 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
251
316
  const cacheQuery = guaranteeNonNullable(this.buildExecutionContext(source), `Can't initialize cache: failed to build cache query`);
252
317
  cacheQuery.parameters.unshift(source.query);
253
318
  const result = await this.executeQuery(_lambda([], [cacheQuery]), source, options);
254
- const { schema: schemaName, table: tableName, rowCount, } = await this._cacheManager.cache(result.result);
255
- // model
256
- const pacakgePath = 'local';
257
- const table = new V1_Table();
258
- table.name = tableName;
259
- table.columns = result.result.builder.columns.map((col) => {
260
- const column = new V1_Column();
261
- column.name = col.name;
262
- switch (col.type) {
263
- case PRIMITIVE_TYPE.BOOLEAN: {
264
- column.type = new V1_Bit();
265
- break;
266
- }
267
- case PRIMITIVE_TYPE.INTEGER: {
268
- column.type = new V1_Integer();
269
- break;
270
- }
271
- case PRIMITIVE_TYPE.NUMBER:
272
- case PRIMITIVE_TYPE.FLOAT:
273
- case PRIMITIVE_TYPE.DECIMAL: {
274
- column.type = new V1_Float();
275
- break;
276
- }
277
- case PRIMITIVE_TYPE.DATE:
278
- case PRIMITIVE_TYPE.STRICTDATE:
279
- case PRIMITIVE_TYPE.DATETIME: {
280
- column.type = new V1_Date();
281
- break;
282
- }
283
- case PRIMITIVE_TYPE.STRING: {
284
- column.type = new V1_VarChar();
285
- break;
286
- }
287
- default: {
288
- throw new UnsupportedOperationError(`Can't initialize cache: failed to find matching relational data type for Pure type '${col.type}' when synthesizing table definition`);
319
+ const { schema: schemaName, table: tableName, rowCount, } = await this._duckDBEngine.cache(result.result);
320
+ const { model, database, schema, table, runtime } = this._synthesizeMinimalModelContext({
321
+ schemaName,
322
+ tableName,
323
+ tableColumns: result.result.builder.columns.map((col) => {
324
+ const column = new V1_Column();
325
+ column.name = col.name;
326
+ switch (col.type) {
327
+ case PRIMITIVE_TYPE.BOOLEAN: {
328
+ column.type = new V1_Bit();
329
+ break;
330
+ }
331
+ case PRIMITIVE_TYPE.INTEGER: {
332
+ column.type = new V1_Integer();
333
+ break;
334
+ }
335
+ case PRIMITIVE_TYPE.NUMBER:
336
+ case PRIMITIVE_TYPE.FLOAT:
337
+ case PRIMITIVE_TYPE.DECIMAL: {
338
+ column.type = new V1_Float();
339
+ break;
340
+ }
341
+ case PRIMITIVE_TYPE.DATE:
342
+ case PRIMITIVE_TYPE.STRICTDATE:
343
+ case PRIMITIVE_TYPE.DATETIME: {
344
+ column.type = new V1_Date();
345
+ break;
346
+ }
347
+ case PRIMITIVE_TYPE.STRING: {
348
+ column.type = new V1_VarChar();
349
+ break;
350
+ }
351
+ default: {
352
+ throw new UnsupportedOperationError(`Can't initialize cache: failed to find matching relational data type for Pure type '${col.type}' when synthesizing table definition`);
353
+ }
289
354
  }
290
- }
291
- return column;
355
+ return column;
356
+ }),
292
357
  });
293
- const schema = new V1_Schema();
294
- schema.name = schemaName;
295
- schema.tables = [table];
296
- const database = new V1_Database();
297
- database.name = 'db';
298
- database.package = pacakgePath;
299
- database.schemas = [schema];
300
- const connection = new V1_RelationalDatabaseConnection();
301
- connection.databaseType = DatabaseType.DuckDB;
302
- connection.type = DatabaseType.DuckDB;
303
- const dataSourceSpec = new V1_DuckDBDatasourceSpecification();
304
- dataSourceSpec.path = '/tmpFile';
305
- connection.store = database.path;
306
- connection.datasourceSpecification = dataSourceSpec;
307
- connection.authenticationStrategy = new V1_TestAuthenticationStrategy();
308
- const runtime = new V1_EngineRuntime();
309
- const storeConnections = new V1_StoreConnections();
310
- storeConnections.store = new V1_PackageableElementPointer(PackageableElementPointerType.STORE, database.path);
311
- const identifiedConnection = new V1_IdentifiedConnection();
312
- identifiedConnection.connection = connection;
313
- identifiedConnection.id = 'c0';
314
- storeConnections.storeConnections = [identifiedConnection];
315
- runtime.connections = [storeConnections];
316
- const packageableRuntime = new V1_PackageableRuntime();
317
- packageableRuntime.runtimeValue = runtime;
318
- packageableRuntime.package = pacakgePath;
319
- packageableRuntime.name = 'rt';
320
- const model = new V1_PureModelContextData();
321
- model.elements = [database, packageableRuntime];
322
358
  // query
323
359
  const query = new V1_ClassInstance();
324
360
  query.type = V1_ClassInstanceType.RELATION_STORE_ACCESSOR;
@@ -329,7 +365,7 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
329
365
  cachedSource.columns = source.columns;
330
366
  cachedSource.query = query;
331
367
  cachedSource.model = model;
332
- cachedSource.runtime = packageableRuntime.path;
368
+ cachedSource.runtime = runtime.path;
333
369
  cachedSource.db = database.path;
334
370
  cachedSource.schema = schema.name;
335
371
  cachedSource.table = table.name;
@@ -337,7 +373,7 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
337
373
  return cachedSource;
338
374
  }
339
375
  async disposeCache(source) {
340
- await this._cacheManager.disposeCache(source);
376
+ await this._duckDBEngine.disposeCache(source);
341
377
  }
342
378
  // ---------------------------------- UTILITIES ----------------------------------
343
379
  async _getQueryRelationType(query, source) {
@@ -348,7 +384,10 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
348
384
  return this._getLambdaRelationType(query, source.model);
349
385
  }
350
386
  else if (source instanceof CachedDataCubeSource) {
351
- return this._getLambdaRelationType(query, serialize(source.model));
387
+ return this._getLambdaRelationType(query, source.model);
388
+ }
389
+ else if (source instanceof LocalFileDataCubeSource) {
390
+ return this._getLambdaRelationType(query, source.model);
352
391
  }
353
392
  throw new UnsupportedOperationError(`Can't get relation type for lambda with unsupported source`);
354
393
  }
@@ -365,7 +404,7 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
365
404
  };
366
405
  }
367
406
  async _runQuery(query, model, parameterValues, options) {
368
- return V1_buildExecutionResult(V1_deserializeExecutionResult((await this._engineServerClient.runQuery({
407
+ const input = {
369
408
  clientVersion: options?.clientVersion ??
370
409
  // eslint-disable-next-line no-process-env
371
410
  (process.env.NODE_ENV === 'development'
@@ -375,20 +414,158 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
375
414
  model,
376
415
  context: serialize(V1_rawBaseExecutionContextModelSchema, new V1_RawBaseExecutionContext()),
377
416
  parameterValues: (parameterValues ?? []).map((parameterValue) => serialize(V1_parameterValueModelSchema, parameterValue)),
378
- }))));
417
+ };
418
+ try {
419
+ return V1_buildExecutionResult(V1_deserializeExecutionResult((await this._engineServerClient.runQuery(input))));
420
+ }
421
+ catch (err) {
422
+ assertErrorThrown(err);
423
+ const error = new DataCubeExecutionError(err.message);
424
+ error.executeInput = input;
425
+ throw error;
426
+ }
379
427
  }
380
428
  async _generateExecutionPlan(query, model, parameterValues, options) {
381
- return V1_deserializeExecutionPlan(await this._engineServerClient.generatePlan({
429
+ const input = {
382
430
  clientVersion: options?.clientVersion ??
383
431
  // eslint-disable-next-line no-process-env
384
432
  (process.env.NODE_ENV === 'development'
385
433
  ? PureClientVersion.VX_X_X
386
434
  : undefined),
387
435
  function: this.serializeValueSpecification(query),
388
- model: serialize(model),
436
+ model,
389
437
  context: serialize(V1_rawBaseExecutionContextModelSchema, new V1_RawBaseExecutionContext()),
390
438
  parameterValues: (parameterValues ?? []).map((parameterValue) => serialize(V1_parameterValueModelSchema, parameterValue)),
391
- }));
439
+ };
440
+ try {
441
+ return V1_deserializeExecutionPlan(await this._engineServerClient.generatePlan(input));
442
+ }
443
+ catch (err) {
444
+ assertErrorThrown(err);
445
+ const error = new DataCubeExecutionError(err.message);
446
+ error.executeInput = input;
447
+ throw error;
448
+ }
449
+ }
450
+ async ingestLocalFileData(data, format) {
451
+ const { schema: schemaName, table: tableName, tableSpec, } = await this._duckDBEngine.ingestLocalFileData(data, format);
452
+ const { model, database, schema, table, runtime } = this._synthesizeMinimalModelContext({
453
+ schemaName,
454
+ tableName,
455
+ tableColumns: tableSpec.map((col) => {
456
+ const column = new V1_Column();
457
+ column.name = col[0];
458
+ // TODO: confirm this is in accordance to engine
459
+ // check if we have a duckdb enum mapping
460
+ // See https://duckdb.org/docs/sql/data_types/overview.html
461
+ switch (col[1]) {
462
+ case 'BIT': {
463
+ column.type = new V1_Bit();
464
+ break;
465
+ }
466
+ case 'BOOLEAN': {
467
+ // TODO: understand why boolean is not present in relationalDataType
468
+ column.type = new V1_VarChar();
469
+ break;
470
+ }
471
+ case 'DATE': {
472
+ column.type = new V1_Date();
473
+ break;
474
+ }
475
+ case 'DECIMAL': {
476
+ column.type = new V1_Decimal();
477
+ break;
478
+ }
479
+ case 'DOUBLE': {
480
+ column.type = new V1_Double();
481
+ break;
482
+ }
483
+ case 'FLOAT': {
484
+ column.type = new V1_Float();
485
+ break;
486
+ }
487
+ case 'INTEGER': {
488
+ column.type = new V1_Integer();
489
+ break;
490
+ }
491
+ case 'TININT': {
492
+ column.type = new V1_TinyInt();
493
+ break;
494
+ }
495
+ case 'SMALLINT': {
496
+ column.type = new V1_SmallInt();
497
+ break;
498
+ }
499
+ case 'BIGINT': {
500
+ column.type = new V1_BigInt();
501
+ break;
502
+ }
503
+ case 'TIMESTAMP': {
504
+ column.type = new V1_Timestamp();
505
+ break;
506
+ }
507
+ case 'VARCHAR': {
508
+ column.type = new V1_VarChar();
509
+ break;
510
+ }
511
+ default: {
512
+ throw new UnsupportedOperationError(`Can't ingest local file data: failed to find matching relational data type for DuckDB type '${col[1]}' when synthesizing table definition`);
513
+ }
514
+ }
515
+ return column;
516
+ }),
517
+ });
518
+ const source = new LocalFileDataCubeSource();
519
+ source.model = model;
520
+ source.runtime = runtime.path;
521
+ source.db = database.path;
522
+ source.schema = schema.name;
523
+ source.table = table.name;
524
+ return source;
525
+ }
526
+ _synthesizeMinimalModelContext(data) {
527
+ const { schemaName, tableName, tableColumns } = data;
528
+ // model
529
+ const packagePath = 'local';
530
+ const table = new V1_Table();
531
+ table.name = tableName;
532
+ table.columns = [...tableColumns];
533
+ const schema = new V1_Schema();
534
+ schema.name = schemaName;
535
+ schema.tables = [table];
536
+ const database = new V1_Database();
537
+ database.name = 'db';
538
+ database.package = packagePath;
539
+ database.schemas = [schema];
540
+ const connection = new V1_RelationalDatabaseConnection();
541
+ connection.databaseType = DatabaseType.DuckDB;
542
+ connection.type = DatabaseType.DuckDB;
543
+ const dataSourceSpec = new V1_DuckDBDatasourceSpecification();
544
+ dataSourceSpec.path = '/tmpFile';
545
+ connection.store = database.path;
546
+ connection.datasourceSpecification = dataSourceSpec;
547
+ connection.authenticationStrategy = new V1_TestAuthenticationStrategy();
548
+ const runtime = new V1_EngineRuntime();
549
+ const storeConnections = new V1_StoreConnections();
550
+ storeConnections.store = new V1_PackageableElementPointer(PackageableElementPointerType.STORE, database.path);
551
+ const identifiedConnection = new V1_IdentifiedConnection();
552
+ identifiedConnection.connection = connection;
553
+ identifiedConnection.id = 'c0';
554
+ storeConnections.storeConnections = [identifiedConnection];
555
+ runtime.connections = [storeConnections];
556
+ const packageableRuntime = new V1_PackageableRuntime();
557
+ packageableRuntime.runtimeValue = runtime;
558
+ packageableRuntime.package = packagePath;
559
+ packageableRuntime.name = 'rt';
560
+ const model = new V1_PureModelContextData();
561
+ model.elements = [database, packageableRuntime];
562
+ return {
563
+ model: V1_serializePureModelContextData(model),
564
+ database,
565
+ schema,
566
+ table,
567
+ runtime: packageableRuntime,
568
+ };
392
569
  }
393
570
  // ---------------------------------- APPLICATION ----------------------------------
394
571
  logDebug(message, ...data) {
@@ -1 +1 @@
1
- {"version":3,"file":"LegendDataCubeDataCubeEngine.js","sourceRoot":"","sources":["../../src/stores/LegendDataCubeDataCubeEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LegendDataCubeDataCubeEngine.js","sourceRoot":"","sources":["../../src/stores/LegendDataCubeDataCubeEngine.ts"],"names":[],"mappings":"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"}