@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.
- package/lib/components/builder/LegendDataCubeBuilder.d.ts.map +1 -1
- package/lib/components/builder/LegendDataCubeBuilder.js +4 -1
- package/lib/components/builder/LegendDataCubeBuilder.js.map +1 -1
- package/lib/components/builder/LegendDataCubeCreator.d.ts.map +1 -1
- package/lib/components/builder/LegendDataCubeCreator.js +12 -5
- package/lib/components/builder/LegendDataCubeCreator.js.map +1 -1
- package/lib/components/builder/LegendDataCubeLoader.js +6 -6
- package/lib/components/builder/LegendDataCubeLoader.js.map +1 -1
- package/lib/components/builder/source/AdhocQueryDataCubeSourceBuilder.d.ts.map +1 -1
- package/lib/components/builder/source/AdhocQueryDataCubeSourceBuilder.js +2 -3
- package/lib/components/builder/source/AdhocQueryDataCubeSourceBuilder.js.map +1 -1
- package/lib/components/builder/source/LegendQueryDataCubeSourceBuilder.js +6 -6
- package/lib/components/builder/source/LegendQueryDataCubeSourceBuilder.js.map +1 -1
- package/lib/components/builder/source/LocalFileDataCubeSourceBuilder.d.ts +22 -0
- package/lib/components/builder/source/LocalFileDataCubeSourceBuilder.d.ts.map +1 -0
- package/lib/components/builder/source/LocalFileDataCubeSourceBuilder.js +29 -0
- package/lib/components/builder/source/LocalFileDataCubeSourceBuilder.js.map +1 -0
- package/lib/index.css +1 -1
- package/lib/package.json +3 -3
- package/lib/stores/LegendDataCubeDataCubeEngine.d.ts +5 -3
- package/lib/stores/LegendDataCubeDataCubeEngine.d.ts.map +1 -1
- package/lib/stores/LegendDataCubeDataCubeEngine.js +297 -120
- package/lib/stores/LegendDataCubeDataCubeEngine.js.map +1 -1
- package/lib/stores/{LegendDataCubeCacheManager.d.ts → LegendDataCubeDuckDBEngine.d.ts} +18 -6
- package/lib/stores/LegendDataCubeDuckDBEngine.d.ts.map +1 -0
- package/lib/stores/{LegendDataCubeCacheManager.js → LegendDataCubeDuckDBEngine.js} +81 -39
- package/lib/stores/LegendDataCubeDuckDBEngine.js.map +1 -0
- package/lib/stores/builder/LegendDataCubeBuilderStore.js +2 -2
- package/lib/stores/builder/LegendDataCubeBuilderStore.js.map +1 -1
- package/lib/stores/builder/LegendDataCubeCreatorState.d.ts.map +1 -1
- package/lib/stores/builder/LegendDataCubeCreatorState.js +3 -0
- package/lib/stores/builder/LegendDataCubeCreatorState.js.map +1 -1
- package/lib/stores/builder/source/LegendDataCubeSourceBuilderState.d.ts +5 -1
- package/lib/stores/builder/source/LegendDataCubeSourceBuilderState.d.ts.map +1 -1
- package/lib/stores/builder/source/LegendDataCubeSourceBuilderState.js +4 -1
- package/lib/stores/builder/source/LegendDataCubeSourceBuilderState.js.map +1 -1
- package/lib/stores/builder/source/LegendQueryDataCubeSourceBuilderState.d.ts.map +1 -1
- package/lib/stores/builder/source/LegendQueryDataCubeSourceBuilderState.js +1 -1
- package/lib/stores/builder/source/LegendQueryDataCubeSourceBuilderState.js.map +1 -1
- package/lib/stores/builder/source/LocalFileDataCubeSourceBuilderState.d.ts +38 -0
- package/lib/stores/builder/source/LocalFileDataCubeSourceBuilderState.d.ts.map +1 -0
- package/lib/stores/builder/source/LocalFileDataCubeSourceBuilderState.js +122 -0
- package/lib/stores/builder/source/LocalFileDataCubeSourceBuilderState.js.map +1 -0
- package/lib/stores/model/LocalFileDataCubeSource.d.ts +44 -0
- package/lib/stores/model/LocalFileDataCubeSource.d.ts.map +1 -0
- package/lib/stores/model/LocalFileDataCubeSource.js +57 -0
- package/lib/stores/model/LocalFileDataCubeSource.js.map +1 -0
- package/package.json +13 -13
- package/src/components/builder/LegendDataCubeBuilder.tsx +6 -1
- package/src/components/builder/LegendDataCubeCreator.tsx +23 -6
- package/src/components/builder/LegendDataCubeLoader.tsx +7 -7
- package/src/components/builder/source/AdhocQueryDataCubeSourceBuilder.tsx +2 -3
- package/src/components/builder/source/LegendQueryDataCubeSourceBuilder.tsx +8 -8
- package/src/components/builder/source/LocalFileDataCubeSourceBuilder.tsx +59 -0
- package/src/stores/LegendDataCubeDataCubeEngine.ts +407 -182
- package/src/stores/{LegendDataCubeCacheManager.ts → LegendDataCubeDuckDBEngine.ts} +86 -42
- package/src/stores/builder/LegendDataCubeBuilderStore.tsx +2 -2
- package/src/stores/builder/LegendDataCubeCreatorState.tsx +6 -0
- package/src/stores/builder/source/LegendDataCubeSourceBuilderState.ts +4 -1
- package/src/stores/builder/source/LegendQueryDataCubeSourceBuilderState.ts +3 -1
- package/src/stores/builder/source/LocalFileDataCubeSourceBuilderState.ts +179 -0
- package/src/stores/model/LocalFileDataCubeSource.ts +67 -0
- package/tsconfig.json +4 -1
- package/lib/stores/LegendDataCubeCacheManager.d.ts.map +0 -1
- 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 {
|
|
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
|
-
|
|
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.
|
|
37
|
+
this._duckDBEngine = new LegendDataCubeDuckDBEngine();
|
|
37
38
|
}
|
|
38
|
-
async
|
|
39
|
-
await this.
|
|
39
|
+
async initialize() {
|
|
40
|
+
await this._duckDBEngine.initialize();
|
|
40
41
|
}
|
|
41
|
-
async
|
|
42
|
-
await this.
|
|
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
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
.
|
|
208
|
-
|
|
209
|
-
|
|
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
|
-
|
|
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
|
-
|
|
219
|
-
|
|
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.
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
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
|
-
|
|
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 =
|
|
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.
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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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"}
|