@finos/legend-application-data-cube 0.2.2 → 0.2.4
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/query-builder/LegendDataCubeQuerySaver.d.ts.map +1 -1
- package/lib/components/query-builder/LegendDataCubeQuerySaver.js +3 -1
- package/lib/components/query-builder/LegendDataCubeQuerySaver.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/package.json +2 -1
- package/lib/stores/LegendDataCubeCacheManager.d.ts.map +1 -1
- package/lib/stores/LegendDataCubeCacheManager.js +84 -13
- package/lib/stores/LegendDataCubeCacheManager.js.map +1 -1
- package/lib/stores/LegendDataCubeDataCubeEngine.d.ts +4 -5
- package/lib/stores/LegendDataCubeDataCubeEngine.d.ts.map +1 -1
- package/lib/stores/LegendDataCubeDataCubeEngine.js +93 -69
- package/lib/stores/LegendDataCubeDataCubeEngine.js.map +1 -1
- package/package.json +11 -10
- package/src/components/query-builder/LegendDataCubeQuerySaver.tsx +5 -1
- package/src/stores/LegendDataCubeCacheManager.ts +94 -12
- package/src/stores/LegendDataCubeDataCubeEngine.ts +142 -113
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeQuerySaver.d.ts","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQuerySaver.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAYH,eAAO,MAAM,wBAAwB;;
|
|
1
|
+
{"version":3,"file":"LegendDataCubeQuerySaver.d.ts","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQuerySaver.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAYH,eAAO,MAAM,wBAAwB;;CAyFnC,CAAC"}
|
|
@@ -24,7 +24,9 @@ export const LegendDataCubeQuerySaver = observer(() => {
|
|
|
24
24
|
const store = useLegendDataCubeQueryBuilderStore();
|
|
25
25
|
const builder = guaranteeNonNullable(store.builder);
|
|
26
26
|
useEffect(() => {
|
|
27
|
-
setName(builder.persistentQuery?.name ??
|
|
27
|
+
setName(builder.persistentQuery?.name ??
|
|
28
|
+
builder.query.configuration?.name ??
|
|
29
|
+
DEFAULT_REPORT_NAME);
|
|
28
30
|
}, [builder]);
|
|
29
31
|
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "h-[calc(100%_-_40px)] w-full px-2 pt-2", children: _jsx("div", { className: "h-full w-full overflow-auto border border-neutral-300 bg-white", children: _jsx("div", { className: "h-full w-full select-none p-2", children: _jsxs("div", { className: "flex h-6 w-full items-center", children: [_jsx("div", { className: "flex h-full w-32 flex-shrink-0 items-center text-sm", children: "Name:" }), _jsx(FormTextInput, { className: "w-80", value: name, onChange: (event) => {
|
|
30
32
|
setName(event.target.value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeQuerySaver.js","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQuerySaver.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC,GAAG,EAAE;IACpD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,kCAAkC,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEpD,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,
|
|
1
|
+
{"version":3,"file":"LegendDataCubeQuerySaver.js","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQuerySaver.tsx"],"names":[],"mappings":"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"}
|
package/lib/index.css
CHANGED
package/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@finos/legend-application-data-cube",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "Legend DataCube application core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"legend",
|
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
"@finos/legend-storage": "workspace:*",
|
|
55
55
|
"@types/react": "19.0.8",
|
|
56
56
|
"@types/react-dom": "19.0.3",
|
|
57
|
+
"apache-arrow": "19.0.0",
|
|
57
58
|
"mobx": "6.13.6",
|
|
58
59
|
"mobx-react-lite": "4.1.0",
|
|
59
60
|
"react": "19.0.0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeCacheManager.d.ts","sourceRoot":"","sources":["../../src/stores/LegendDataCubeCacheManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,
|
|
1
|
+
{"version":3,"file":"LegendDataCubeCacheManager.d.ts","sourceRoot":"","sources":["../../src/stores/LegendDataCubeCacheManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,EAIL,kBAAkB,EAGnB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAGpE,qBAAa,kCAAkC;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAU;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAW;IACpD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAK;IAEhC,OAAO,CAAC,SAAS,CAAC,CAAiC;IAEnD,OAAO,KAAK,QAAQ,GAKnB;IAEK,UAAU;IAmCV,KAAK,CAAC,MAAM,EAAE,kBAAkB;;;;;IA8EhC,WAAW,CAAC,GAAG,EAAE,MAAM;IA8EvB,YAAY,CAAC,MAAM,EAAE,oBAAoB;IAOzC,OAAO;CAId"}
|
|
@@ -16,8 +16,9 @@
|
|
|
16
16
|
import * as duckdb from '@duckdb/duckdb-wasm';
|
|
17
17
|
import duckdb_wasm from '@duckdb/duckdb-wasm/dist/duckdb-mvp.wasm';
|
|
18
18
|
import duckdb_wasm_next from '@duckdb/duckdb-wasm/dist/duckdb-eh.wasm';
|
|
19
|
-
import { PRIMITIVE_TYPE, TDSExecutionResult, TDSRow, TabularDataSet, } from '@finos/legend-graph';
|
|
20
|
-
import { assertNonNullable, guaranteeNonNullable } from '@finos/legend-shared';
|
|
19
|
+
import { INTERNAL__TDSColumn, PRIMITIVE_TYPE, TDSBuilder, TDSExecutionResult, TDSRow, TabularDataSet, } from '@finos/legend-graph';
|
|
20
|
+
import { assertNonNullable, guaranteeNonNullable, UnsupportedOperationError, } from '@finos/legend-shared';
|
|
21
|
+
import { Type } from 'apache-arrow';
|
|
21
22
|
export class LegendDataCubeDataCubeCacheManager {
|
|
22
23
|
static DUCKDB_DEFAULT_SCHEMA_NAME = 'main'; // See https://duckdb.org/docs/sql/statements/use.html
|
|
23
24
|
static TABLE_NAME_PREFIX = 'cache';
|
|
@@ -46,7 +47,7 @@ export class LegendDataCubeDataCubeCacheManager {
|
|
|
46
47
|
// Instantiate the asynchronus version of DuckDB-wasm
|
|
47
48
|
assertNonNullable(bundle.mainWorker, `Can't initialize cache manager: DuckDB main worker not initialized`);
|
|
48
49
|
const worker = new Worker(bundle.mainWorker);
|
|
49
|
-
const logger = new duckdb.ConsoleLogger();
|
|
50
|
+
const logger = new duckdb.ConsoleLogger(duckdb.LogLevel.WARNING); // only show warnings and errors
|
|
50
51
|
const database = new duckdb.AsyncDuckDB(logger, worker);
|
|
51
52
|
await database.instantiate(bundle.mainModule, bundle.pthreadWorker);
|
|
52
53
|
this._database = database;
|
|
@@ -70,16 +71,30 @@ export class LegendDataCubeDataCubeCacheManager {
|
|
|
70
71
|
break;
|
|
71
72
|
}
|
|
72
73
|
case PRIMITIVE_TYPE.INTEGER: {
|
|
73
|
-
colType = '
|
|
74
|
+
colType = 'FLOAT';
|
|
74
75
|
break;
|
|
75
76
|
}
|
|
77
|
+
case PRIMITIVE_TYPE.DECIMAL: {
|
|
78
|
+
colType = 'DECIMAL';
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
case PRIMITIVE_TYPE.FLOAT: {
|
|
82
|
+
colType = 'FLOAT';
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
// We don't use type DATE because DuckDB will automatically convert it to a TIMESTAMP
|
|
86
|
+
case PRIMITIVE_TYPE.STRICTDATE:
|
|
87
|
+
case PRIMITIVE_TYPE.DATETIME:
|
|
76
88
|
case PRIMITIVE_TYPE.DATE: {
|
|
77
|
-
colType = '
|
|
89
|
+
colType = 'STRING';
|
|
78
90
|
break;
|
|
79
91
|
}
|
|
80
|
-
case PRIMITIVE_TYPE.STRING:
|
|
81
|
-
default: {
|
|
92
|
+
case PRIMITIVE_TYPE.STRING: {
|
|
82
93
|
colType = 'VARCHAR';
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
default: {
|
|
97
|
+
throw new UnsupportedOperationError(`Can't initialize cache: failed to find matching DuckDB type for Pure type '${col.type}'`);
|
|
83
98
|
}
|
|
84
99
|
}
|
|
85
100
|
columns.push(`"${col.name}" ${colType}`);
|
|
@@ -106,18 +121,74 @@ export class LegendDataCubeDataCubeCacheManager {
|
|
|
106
121
|
}
|
|
107
122
|
async runSQLQuery(sql) {
|
|
108
123
|
const connection = await this.database.connect();
|
|
109
|
-
const result =
|
|
110
|
-
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
124
|
+
const result = await connection.query(sql);
|
|
125
|
+
await connection.close();
|
|
126
|
+
const data = result.toArray();
|
|
127
|
+
const columnNames = result.schema.fields.map((field) => field.name);
|
|
128
|
+
const rows = data.map((row) => {
|
|
129
|
+
const tdsRow = new TDSRow();
|
|
130
|
+
tdsRow.values = columnNames.map((column) => row[column]);
|
|
131
|
+
return tdsRow;
|
|
115
132
|
});
|
|
116
133
|
const tdsExecutionResult = new TDSExecutionResult();
|
|
117
134
|
const tds = new TabularDataSet();
|
|
118
135
|
tds.columns = columnNames;
|
|
119
136
|
tds.rows = rows;
|
|
120
137
|
tdsExecutionResult.result = tds;
|
|
138
|
+
const builder = new TDSBuilder();
|
|
139
|
+
builder.columns = result.schema.fields.map((field) => {
|
|
140
|
+
const col = new INTERNAL__TDSColumn();
|
|
141
|
+
col.name = field.name;
|
|
142
|
+
switch (field.typeId) {
|
|
143
|
+
case Type.Binary: {
|
|
144
|
+
col.type = PRIMITIVE_TYPE.BINARY;
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
case Type.Bool: {
|
|
148
|
+
col.type = PRIMITIVE_TYPE.BOOLEAN;
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
case Type.Date:
|
|
152
|
+
case Type.DateDay:
|
|
153
|
+
case Type.DateMillisecond: {
|
|
154
|
+
col.type = PRIMITIVE_TYPE.DATE;
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
case Type.Utf8:
|
|
158
|
+
case Type.LargeUtf8: {
|
|
159
|
+
col.type = PRIMITIVE_TYPE.STRING;
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
case Type.Decimal: {
|
|
163
|
+
col.type = PRIMITIVE_TYPE.DECIMAL;
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
case Type.Int:
|
|
167
|
+
case Type.Int8:
|
|
168
|
+
case Type.Uint8:
|
|
169
|
+
case Type.Int16:
|
|
170
|
+
case Type.Uint16:
|
|
171
|
+
case Type.Int32:
|
|
172
|
+
case Type.Uint32:
|
|
173
|
+
case Type.Int64:
|
|
174
|
+
case Type.Uint64: {
|
|
175
|
+
col.type = PRIMITIVE_TYPE.INTEGER;
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
case Type.Float:
|
|
179
|
+
case Type.Float16:
|
|
180
|
+
case Type.Float32:
|
|
181
|
+
case Type.Float64: {
|
|
182
|
+
col.type = PRIMITIVE_TYPE.FLOAT;
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
default: {
|
|
186
|
+
throw new UnsupportedOperationError(`Can't find matching Pure type for Arrow type ID '${field.typeId}' ${Type.Utf8}`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return col;
|
|
190
|
+
});
|
|
191
|
+
tdsExecutionResult.builder = builder;
|
|
121
192
|
return tdsExecutionResult;
|
|
122
193
|
}
|
|
123
194
|
async disposeCache(source) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeCacheManager.js","sourceRoot":"","sources":["../../src/stores/LegendDataCubeCacheManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,WAAW,MAAM,0CAA0C,CAAC;AACnE,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AACvE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,MAAM,EACN,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"LegendDataCubeCacheManager.js","sourceRoot":"","sources":["../../src/stores/LegendDataCubeCacheManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { V1_Lambda, type V1_ValueSpecification, type V1_EngineServerClient, V1_PureGraphManager, TDSExecutionResult } from '@finos/legend-graph';
|
|
17
|
-
import { DataCubeEngine, type DataCubeSource, type CompletionItem, type DataCubeExecutionOptions,
|
|
17
|
+
import { DataCubeEngine, type DataCubeSource, type CompletionItem, CachedDataCubeSource, type DataCubeExecutionOptions, type DataCubeCacheInitializationOptions } from '@finos/legend-data-cube';
|
|
18
18
|
import { LogEvent, type PlainObject } from '@finos/legend-shared';
|
|
19
19
|
import type { LegendDataCubeApplicationStore } from './LegendDataCubeBaseStore.js';
|
|
20
20
|
import { type DepotServerClient } from '@finos/legend-server-depot';
|
|
@@ -50,13 +50,12 @@ export declare class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
50
50
|
executionTime: number;
|
|
51
51
|
}>;
|
|
52
52
|
buildExecutionContext(source: DataCubeSource): import("@finos/legend-graph").V1_AppliedFunction | undefined;
|
|
53
|
+
initializeCache(source: DataCubeSource, options?: DataCubeCacheInitializationOptions | undefined): Promise<CachedDataCubeSource | undefined>;
|
|
54
|
+
disposeCache(source: CachedDataCubeSource): Promise<void>;
|
|
53
55
|
private _getQueryRelationType;
|
|
54
56
|
private _getLambdaRelationType;
|
|
55
57
|
private _runQuery;
|
|
56
|
-
private
|
|
57
|
-
initializeCache(source: DataCubeSource): Promise<CachedDataCubeSource | undefined>;
|
|
58
|
-
disposeCache(source: CachedDataCubeSource): Promise<void>;
|
|
59
|
-
private _getColumnType;
|
|
58
|
+
private _generateExecutionPlan;
|
|
60
59
|
logDebug(message: string, ...data: unknown[]): void;
|
|
61
60
|
debugProcess(processName: string, ...data: [string, unknown][]): void;
|
|
62
61
|
logInfo(event: LogEvent, ...data: unknown[]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeDataCubeEngine.d.ts","sourceRoot":"","sources":["../../src/stores/LegendDataCubeDataCubeEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,SAAS,EACT,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,mBAAmB,EAKnB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"LegendDataCubeDataCubeEngine.d.ts","sourceRoot":"","sources":["../../src/stores/LegendDataCubeDataCubeEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@
|
|
|
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,
|
|
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_Double, 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_Decimal, V1_Float, PackageableElementPointerType, DatabaseType, PRIMITIVE_TYPE, } from '@finos/legend-graph';
|
|
17
17
|
import { _elementPtr, DataCubeEngine, _function, DataCubeFunction, AdhocQueryDataCubeSource, ADHOC_QUERY_DATA_CUBE_SOURCE_TYPE, RawAdhocQueryDataCubeSource, _lambda, _defaultPrimitiveTypeValue, CachedDataCubeSource, } from '@finos/legend-data-cube';
|
|
18
18
|
import { isNonNullable, LogEvent, UnsupportedOperationError, assertErrorThrown, NetworkClientError, HttpStatus, at, assertType, guaranteeType, guaranteeNonNullable, filterByType, } from '@finos/legend-shared';
|
|
19
19
|
import { LegendDataCubeDataCubeCacheManager } from './LegendDataCubeCacheManager.js';
|
|
@@ -195,7 +195,13 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
195
195
|
}
|
|
196
196
|
else if (source instanceof CachedDataCubeSource) {
|
|
197
197
|
// get the execute plan to extract the generated SQL to run against cached DB
|
|
198
|
-
const executionPlan = await this.
|
|
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 });
|
|
199
205
|
const sql = guaranteeNonNullable(executionPlan instanceof V1_SimpleExecutionPlan
|
|
200
206
|
? executionPlan.rootExecutionNode.executionNodes
|
|
201
207
|
.filter(filterByType(V1_SQLExecutionNode))
|
|
@@ -240,58 +246,11 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
240
246
|
}
|
|
241
247
|
return undefined;
|
|
242
248
|
}
|
|
243
|
-
// ---------------------------------- UTILITIES ----------------------------------
|
|
244
|
-
async _getQueryRelationType(query, source) {
|
|
245
|
-
if (source instanceof AdhocQueryDataCubeSource) {
|
|
246
|
-
return this._getLambdaRelationType(query, source.model);
|
|
247
|
-
}
|
|
248
|
-
else if (source instanceof LegendQueryDataCubeSource) {
|
|
249
|
-
return this._getLambdaRelationType(query, source.model);
|
|
250
|
-
}
|
|
251
|
-
else if (source instanceof CachedDataCubeSource) {
|
|
252
|
-
return this._getLambdaRelationType(query, serialize(source.model));
|
|
253
|
-
}
|
|
254
|
-
throw new UnsupportedOperationError(`Can't get relation type for lambda with unsupported source`);
|
|
255
|
-
}
|
|
256
|
-
async _getLambdaRelationType(lambda, model) {
|
|
257
|
-
const relationType = deserialize(V1_relationTypeModelSchema, await this._engineServerClient.lambdaRelationType({
|
|
258
|
-
lambda,
|
|
259
|
-
model,
|
|
260
|
-
}));
|
|
261
|
-
return {
|
|
262
|
-
columns: relationType.columns.map((column) => ({
|
|
263
|
-
name: column.name,
|
|
264
|
-
type: V1_getGenericTypeFullPath(column.genericType),
|
|
265
|
-
})),
|
|
266
|
-
};
|
|
267
|
-
}
|
|
268
|
-
async _runQuery(query, model, parameterValues, options) {
|
|
269
|
-
return V1_buildExecutionResult(V1_deserializeExecutionResult((await this._engineServerClient.runQuery({
|
|
270
|
-
clientVersion: options?.clientVersion ??
|
|
271
|
-
// eslint-disable-next-line no-process-env
|
|
272
|
-
(process.env.NODE_ENV === 'development'
|
|
273
|
-
? PureClientVersion.VX_X_X
|
|
274
|
-
: undefined),
|
|
275
|
-
function: this.serializeValueSpecification(query),
|
|
276
|
-
model,
|
|
277
|
-
context: serialize(V1_rawBaseExecutionContextModelSchema, new V1_RawBaseExecutionContext()),
|
|
278
|
-
parameterValues: (parameterValues ?? []).map((parameterValue) => serialize(V1_parameterValueModelSchema, parameterValue)),
|
|
279
|
-
}))));
|
|
280
|
-
}
|
|
281
|
-
async generateExecutionPlan(query, model, parameterValues, options) {
|
|
282
|
-
return V1_deserializeExecutionPlan(await this._engineServerClient.generatePlan({
|
|
283
|
-
clientVersion: PureClientVersion.VX_X_X,
|
|
284
|
-
function: this.serializeValueSpecification(query),
|
|
285
|
-
model: serialize(model),
|
|
286
|
-
context: serialize(V1_rawBaseExecutionContextModelSchema, new V1_RawBaseExecutionContext()),
|
|
287
|
-
parameterValues: (parameterValues ?? []).map((parameterValue) => serialize(V1_parameterValueModelSchema, parameterValue)),
|
|
288
|
-
}));
|
|
289
|
-
}
|
|
290
249
|
// ---------------------------------- CACHING --------------------------------------
|
|
291
|
-
async initializeCache(source) {
|
|
250
|
+
async initializeCache(source, options) {
|
|
292
251
|
const cacheQuery = guaranteeNonNullable(this.buildExecutionContext(source), `Can't initialize cache: failed to build cache query`);
|
|
293
252
|
cacheQuery.parameters.unshift(source.query);
|
|
294
|
-
const result = await this.executeQuery(_lambda([], [cacheQuery]), source,
|
|
253
|
+
const result = await this.executeQuery(_lambda([], [cacheQuery]), source, options);
|
|
295
254
|
const { schema: schemaName, table: tableName, rowCount, } = await this._cacheManager.cache(result.result);
|
|
296
255
|
// model
|
|
297
256
|
const pacakgePath = 'local';
|
|
@@ -300,7 +259,41 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
300
259
|
table.columns = result.result.builder.columns.map((col) => {
|
|
301
260
|
const column = new V1_Column();
|
|
302
261
|
column.name = col.name;
|
|
303
|
-
|
|
262
|
+
switch (col.type) {
|
|
263
|
+
case PRIMITIVE_TYPE.BOOLEAN: {
|
|
264
|
+
column.type = new V1_Bit();
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
case PRIMITIVE_TYPE.NUMBER: {
|
|
268
|
+
column.type = new V1_Double();
|
|
269
|
+
break;
|
|
270
|
+
}
|
|
271
|
+
case PRIMITIVE_TYPE.INTEGER: {
|
|
272
|
+
column.type = new V1_Integer();
|
|
273
|
+
break;
|
|
274
|
+
}
|
|
275
|
+
case PRIMITIVE_TYPE.FLOAT: {
|
|
276
|
+
column.type = new V1_Float();
|
|
277
|
+
break;
|
|
278
|
+
}
|
|
279
|
+
case PRIMITIVE_TYPE.DECIMAL: {
|
|
280
|
+
column.type = new V1_Decimal();
|
|
281
|
+
break;
|
|
282
|
+
}
|
|
283
|
+
case PRIMITIVE_TYPE.DATE:
|
|
284
|
+
case PRIMITIVE_TYPE.STRICTDATE:
|
|
285
|
+
case PRIMITIVE_TYPE.DATETIME: {
|
|
286
|
+
column.type = new V1_Date();
|
|
287
|
+
break;
|
|
288
|
+
}
|
|
289
|
+
case PRIMITIVE_TYPE.STRING: {
|
|
290
|
+
column.type = new V1_VarChar();
|
|
291
|
+
break;
|
|
292
|
+
}
|
|
293
|
+
default: {
|
|
294
|
+
throw new UnsupportedOperationError(`Can't initialize cache: failed to find matching relational data type for Pure type '${col.type}' when synthesizing table definition`);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
304
297
|
return column;
|
|
305
298
|
});
|
|
306
299
|
const schema = new V1_Schema();
|
|
@@ -352,25 +345,56 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
352
345
|
async disposeCache(source) {
|
|
353
346
|
await this._cacheManager.disposeCache(source);
|
|
354
347
|
}
|
|
355
|
-
//
|
|
356
|
-
|
|
357
|
-
if (
|
|
358
|
-
|
|
348
|
+
// ---------------------------------- UTILITIES ----------------------------------
|
|
349
|
+
async _getQueryRelationType(query, source) {
|
|
350
|
+
if (source instanceof AdhocQueryDataCubeSource) {
|
|
351
|
+
return this._getLambdaRelationType(query, source.model);
|
|
359
352
|
}
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
case 'date':
|
|
366
|
-
return new V1_Date();
|
|
367
|
-
case 'boolean':
|
|
368
|
-
return new V1_Binary();
|
|
369
|
-
case 'number':
|
|
370
|
-
return new V1_Double();
|
|
371
|
-
default:
|
|
372
|
-
return new V1_VarChar();
|
|
353
|
+
else if (source instanceof LegendQueryDataCubeSource) {
|
|
354
|
+
return this._getLambdaRelationType(query, source.model);
|
|
355
|
+
}
|
|
356
|
+
else if (source instanceof CachedDataCubeSource) {
|
|
357
|
+
return this._getLambdaRelationType(query, serialize(source.model));
|
|
373
358
|
}
|
|
359
|
+
throw new UnsupportedOperationError(`Can't get relation type for lambda with unsupported source`);
|
|
360
|
+
}
|
|
361
|
+
async _getLambdaRelationType(lambda, model) {
|
|
362
|
+
const relationType = deserialize(V1_relationTypeModelSchema, await this._engineServerClient.lambdaRelationType({
|
|
363
|
+
lambda,
|
|
364
|
+
model,
|
|
365
|
+
}));
|
|
366
|
+
return {
|
|
367
|
+
columns: relationType.columns.map((column) => ({
|
|
368
|
+
name: column.name,
|
|
369
|
+
type: V1_getGenericTypeFullPath(column.genericType),
|
|
370
|
+
})),
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
async _runQuery(query, model, parameterValues, options) {
|
|
374
|
+
return V1_buildExecutionResult(V1_deserializeExecutionResult((await this._engineServerClient.runQuery({
|
|
375
|
+
clientVersion: options?.clientVersion ??
|
|
376
|
+
// eslint-disable-next-line no-process-env
|
|
377
|
+
(process.env.NODE_ENV === 'development'
|
|
378
|
+
? PureClientVersion.VX_X_X
|
|
379
|
+
: undefined),
|
|
380
|
+
function: this.serializeValueSpecification(query),
|
|
381
|
+
model,
|
|
382
|
+
context: serialize(V1_rawBaseExecutionContextModelSchema, new V1_RawBaseExecutionContext()),
|
|
383
|
+
parameterValues: (parameterValues ?? []).map((parameterValue) => serialize(V1_parameterValueModelSchema, parameterValue)),
|
|
384
|
+
}))));
|
|
385
|
+
}
|
|
386
|
+
async _generateExecutionPlan(query, model, parameterValues, options) {
|
|
387
|
+
return V1_deserializeExecutionPlan(await this._engineServerClient.generatePlan({
|
|
388
|
+
clientVersion: options?.clientVersion ??
|
|
389
|
+
// eslint-disable-next-line no-process-env
|
|
390
|
+
(process.env.NODE_ENV === 'development'
|
|
391
|
+
? PureClientVersion.VX_X_X
|
|
392
|
+
: undefined),
|
|
393
|
+
function: this.serializeValueSpecification(query),
|
|
394
|
+
model: serialize(model),
|
|
395
|
+
context: serialize(V1_rawBaseExecutionContextModelSchema, new V1_RawBaseExecutionContext()),
|
|
396
|
+
parameterValues: (parameterValues ?? []).map((parameterValue) => serialize(V1_parameterValueModelSchema, parameterValue)),
|
|
397
|
+
}));
|
|
374
398
|
}
|
|
375
399
|
// ---------------------------------- APPLICATION ----------------------------------
|
|
376
400
|
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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@finos/legend-application-data-cube",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "Legend DataCube application core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"legend",
|
|
@@ -43,17 +43,18 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@duckdb/duckdb-wasm": "1.29.0",
|
|
46
|
-
"@finos/legend-application": "16.0.
|
|
47
|
-
"@finos/legend-art": "7.1.
|
|
48
|
-
"@finos/legend-code-editor": "2.0.
|
|
49
|
-
"@finos/legend-data-cube": "0.1.
|
|
50
|
-
"@finos/legend-graph": "32.1.
|
|
51
|
-
"@finos/legend-query-builder": "4.16.
|
|
52
|
-
"@finos/legend-server-depot": "6.0.
|
|
53
|
-
"@finos/legend-shared": "11.0.
|
|
54
|
-
"@finos/legend-storage": "3.0.
|
|
46
|
+
"@finos/legend-application": "16.0.24",
|
|
47
|
+
"@finos/legend-art": "7.1.81",
|
|
48
|
+
"@finos/legend-code-editor": "2.0.44",
|
|
49
|
+
"@finos/legend-data-cube": "0.1.3",
|
|
50
|
+
"@finos/legend-graph": "32.1.2",
|
|
51
|
+
"@finos/legend-query-builder": "4.16.3",
|
|
52
|
+
"@finos/legend-server-depot": "6.0.80",
|
|
53
|
+
"@finos/legend-shared": "11.0.3",
|
|
54
|
+
"@finos/legend-storage": "3.0.122",
|
|
55
55
|
"@types/react": "19.0.8",
|
|
56
56
|
"@types/react-dom": "19.0.3",
|
|
57
|
+
"apache-arrow": "19.0.0",
|
|
57
58
|
"mobx": "6.13.6",
|
|
58
59
|
"mobx-react-lite": "4.1.0",
|
|
59
60
|
"react": "19.0.0",
|
|
@@ -30,7 +30,11 @@ export const LegendDataCubeQuerySaver = observer(() => {
|
|
|
30
30
|
const builder = guaranteeNonNullable(store.builder);
|
|
31
31
|
|
|
32
32
|
useEffect(() => {
|
|
33
|
-
setName(
|
|
33
|
+
setName(
|
|
34
|
+
builder.persistentQuery?.name ??
|
|
35
|
+
builder.query.configuration?.name ??
|
|
36
|
+
DEFAULT_REPORT_NAME,
|
|
37
|
+
);
|
|
34
38
|
}, [builder]);
|
|
35
39
|
|
|
36
40
|
return (
|
|
@@ -18,13 +18,20 @@ import * as duckdb from '@duckdb/duckdb-wasm';
|
|
|
18
18
|
import duckdb_wasm from '@duckdb/duckdb-wasm/dist/duckdb-mvp.wasm';
|
|
19
19
|
import duckdb_wasm_next from '@duckdb/duckdb-wasm/dist/duckdb-eh.wasm';
|
|
20
20
|
import {
|
|
21
|
+
INTERNAL__TDSColumn,
|
|
21
22
|
PRIMITIVE_TYPE,
|
|
23
|
+
TDSBuilder,
|
|
22
24
|
TDSExecutionResult,
|
|
23
25
|
TDSRow,
|
|
24
26
|
TabularDataSet,
|
|
25
27
|
} from '@finos/legend-graph';
|
|
26
|
-
import {
|
|
28
|
+
import {
|
|
29
|
+
assertNonNullable,
|
|
30
|
+
guaranteeNonNullable,
|
|
31
|
+
UnsupportedOperationError,
|
|
32
|
+
} from '@finos/legend-shared';
|
|
27
33
|
import type { CachedDataCubeSource } from '@finos/legend-data-cube';
|
|
34
|
+
import { Type } from 'apache-arrow';
|
|
28
35
|
|
|
29
36
|
export class LegendDataCubeDataCubeCacheManager {
|
|
30
37
|
private static readonly DUCKDB_DEFAULT_SCHEMA_NAME = 'main'; // See https://duckdb.org/docs/sql/statements/use.html
|
|
@@ -69,7 +76,7 @@ export class LegendDataCubeDataCubeCacheManager {
|
|
|
69
76
|
`Can't initialize cache manager: DuckDB main worker not initialized`,
|
|
70
77
|
);
|
|
71
78
|
const worker = new Worker(bundle.mainWorker);
|
|
72
|
-
const logger = new duckdb.ConsoleLogger();
|
|
79
|
+
const logger = new duckdb.ConsoleLogger(duckdb.LogLevel.WARNING); // only show warnings and errors
|
|
73
80
|
const database = new duckdb.AsyncDuckDB(logger, worker);
|
|
74
81
|
await database.instantiate(bundle.mainModule, bundle.pthreadWorker);
|
|
75
82
|
this._database = database;
|
|
@@ -97,16 +104,32 @@ export class LegendDataCubeDataCubeCacheManager {
|
|
|
97
104
|
break;
|
|
98
105
|
}
|
|
99
106
|
case PRIMITIVE_TYPE.INTEGER: {
|
|
100
|
-
colType = '
|
|
107
|
+
colType = 'FLOAT';
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
case PRIMITIVE_TYPE.DECIMAL: {
|
|
111
|
+
colType = 'DECIMAL';
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
case PRIMITIVE_TYPE.FLOAT: {
|
|
115
|
+
colType = 'FLOAT';
|
|
101
116
|
break;
|
|
102
117
|
}
|
|
118
|
+
// We don't use type DATE because DuckDB will automatically convert it to a TIMESTAMP
|
|
119
|
+
case PRIMITIVE_TYPE.STRICTDATE:
|
|
120
|
+
case PRIMITIVE_TYPE.DATETIME:
|
|
103
121
|
case PRIMITIVE_TYPE.DATE: {
|
|
104
|
-
colType = '
|
|
122
|
+
colType = 'STRING';
|
|
105
123
|
break;
|
|
106
124
|
}
|
|
107
|
-
case PRIMITIVE_TYPE.STRING:
|
|
108
|
-
default: {
|
|
125
|
+
case PRIMITIVE_TYPE.STRING: {
|
|
109
126
|
colType = 'VARCHAR';
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
default: {
|
|
130
|
+
throw new UnsupportedOperationError(
|
|
131
|
+
`Can't initialize cache: failed to find matching DuckDB type for Pure type '${col.type}'`,
|
|
132
|
+
);
|
|
110
133
|
}
|
|
111
134
|
}
|
|
112
135
|
columns.push(`"${col.name}" ${colType}`);
|
|
@@ -139,20 +162,79 @@ export class LegendDataCubeDataCubeCacheManager {
|
|
|
139
162
|
|
|
140
163
|
async runSQLQuery(sql: string) {
|
|
141
164
|
const connection = await this.database.connect();
|
|
142
|
-
const result =
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
165
|
+
const result = await connection.query(sql);
|
|
166
|
+
await connection.close();
|
|
167
|
+
|
|
168
|
+
const data = result.toArray();
|
|
169
|
+
const columnNames = result.schema.fields.map((field) => field.name);
|
|
170
|
+
const rows = data.map((row) => {
|
|
171
|
+
const tdsRow = new TDSRow();
|
|
172
|
+
tdsRow.values = columnNames.map(
|
|
147
173
|
(column) => row[column] as string | number | boolean | null,
|
|
148
174
|
);
|
|
149
|
-
return
|
|
175
|
+
return tdsRow;
|
|
150
176
|
});
|
|
151
177
|
const tdsExecutionResult = new TDSExecutionResult();
|
|
152
178
|
const tds = new TabularDataSet();
|
|
153
179
|
tds.columns = columnNames;
|
|
154
180
|
tds.rows = rows;
|
|
155
181
|
tdsExecutionResult.result = tds;
|
|
182
|
+
const builder = new TDSBuilder();
|
|
183
|
+
builder.columns = result.schema.fields.map((field) => {
|
|
184
|
+
const col = new INTERNAL__TDSColumn();
|
|
185
|
+
col.name = field.name;
|
|
186
|
+
switch (field.typeId) {
|
|
187
|
+
case Type.Binary: {
|
|
188
|
+
col.type = PRIMITIVE_TYPE.BINARY;
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
case Type.Bool: {
|
|
192
|
+
col.type = PRIMITIVE_TYPE.BOOLEAN;
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
case Type.Date:
|
|
196
|
+
case Type.DateDay:
|
|
197
|
+
case Type.DateMillisecond: {
|
|
198
|
+
col.type = PRIMITIVE_TYPE.DATE;
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
case Type.Utf8:
|
|
202
|
+
case Type.LargeUtf8: {
|
|
203
|
+
col.type = PRIMITIVE_TYPE.STRING;
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
case Type.Decimal: {
|
|
207
|
+
col.type = PRIMITIVE_TYPE.DECIMAL;
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
case Type.Int:
|
|
211
|
+
case Type.Int8:
|
|
212
|
+
case Type.Uint8:
|
|
213
|
+
case Type.Int16:
|
|
214
|
+
case Type.Uint16:
|
|
215
|
+
case Type.Int32:
|
|
216
|
+
case Type.Uint32:
|
|
217
|
+
case Type.Int64:
|
|
218
|
+
case Type.Uint64: {
|
|
219
|
+
col.type = PRIMITIVE_TYPE.INTEGER;
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
case Type.Float:
|
|
223
|
+
case Type.Float16:
|
|
224
|
+
case Type.Float32:
|
|
225
|
+
case Type.Float64: {
|
|
226
|
+
col.type = PRIMITIVE_TYPE.FLOAT;
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
default: {
|
|
230
|
+
throw new UnsupportedOperationError(
|
|
231
|
+
`Can't find matching Pure type for Arrow type ID '${field.typeId}' ${Type.Utf8}`,
|
|
232
|
+
);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return col;
|
|
236
|
+
});
|
|
237
|
+
tdsExecutionResult.builder = builder;
|
|
156
238
|
return tdsExecutionResult;
|
|
157
239
|
}
|
|
158
240
|
|
|
@@ -48,7 +48,6 @@ import {
|
|
|
48
48
|
V1_deserializeExecutionPlan,
|
|
49
49
|
V1_SQLExecutionNode,
|
|
50
50
|
V1_SimpleExecutionPlan,
|
|
51
|
-
V1_Binary,
|
|
52
51
|
V1_ClassInstance,
|
|
53
52
|
V1_ClassInstanceType,
|
|
54
53
|
V1_Column,
|
|
@@ -63,15 +62,18 @@ import {
|
|
|
63
62
|
V1_PackageableRuntime,
|
|
64
63
|
V1_PureModelContextData,
|
|
65
64
|
V1_RelationStoreAccessor,
|
|
66
|
-
type V1_RelationalDataType,
|
|
67
65
|
V1_RelationalDatabaseConnection,
|
|
68
66
|
V1_Schema,
|
|
69
67
|
V1_StoreConnections,
|
|
70
68
|
V1_Table,
|
|
71
69
|
V1_TestAuthenticationStrategy,
|
|
72
70
|
V1_VarChar,
|
|
71
|
+
V1_Bit,
|
|
72
|
+
V1_Decimal,
|
|
73
|
+
V1_Float,
|
|
73
74
|
PackageableElementPointerType,
|
|
74
75
|
DatabaseType,
|
|
76
|
+
PRIMITIVE_TYPE,
|
|
75
77
|
} from '@finos/legend-graph';
|
|
76
78
|
import {
|
|
77
79
|
_elementPtr,
|
|
@@ -85,8 +87,9 @@ import {
|
|
|
85
87
|
RawAdhocQueryDataCubeSource,
|
|
86
88
|
_lambda,
|
|
87
89
|
_defaultPrimitiveTypeValue,
|
|
88
|
-
type DataCubeExecutionOptions,
|
|
89
90
|
CachedDataCubeSource,
|
|
91
|
+
type DataCubeExecutionOptions,
|
|
92
|
+
type DataCubeCacheInitializationOptions,
|
|
90
93
|
} from '@finos/legend-data-cube';
|
|
91
94
|
import {
|
|
92
95
|
isNonNullable,
|
|
@@ -430,11 +433,16 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
430
433
|
);
|
|
431
434
|
} else if (source instanceof CachedDataCubeSource) {
|
|
432
435
|
// get the execute plan to extract the generated SQL to run against cached DB
|
|
433
|
-
const executionPlan = await this.
|
|
436
|
+
const executionPlan = await this._generateExecutionPlan(
|
|
434
437
|
query,
|
|
435
438
|
source.model,
|
|
436
439
|
[],
|
|
437
|
-
|
|
440
|
+
// NOTE: for caching, we're using DuckDB, but its protocol models
|
|
441
|
+
// are not available in the latest production protocol version V1_33_0, so
|
|
442
|
+
// we have to force using VX_X_X
|
|
443
|
+
// once we either cut another protocol version or backport the DuckDB models
|
|
444
|
+
// to V1_33_0, we will can remove this
|
|
445
|
+
{ ...options, clientVersion: PureClientVersion.VX_X_X },
|
|
438
446
|
);
|
|
439
447
|
const sql = guaranteeNonNullable(
|
|
440
448
|
executionPlan instanceof V1_SimpleExecutionPlan
|
|
@@ -500,98 +508,11 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
500
508
|
return undefined;
|
|
501
509
|
}
|
|
502
510
|
|
|
503
|
-
// ---------------------------------- UTILITIES ----------------------------------
|
|
504
|
-
|
|
505
|
-
private async _getQueryRelationType(
|
|
506
|
-
query: PlainObject<V1_Lambda>,
|
|
507
|
-
source: DataCubeSource,
|
|
508
|
-
) {
|
|
509
|
-
if (source instanceof AdhocQueryDataCubeSource) {
|
|
510
|
-
return this._getLambdaRelationType(query, source.model);
|
|
511
|
-
} else if (source instanceof LegendQueryDataCubeSource) {
|
|
512
|
-
return this._getLambdaRelationType(query, source.model);
|
|
513
|
-
} else if (source instanceof CachedDataCubeSource) {
|
|
514
|
-
return this._getLambdaRelationType(query, serialize(source.model));
|
|
515
|
-
}
|
|
516
|
-
throw new UnsupportedOperationError(
|
|
517
|
-
`Can't get relation type for lambda with unsupported source`,
|
|
518
|
-
);
|
|
519
|
-
}
|
|
520
|
-
|
|
521
|
-
private async _getLambdaRelationType(
|
|
522
|
-
lambda: PlainObject<V1_Lambda>,
|
|
523
|
-
model: PlainObject<V1_PureModelContext>,
|
|
524
|
-
) {
|
|
525
|
-
const relationType = deserialize(
|
|
526
|
-
V1_relationTypeModelSchema,
|
|
527
|
-
await this._engineServerClient.lambdaRelationType({
|
|
528
|
-
lambda,
|
|
529
|
-
model,
|
|
530
|
-
}),
|
|
531
|
-
);
|
|
532
|
-
return {
|
|
533
|
-
columns: relationType.columns.map((column) => ({
|
|
534
|
-
name: column.name,
|
|
535
|
-
type: V1_getGenericTypeFullPath(column.genericType),
|
|
536
|
-
})),
|
|
537
|
-
};
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
private async _runQuery(
|
|
541
|
-
query: V1_Lambda,
|
|
542
|
-
model: PlainObject<V1_PureModelContext>,
|
|
543
|
-
parameterValues?: V1_ParameterValue[] | undefined,
|
|
544
|
-
options?: DataCubeExecutionOptions | undefined,
|
|
545
|
-
): Promise<ExecutionResult> {
|
|
546
|
-
return V1_buildExecutionResult(
|
|
547
|
-
V1_deserializeExecutionResult(
|
|
548
|
-
(await this._engineServerClient.runQuery({
|
|
549
|
-
clientVersion:
|
|
550
|
-
options?.clientVersion ??
|
|
551
|
-
// eslint-disable-next-line no-process-env
|
|
552
|
-
(process.env.NODE_ENV === 'development'
|
|
553
|
-
? PureClientVersion.VX_X_X
|
|
554
|
-
: undefined),
|
|
555
|
-
function: this.serializeValueSpecification(query),
|
|
556
|
-
model,
|
|
557
|
-
context: serialize(
|
|
558
|
-
V1_rawBaseExecutionContextModelSchema,
|
|
559
|
-
new V1_RawBaseExecutionContext(),
|
|
560
|
-
),
|
|
561
|
-
parameterValues: (parameterValues ?? []).map((parameterValue) =>
|
|
562
|
-
serialize(V1_parameterValueModelSchema, parameterValue),
|
|
563
|
-
),
|
|
564
|
-
})) as PlainObject<V1_ExecutionResult>,
|
|
565
|
-
),
|
|
566
|
-
);
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
private async generateExecutionPlan(
|
|
570
|
-
query: V1_Lambda,
|
|
571
|
-
model: V1_PureModelContext,
|
|
572
|
-
parameterValues?: V1_ParameterValue[] | undefined,
|
|
573
|
-
options?: DataCubeExecutionOptions | undefined,
|
|
574
|
-
): Promise<V1_ExecutionPlan> {
|
|
575
|
-
return V1_deserializeExecutionPlan(
|
|
576
|
-
await this._engineServerClient.generatePlan({
|
|
577
|
-
clientVersion: PureClientVersion.VX_X_X,
|
|
578
|
-
function: this.serializeValueSpecification(query),
|
|
579
|
-
model: serialize(model),
|
|
580
|
-
context: serialize(
|
|
581
|
-
V1_rawBaseExecutionContextModelSchema,
|
|
582
|
-
new V1_RawBaseExecutionContext(),
|
|
583
|
-
),
|
|
584
|
-
parameterValues: (parameterValues ?? []).map((parameterValue) =>
|
|
585
|
-
serialize(V1_parameterValueModelSchema, parameterValue),
|
|
586
|
-
),
|
|
587
|
-
}),
|
|
588
|
-
);
|
|
589
|
-
}
|
|
590
|
-
|
|
591
511
|
// ---------------------------------- CACHING --------------------------------------
|
|
592
512
|
|
|
593
513
|
override async initializeCache(
|
|
594
514
|
source: DataCubeSource,
|
|
515
|
+
options?: DataCubeCacheInitializationOptions | undefined,
|
|
595
516
|
): Promise<CachedDataCubeSource | undefined> {
|
|
596
517
|
const cacheQuery = guaranteeNonNullable(
|
|
597
518
|
this.buildExecutionContext(source),
|
|
@@ -601,7 +522,7 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
601
522
|
const result = await this.executeQuery(
|
|
602
523
|
_lambda([], [cacheQuery]),
|
|
603
524
|
source,
|
|
604
|
-
|
|
525
|
+
options,
|
|
605
526
|
);
|
|
606
527
|
const {
|
|
607
528
|
schema: schemaName,
|
|
@@ -617,7 +538,43 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
617
538
|
table.columns = result.result.builder.columns.map((col) => {
|
|
618
539
|
const column = new V1_Column();
|
|
619
540
|
column.name = col.name;
|
|
620
|
-
|
|
541
|
+
switch (col.type as string) {
|
|
542
|
+
case PRIMITIVE_TYPE.BOOLEAN: {
|
|
543
|
+
column.type = new V1_Bit();
|
|
544
|
+
break;
|
|
545
|
+
}
|
|
546
|
+
case PRIMITIVE_TYPE.NUMBER: {
|
|
547
|
+
column.type = new V1_Double();
|
|
548
|
+
break;
|
|
549
|
+
}
|
|
550
|
+
case PRIMITIVE_TYPE.INTEGER: {
|
|
551
|
+
column.type = new V1_Integer();
|
|
552
|
+
break;
|
|
553
|
+
}
|
|
554
|
+
case PRIMITIVE_TYPE.FLOAT: {
|
|
555
|
+
column.type = new V1_Float();
|
|
556
|
+
break;
|
|
557
|
+
}
|
|
558
|
+
case PRIMITIVE_TYPE.DECIMAL: {
|
|
559
|
+
column.type = new V1_Decimal();
|
|
560
|
+
break;
|
|
561
|
+
}
|
|
562
|
+
case PRIMITIVE_TYPE.DATE:
|
|
563
|
+
case PRIMITIVE_TYPE.STRICTDATE:
|
|
564
|
+
case PRIMITIVE_TYPE.DATETIME: {
|
|
565
|
+
column.type = new V1_Date();
|
|
566
|
+
break;
|
|
567
|
+
}
|
|
568
|
+
case PRIMITIVE_TYPE.STRING: {
|
|
569
|
+
column.type = new V1_VarChar();
|
|
570
|
+
break;
|
|
571
|
+
}
|
|
572
|
+
default: {
|
|
573
|
+
throw new UnsupportedOperationError(
|
|
574
|
+
`Can't initialize cache: failed to find matching relational data type for Pure type '${col.type}' when synthesizing table definition`,
|
|
575
|
+
);
|
|
576
|
+
}
|
|
577
|
+
}
|
|
621
578
|
return column;
|
|
622
579
|
});
|
|
623
580
|
|
|
@@ -681,25 +638,97 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
681
638
|
await this._cacheManager.disposeCache(source);
|
|
682
639
|
}
|
|
683
640
|
|
|
684
|
-
//
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
case 'boolean':
|
|
697
|
-
return new V1_Binary();
|
|
698
|
-
case 'number':
|
|
699
|
-
return new V1_Double();
|
|
700
|
-
default:
|
|
701
|
-
return new V1_VarChar();
|
|
641
|
+
// ---------------------------------- UTILITIES ----------------------------------
|
|
642
|
+
|
|
643
|
+
private async _getQueryRelationType(
|
|
644
|
+
query: PlainObject<V1_Lambda>,
|
|
645
|
+
source: DataCubeSource,
|
|
646
|
+
) {
|
|
647
|
+
if (source instanceof AdhocQueryDataCubeSource) {
|
|
648
|
+
return this._getLambdaRelationType(query, source.model);
|
|
649
|
+
} else if (source instanceof LegendQueryDataCubeSource) {
|
|
650
|
+
return this._getLambdaRelationType(query, source.model);
|
|
651
|
+
} else if (source instanceof CachedDataCubeSource) {
|
|
652
|
+
return this._getLambdaRelationType(query, serialize(source.model));
|
|
702
653
|
}
|
|
654
|
+
throw new UnsupportedOperationError(
|
|
655
|
+
`Can't get relation type for lambda with unsupported source`,
|
|
656
|
+
);
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
private async _getLambdaRelationType(
|
|
660
|
+
lambda: PlainObject<V1_Lambda>,
|
|
661
|
+
model: PlainObject<V1_PureModelContext>,
|
|
662
|
+
) {
|
|
663
|
+
const relationType = deserialize(
|
|
664
|
+
V1_relationTypeModelSchema,
|
|
665
|
+
await this._engineServerClient.lambdaRelationType({
|
|
666
|
+
lambda,
|
|
667
|
+
model,
|
|
668
|
+
}),
|
|
669
|
+
);
|
|
670
|
+
return {
|
|
671
|
+
columns: relationType.columns.map((column) => ({
|
|
672
|
+
name: column.name,
|
|
673
|
+
type: V1_getGenericTypeFullPath(column.genericType),
|
|
674
|
+
})),
|
|
675
|
+
};
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
private async _runQuery(
|
|
679
|
+
query: V1_Lambda,
|
|
680
|
+
model: PlainObject<V1_PureModelContext>,
|
|
681
|
+
parameterValues?: V1_ParameterValue[] | undefined,
|
|
682
|
+
options?: DataCubeExecutionOptions | undefined,
|
|
683
|
+
): Promise<ExecutionResult> {
|
|
684
|
+
return V1_buildExecutionResult(
|
|
685
|
+
V1_deserializeExecutionResult(
|
|
686
|
+
(await this._engineServerClient.runQuery({
|
|
687
|
+
clientVersion:
|
|
688
|
+
options?.clientVersion ??
|
|
689
|
+
// eslint-disable-next-line no-process-env
|
|
690
|
+
(process.env.NODE_ENV === 'development'
|
|
691
|
+
? PureClientVersion.VX_X_X
|
|
692
|
+
: undefined),
|
|
693
|
+
function: this.serializeValueSpecification(query),
|
|
694
|
+
model,
|
|
695
|
+
context: serialize(
|
|
696
|
+
V1_rawBaseExecutionContextModelSchema,
|
|
697
|
+
new V1_RawBaseExecutionContext(),
|
|
698
|
+
),
|
|
699
|
+
parameterValues: (parameterValues ?? []).map((parameterValue) =>
|
|
700
|
+
serialize(V1_parameterValueModelSchema, parameterValue),
|
|
701
|
+
),
|
|
702
|
+
})) as PlainObject<V1_ExecutionResult>,
|
|
703
|
+
),
|
|
704
|
+
);
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
private async _generateExecutionPlan(
|
|
708
|
+
query: V1_Lambda,
|
|
709
|
+
model: V1_PureModelContext,
|
|
710
|
+
parameterValues?: V1_ParameterValue[] | undefined,
|
|
711
|
+
options?: DataCubeExecutionOptions | undefined,
|
|
712
|
+
): Promise<V1_ExecutionPlan> {
|
|
713
|
+
return V1_deserializeExecutionPlan(
|
|
714
|
+
await this._engineServerClient.generatePlan({
|
|
715
|
+
clientVersion:
|
|
716
|
+
options?.clientVersion ??
|
|
717
|
+
// eslint-disable-next-line no-process-env
|
|
718
|
+
(process.env.NODE_ENV === 'development'
|
|
719
|
+
? PureClientVersion.VX_X_X
|
|
720
|
+
: undefined),
|
|
721
|
+
function: this.serializeValueSpecification(query),
|
|
722
|
+
model: serialize(model),
|
|
723
|
+
context: serialize(
|
|
724
|
+
V1_rawBaseExecutionContextModelSchema,
|
|
725
|
+
new V1_RawBaseExecutionContext(),
|
|
726
|
+
),
|
|
727
|
+
parameterValues: (parameterValues ?? []).map((parameterValue) =>
|
|
728
|
+
serialize(V1_parameterValueModelSchema, parameterValue),
|
|
729
|
+
),
|
|
730
|
+
}),
|
|
731
|
+
);
|
|
703
732
|
}
|
|
704
733
|
|
|
705
734
|
// ---------------------------------- APPLICATION ----------------------------------
|