@finos/legend-query-builder 4.16.7 → 4.16.9
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/graph/QueryBuilderMetaModelConst.d.ts +1 -0
- package/lib/graph/QueryBuilderMetaModelConst.d.ts.map +1 -1
- package/lib/graph/QueryBuilderMetaModelConst.js +1 -0
- package/lib/graph/QueryBuilderMetaModelConst.js.map +1 -1
- package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js +5 -2
- package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.d.ts +3 -1
- package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js +99 -2
- package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/package.json +5 -5
- package/lib/stores/QueryBuilderStateBuilder.d.ts.map +1 -1
- package/lib/stores/QueryBuilderStateBuilder.js +21 -2
- package/lib/stores/QueryBuilderStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderRelationAggregationValueSpecBuilder.d.ts +19 -0
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderRelationAggregationValueSpecBuilder.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderRelationAggregationValueSpecBuilder.js +98 -0
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderRelationAggregationValueSpecBuilder.js.map +1 -0
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderTypedAggregationStateBuilder.d.ts +21 -0
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderTypedAggregationStateBuilder.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderTypedAggregationStateBuilder.js +102 -0
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderTypedAggregationStateBuilder.js.map +1 -0
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js +9 -3
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/{QueryBuilderRelationProjectValueSpecBuidler.d.ts → QueryBuilderRelationProjectValueSpecBuilder.d.ts} +1 -1
- package/lib/stores/fetch-structure/tds/projection/{QueryBuilderRelationProjectValueSpecBuidler.d.ts.map → QueryBuilderRelationProjectValueSpecBuilder.d.ts.map} +1 -1
- package/lib/stores/fetch-structure/tds/projection/{QueryBuilderRelationProjectValueSpecBuidler.js → QueryBuilderRelationProjectValueSpecBuilder.js} +1 -1
- package/lib/stores/fetch-structure/tds/projection/{QueryBuilderRelationProjectValueSpecBuidler.js.map → QueryBuilderRelationProjectValueSpecBuilder.js.map} +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.js +8 -9
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.js.map +1 -1
- package/package.json +15 -15
- package/src/graph/QueryBuilderMetaModelConst.ts +1 -0
- package/src/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.ts +4 -4
- package/src/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.ts +223 -2
- package/src/stores/QueryBuilderStateBuilder.ts +40 -8
- package/src/stores/fetch-structure/tds/aggregation/QueryBuilderRelationAggregationValueSpecBuilder.ts +196 -0
- package/src/stores/fetch-structure/tds/aggregation/QueryBuilderTypedAggregationStateBuilder.ts +253 -0
- package/src/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.ts +11 -3
- package/src/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.ts +8 -9
- package/tsconfig.json +3 -1
- /package/src/stores/fetch-structure/tds/projection/{QueryBuilderRelationProjectValueSpecBuidler.ts → QueryBuilderRelationProjectValueSpecBuilder.ts} +0 -0
@@ -0,0 +1,98 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
* you may not use this file except in compliance with the License.
|
6
|
+
* You may obtain a copy of the License at
|
7
|
+
*
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
*
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
* See the License for the specific language governing permissions and
|
14
|
+
* limitations under the License.
|
15
|
+
*/
|
16
|
+
import { ColSpecArray, extractElementNameFromPath, SimpleFunctionExpression, ColSpecArrayInstance, Multiplicity, ColSpec, GenericType, GenericTypeExplicitReference, Relation, RelationColumn, RelationType, LambdaFunctionInstanceValue, AbstractPropertyExpression, PropertyExplicitReference, Property, VariableExpression, } from '@finos/legend-graph';
|
17
|
+
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../graph/QueryBuilderMetaModelConst.js';
|
18
|
+
import { buildGenericLambdaFunctionInstanceValue } from '../../../QueryBuilderValueSpecificationHelper.js';
|
19
|
+
import { guaranteeNonNullable, guaranteeType, UnsupportedOperationError, } from '@finos/legend-shared';
|
20
|
+
import { DEFAULT_LAMBDA_VARIABLE_NAME } from '@finos/legend-data-cube';
|
21
|
+
export const buildRelationAggregation = (precedingExpression, tdsState) => {
|
22
|
+
// Verify that preceding expression is a relation project
|
23
|
+
const projectFunction = guaranteeType(precedingExpression, SimpleFunctionExpression);
|
24
|
+
if (projectFunction.functionName !==
|
25
|
+
extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.RELATION_PROJECT)) {
|
26
|
+
throw new UnsupportedOperationError(`Can't build relation groupBy() expression: previous expression must be project() column expression`);
|
27
|
+
}
|
28
|
+
// Build groupBy() expression
|
29
|
+
const groupByFunction = new SimpleFunctionExpression(extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.RELATION_GROUP_BY));
|
30
|
+
const queryBuilderState = tdsState.queryBuilderState;
|
31
|
+
// Build normal (grouped) columns
|
32
|
+
const groupByCols = new ColSpecArrayInstance(Multiplicity.ONE, undefined);
|
33
|
+
const groupByColSpecArray = new ColSpecArray();
|
34
|
+
groupByCols.values = [groupByColSpecArray];
|
35
|
+
// Build aggregation columns
|
36
|
+
const aggregationCols = new ColSpecArrayInstance(Multiplicity.ONE, undefined);
|
37
|
+
const aggregationColSpecArray = new ColSpecArray();
|
38
|
+
aggregationCols.values = [aggregationColSpecArray];
|
39
|
+
// Build relation return type
|
40
|
+
const relationType = new RelationType(RelationType.ID);
|
41
|
+
// Add normal (non-aggregated) columns to groupByCols
|
42
|
+
tdsState.projectionColumns
|
43
|
+
.filter((projectionColumnState) => !tdsState.aggregationState.columns.some((aggregationColumnState) => aggregationColumnState.projectionColumnState ===
|
44
|
+
projectionColumnState))
|
45
|
+
.forEach((projectionColumnState) => {
|
46
|
+
// Create and add column to groupByColSpecArray
|
47
|
+
const colSpec = new ColSpec();
|
48
|
+
colSpec.name = projectionColumnState.columnName;
|
49
|
+
groupByColSpecArray.colSpecs.push(colSpec);
|
50
|
+
// Add column return type to relationType
|
51
|
+
const returnType = guaranteeNonNullable(projectionColumnState.getColumnType(), `Can't create value spec for projection column ${projectionColumnState.columnName}. Missing type.`);
|
52
|
+
relationType.columns.push(new RelationColumn(projectionColumnState.columnName, returnType));
|
53
|
+
});
|
54
|
+
// Add aggregation columns to aggregationCols
|
55
|
+
tdsState.aggregationState.columns.forEach((aggregationColumnState) => {
|
56
|
+
// Create and add column to aggregationColSpecArray
|
57
|
+
const colSpec = new ColSpec();
|
58
|
+
colSpec.name = aggregationColumnState.columnName;
|
59
|
+
aggregationColSpecArray.colSpecs.push(colSpec);
|
60
|
+
// Build map function (function1)
|
61
|
+
// First, get the ColSpec from the preceding projection so we can get the name of the projected column.
|
62
|
+
const projectionColSpec = guaranteeNonNullable(guaranteeNonNullable(projectFunction.parametersValues[1].values[0], 'Could not find ColSpec array in project() function first parameter').colSpecs.find((_colSpec) => _colSpec.name === aggregationColumnState.columnName), `Could not find projected column matching aggregation column '${aggregationColumnState.columnName}'`);
|
63
|
+
const projectedPropertyExpression = guaranteeType(guaranteeType(projectionColSpec.function1, LambdaFunctionInstanceValue)
|
64
|
+
.values[0]?.expressionSequence[0], AbstractPropertyExpression);
|
65
|
+
const projectedProperty = guaranteeType(projectedPropertyExpression.func.value, Property);
|
66
|
+
// Second, build a new AbstractPropertyExpression for our map function
|
67
|
+
const newPropertyExpression = new AbstractPropertyExpression('');
|
68
|
+
newPropertyExpression.func = PropertyExplicitReference.create(new Property(projectionColSpec.name, projectedProperty.multiplicity, projectedProperty.genericType, projectedProperty._OWNER));
|
69
|
+
newPropertyExpression.parametersValues = [
|
70
|
+
new VariableExpression(DEFAULT_LAMBDA_VARIABLE_NAME, Multiplicity.ONE),
|
71
|
+
];
|
72
|
+
const mapLambda = buildGenericLambdaFunctionInstanceValue(DEFAULT_LAMBDA_VARIABLE_NAME, [newPropertyExpression], queryBuilderState.graphManagerState.graph);
|
73
|
+
colSpec.function1 = mapLambda;
|
74
|
+
// Reduce function (function2)
|
75
|
+
const reduceLambda = buildGenericLambdaFunctionInstanceValue(aggregationColumnState.lambdaParameterName, [
|
76
|
+
aggregationColumnState.operator.buildAggregateExpressionFromState(aggregationColumnState),
|
77
|
+
], aggregationColumnState.aggregationState.tdsState.queryBuilderState
|
78
|
+
.graphManagerState.graph);
|
79
|
+
colSpec.function2 = reduceLambda;
|
80
|
+
// Add column return type to relationType
|
81
|
+
const returnType = guaranteeNonNullable(aggregationColumnState.getColumnType(), `Can't create value spec for aggregation column ${aggregationColumnState.columnName}. Missing type.`);
|
82
|
+
relationType.columns.push(new RelationColumn(aggregationColumnState.columnName, returnType));
|
83
|
+
});
|
84
|
+
groupByFunction.parametersValues = [
|
85
|
+
precedingExpression,
|
86
|
+
groupByCols,
|
87
|
+
aggregationCols,
|
88
|
+
];
|
89
|
+
const relationGenericType = new GenericType(Relation.INSTANCE);
|
90
|
+
const relationTypeGenericType = new GenericType(relationType);
|
91
|
+
relationGenericType.typeArguments = [
|
92
|
+
GenericTypeExplicitReference.create(relationTypeGenericType),
|
93
|
+
];
|
94
|
+
groupByFunction.genericType =
|
95
|
+
GenericTypeExplicitReference.create(relationGenericType);
|
96
|
+
return groupByFunction;
|
97
|
+
};
|
98
|
+
//# sourceMappingURL=QueryBuilderRelationAggregationValueSpecBuilder.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"QueryBuilderRelationAggregationValueSpecBuilder.js","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/aggregation/QueryBuilderRelationAggregationValueSpecBuilder.ts"],"names":[],"mappings":"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"}
|
package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderTypedAggregationStateBuilder.d.ts
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
* you may not use this file except in compliance with the License.
|
6
|
+
* You may obtain a copy of the License at
|
7
|
+
*
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
*
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
* See the License for the specific language governing permissions and
|
14
|
+
* limitations under the License.
|
15
|
+
*/
|
16
|
+
import { type ColSpec, type LambdaFunction, SimpleFunctionExpression } from '@finos/legend-graph';
|
17
|
+
import { type QueryBuilderState } from '../../../QueryBuilderState.js';
|
18
|
+
export declare const processTypedAggregationColSpec: (colSpec: ColSpec, parentExpression: SimpleFunctionExpression | undefined, queryBuilderState: QueryBuilderState) => void;
|
19
|
+
export declare const processTypedGroupByExpression: (expression: SimpleFunctionExpression, queryBuilderState: QueryBuilderState, parentLambda: LambdaFunction) => void;
|
20
|
+
export declare const isTypedGroupByExpression: (expression: SimpleFunctionExpression) => boolean;
|
21
|
+
//# sourceMappingURL=QueryBuilderTypedAggregationStateBuilder.d.ts.map
|
package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderTypedAggregationStateBuilder.d.ts.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"QueryBuilderTypedAggregationStateBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/aggregation/QueryBuilderTypedAggregationStateBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,cAAc,EAKnB,wBAAwB,EAEzB,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAMvC,eAAO,MAAM,8BAA8B,YAChC,OAAO,oBACE,wBAAwB,GAAG,SAAS,qBACnC,iBAAiB,KACnC,IAuHF,CAAC;AAEF,eAAO,MAAM,6BAA6B,eAC5B,wBAAwB,qBACjB,iBAAiB,gBACtB,cAAc,KAC3B,IAiEF,CAAC;AAEF,eAAO,MAAM,wBAAwB,eACvB,wBAAwB,KACnC,OAWF,CAAC"}
|
package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderTypedAggregationStateBuilder.js
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
* you may not use this file except in compliance with the License.
|
6
|
+
* You may obtain a copy of the License at
|
7
|
+
*
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
*
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
* See the License for the specific language governing permissions and
|
14
|
+
* limitations under the License.
|
15
|
+
*/
|
16
|
+
import { ColSpecArrayInstance, LambdaFunctionInstanceValue, matchFunctionName, RelationType, SimpleFunctionExpression, VariableExpression, } from '@finos/legend-graph';
|
17
|
+
import { assertTrue, assertType, guaranteeNonNullable, guaranteeType, returnUndefOnError, UnsupportedOperationError, } from '@finos/legend-shared';
|
18
|
+
import { QUERY_BUILDER_LAMBDA_WRITER_MODE, } from '../../../QueryBuilderState.js';
|
19
|
+
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../graph/QueryBuilderMetaModelConst.js';
|
20
|
+
import { QueryBuilderValueSpecificationProcessor } from '../../../QueryBuilderStateBuilder.js';
|
21
|
+
import { QueryBuilderTDSState } from '../QueryBuilderTDSState.js';
|
22
|
+
import { QueryBuilderAggregateOperator_Wavg } from './operators/QueryBuilderAggregateOperator_Wavg.js';
|
23
|
+
export const processTypedAggregationColSpec = (colSpec, parentExpression, queryBuilderState) => {
|
24
|
+
// check parent expression
|
25
|
+
assertTrue(Boolean(parentExpression &&
|
26
|
+
matchFunctionName(parentExpression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.RELATION_GROUP_BY)), `Can't process typed aggregation ColSpec: only supported when used within a groupBy() expression`);
|
27
|
+
// Check that there are 2 lambdas, one for map and one for reduce
|
28
|
+
const mapLambdaFunctionInstance = guaranteeType(colSpec.function1, LambdaFunctionInstanceValue, `Can't process colSpec: function1 is not a lambda function instance value`);
|
29
|
+
assertTrue(mapLambdaFunctionInstance.values.length === 1, `Can't process typed aggregation ColSpec. function1 should only have 1 lambda value.`);
|
30
|
+
assertTrue(guaranteeNonNullable(mapLambdaFunctionInstance.values[0]).expressionSequence
|
31
|
+
.length === 1, `Can't process typed aggregation ColSpec. function1 lambda should only have 1 expression.`);
|
32
|
+
const reduceLambdaFunctionInstance = guaranteeType(colSpec.function2, LambdaFunctionInstanceValue, `Can't process colSpec: function2 is not a lambda function instance value`);
|
33
|
+
// build state
|
34
|
+
if (queryBuilderState.fetchStructureState.implementation instanceof
|
35
|
+
QueryBuilderTDSState) {
|
36
|
+
const tdsState = queryBuilderState.fetchStructureState.implementation;
|
37
|
+
const aggregationState = tdsState.aggregationState;
|
38
|
+
const projectionColumnState = guaranteeNonNullable(tdsState.projectionColumns.find((projectionColumn) => projectionColumn.columnName === colSpec.name), `Projection column with name ${colSpec.name} not found`);
|
39
|
+
const reduceLambdaFunction = guaranteeNonNullable(reduceLambdaFunctionInstance.values[0], `Can't process colSpec: function2 lambda function is missing`);
|
40
|
+
assertTrue(reduceLambdaFunction.expressionSequence.length === 1, `Can't process colSpec: only support colSpec function2 lambda body with 1 expression`);
|
41
|
+
assertTrue(reduceLambdaFunction.functionType.parameters.length === 1, `Can't process colSpec function2 lambda: only support lambda with 1 parameter`);
|
42
|
+
const reduceFunctionExpression = guaranteeType(reduceLambdaFunction.expressionSequence[0], SimpleFunctionExpression, `Can't process colSpec: only support colSpec function2 lambda body with 1 expression`);
|
43
|
+
const lambdaParam = guaranteeType(reduceLambdaFunction.functionType.parameters[0], VariableExpression, `Can't process colSpec function2 lambda: parameter is missing`);
|
44
|
+
for (const operator of aggregationState.operators) {
|
45
|
+
// NOTE: this allow plugin author to either return `undefined` or throw error
|
46
|
+
// if there is a problem with building the lambda. Either case, the plugin is
|
47
|
+
// considered as not supporting the lambda.
|
48
|
+
const aggregateColumnState = returnUndefOnError(() => operator.buildAggregateColumnState(reduceFunctionExpression, lambdaParam, projectionColumnState));
|
49
|
+
if (projectionColumnState.wavgWeight &&
|
50
|
+
aggregateColumnState &&
|
51
|
+
aggregateColumnState.operator instanceof
|
52
|
+
QueryBuilderAggregateOperator_Wavg) {
|
53
|
+
aggregateColumnState.operator.setWeight(projectionColumnState.wavgWeight);
|
54
|
+
}
|
55
|
+
if (aggregateColumnState) {
|
56
|
+
aggregationState.addColumn(aggregateColumnState);
|
57
|
+
// Update parent groupBy() expression's return type with this column's return type
|
58
|
+
// (a temporary return type was set when we processed the groupBy() protocol)
|
59
|
+
const parentGroupByRelationType = guaranteeType(parentExpression?.genericType?.value.typeArguments?.[0]?.value
|
60
|
+
.rawType, RelationType, `Can't process colSpec: parent groupBy() expression's return type is not a relation`);
|
61
|
+
const relationTypeColumn = guaranteeNonNullable(parentGroupByRelationType.columns.find((_column) => _column.name === colSpec.name), `Can't process colSpec: Can't find column '${colSpec.name}' in parent groupBy() expression's relation return type`);
|
62
|
+
relationTypeColumn.type =
|
63
|
+
aggregateColumnState.getColumnType() ?? relationTypeColumn.type;
|
64
|
+
return;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
}
|
68
|
+
throw new UnsupportedOperationError(`Can't process aggregate expression function: no compatible aggregate operator processer available from plugins`);
|
69
|
+
};
|
70
|
+
export const processTypedGroupByExpression = (expression, queryBuilderState, parentLambda) => {
|
71
|
+
// check parameters
|
72
|
+
assertTrue(expression.parametersValues.length === 3, `Can't process groupBy() expression: groupBy() expects 2 arguments`);
|
73
|
+
// check preceding expression is relation project, then process the project
|
74
|
+
const precedingExpression = guaranteeType(expression.parametersValues[0], SimpleFunctionExpression, `Can't process groupBy() expression: only support groupBy() immediately following an expression`);
|
75
|
+
assertTrue(matchFunctionName(precedingExpression.functionName, [
|
76
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.RELATION_PROJECT,
|
77
|
+
]), `Can't process groupBy() expression: only support groupBy() immediately following relation project()`);
|
78
|
+
QueryBuilderValueSpecificationProcessor.process(precedingExpression, parentLambda, queryBuilderState);
|
79
|
+
const tdsState = guaranteeType(queryBuilderState.fetchStructureState.implementation, QueryBuilderTDSState);
|
80
|
+
// process normal (non-aggregation) columns (ensure columns exist in project expression)
|
81
|
+
const columnExpressions = guaranteeType(expression.parametersValues[1], ColSpecArrayInstance, `Can't process groupBy() expression: groupBy() expects argument #1 to be a ColSpecArrayInstance`);
|
82
|
+
assertTrue(columnExpressions.values.length === 1, `Can't process groupBy() expression: groupBy() expects argument #1 to be a ColSpecArrayInstance with 1 element`);
|
83
|
+
queryBuilderState.setLambdaWriteMode(QUERY_BUILDER_LAMBDA_WRITER_MODE.TYPED_FETCH_STRUCTURE);
|
84
|
+
columnExpressions.values[0]?.colSpecs.forEach((colSpec) => {
|
85
|
+
assertTrue(tdsState.projectionColumns.filter((projectedColumn) => projectedColumn.columnName === colSpec.name).length === 1, `Can't process groupBy() expression: column '${colSpec.name}' not found in project() expression`);
|
86
|
+
});
|
87
|
+
// process aggregation columns
|
88
|
+
const aggregationLambdas = expression.parametersValues[2];
|
89
|
+
assertType(aggregationLambdas, ColSpecArrayInstance, `Can't process groupBy() expression: groupBy() expects argument #2 to be a ColSpecArrayInstance`);
|
90
|
+
QueryBuilderValueSpecificationProcessor.processChild(aggregationLambdas, expression, parentLambda, queryBuilderState);
|
91
|
+
};
|
92
|
+
export const isTypedGroupByExpression = (expression) => {
|
93
|
+
return (expression.functionName ===
|
94
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.RELATION_GROUP_BY ||
|
95
|
+
(matchFunctionName(expression.functionName, [
|
96
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_GROUP_BY,
|
97
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.RELATION_GROUP_BY,
|
98
|
+
]) &&
|
99
|
+
expression.parametersValues.length === 3 &&
|
100
|
+
expression.parametersValues[1] instanceof ColSpecArrayInstance));
|
101
|
+
};
|
102
|
+
//# sourceMappingURL=QueryBuilderTypedAggregationStateBuilder.js.map
|
package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderTypedAggregationStateBuilder.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"QueryBuilderTypedAggregationStateBuilder.js","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/aggregation/QueryBuilderTypedAggregationStateBuilder.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryBuilderProjectionValueSpecificationBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,cAAc,EAcpB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGvE,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,yDAAyD,CAAC;
|
1
|
+
{"version":3,"file":"QueryBuilderProjectionValueSpecificationBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,cAAc,EAcpB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGvE,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,yDAAyD,CAAC;AAgEjE,eAAO,MAAM,gBAAgB,aACjB,oBAAoB,kBACd,cAAc,YACpB,2BAA2B,KACpC,IA4TF,CAAC"}
|
package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js
CHANGED
@@ -21,9 +21,10 @@ import { buildGenericLambdaFunctionInstanceValue } from '../../../QueryBuilderVa
|
|
21
21
|
import { buildPropertyExpressionChain, } from '../../../QueryBuilderValueSpecificationBuilderHelper.js';
|
22
22
|
import { appendOLAPGroupByState } from '../window/QueryBuilderWindowValueSpecificationBuilder.js';
|
23
23
|
import { appendPostFilter } from '../post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js';
|
24
|
-
import { buildRelationProjection } from './
|
24
|
+
import { buildRelationProjection } from './QueryBuilderRelationProjectValueSpecBuilder.js';
|
25
25
|
import { QueryBuilderAggregateOperator_Wavg } from '../aggregation/operators/QueryBuilderAggregateOperator_Wavg.js';
|
26
26
|
import { appendResultSetModifier } from '../result-modifier/ResultModifierValueSpecificationBuilder.js';
|
27
|
+
import { buildRelationAggregation } from '../aggregation/QueryBuilderRelationAggregationValueSpecBuilder.js';
|
27
28
|
const buildProjectColFunc = (tdsState, projectionColumnState, options) => {
|
28
29
|
const colFunc = new SimpleFunctionExpression(extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_COL));
|
29
30
|
let columnLambda;
|
@@ -51,7 +52,8 @@ export const appendProjection = (tdsState, lambdaFunction, options) => {
|
|
51
52
|
const queryBuilderState = tdsState.queryBuilderState;
|
52
53
|
const precedingExpression = guaranteeNonNullable(lambdaFunction.expressionSequence[0], `Can't build projection expression: preceding expression is not defined`);
|
53
54
|
// build projection
|
54
|
-
if (tdsState.aggregationState.columns.length
|
55
|
+
if (tdsState.aggregationState.columns.length &&
|
56
|
+
!tdsState.queryBuilderState.isFetchStructureTyped) {
|
55
57
|
// aggregation
|
56
58
|
const groupByFunction = new SimpleFunctionExpression(extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_GROUP_BY));
|
57
59
|
const colLambdas = new CollectionInstanceValue(queryBuilderState.graphManagerState.graph.getMultiplicity(tdsState.projectionColumns.length -
|
@@ -198,7 +200,11 @@ export const appendProjection = (tdsState, lambdaFunction, options) => {
|
|
198
200
|
}
|
199
201
|
else {
|
200
202
|
const projectFunction = buildRelationProjection(precedingExpression, tdsState, options);
|
201
|
-
|
203
|
+
const aggregationFunction = tdsState.aggregationState.columns.length
|
204
|
+
? buildRelationAggregation(projectFunction, tdsState)
|
205
|
+
: null;
|
206
|
+
lambdaFunction.expressionSequence[0] =
|
207
|
+
aggregationFunction ?? projectFunction;
|
202
208
|
}
|
203
209
|
}
|
204
210
|
// build olapGroupBy
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryBuilderProjectionValueSpecificationBuilder.js","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,uBAAuB,EACvB,0BAA0B,EAC1B,WAAW,EACX,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,mCAAmC,EACnC,iCAAiC,EACjC,qBAAqB,EACrB,iCAAiC,EACjC,aAAa,EACb,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,EAAE,EACF,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,2CAA2C,EAC3C,uCAAuC,GACxC,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,iCAAiC,EAAE,MAAM,iDAAiD,CAAC;AACpG,OAAO,EAAE,uCAAuC,EAAE,MAAM,kDAAkD,CAAC;AAC3G,OAAO,EACL,4BAA4B,GAE7B,MAAM,yDAAyD,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0DAA0D,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAE,MAAM,mEAAmE,CAAC;AACrG,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,kCAAkC,EAAE,MAAM,gEAAgE,CAAC;AACpH,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC;
|
1
|
+
{"version":3,"file":"QueryBuilderProjectionValueSpecificationBuilder.js","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.ts"],"names":[],"mappings":"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"}
|
@@ -17,4 +17,4 @@ import { type ValueSpecification, SimpleFunctionExpression } from '@finos/legend
|
|
17
17
|
import type { QueryBuilderTDSState } from '../QueryBuilderTDSState.js';
|
18
18
|
import { type LambdaFunctionBuilderOption } from '../../../QueryBuilderValueSpecificationBuilderHelper.js';
|
19
19
|
export declare const buildRelationProjection: (precedingExpression: ValueSpecification, tdsState: QueryBuilderTDSState, options?: LambdaFunctionBuilderOption) => SimpleFunctionExpression;
|
20
|
-
//# sourceMappingURL=
|
20
|
+
//# sourceMappingURL=QueryBuilderRelationProjectValueSpecBuilder.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"
|
1
|
+
{"version":3,"file":"QueryBuilderRelationProjectValueSpecBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/projection/QueryBuilderRelationProjectValueSpecBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,KAAK,kBAAkB,EAEvB,wBAAwB,EAazB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,yDAAyD,CAAC;AAMjE,eAAO,MAAM,uBAAuB,wBACb,kBAAkB,YAC7B,oBAAoB,YACpB,2BAA2B,KACpC,wBA8EF,CAAC"}
|
@@ -62,4 +62,4 @@ export const buildRelationProjection = (precedingExpression, tdsState, options)
|
|
62
62
|
GenericTypeExplicitReference.create(relationGenericType);
|
63
63
|
return projectFunction;
|
64
64
|
};
|
65
|
-
//# sourceMappingURL=
|
65
|
+
//# sourceMappingURL=QueryBuilderRelationProjectValueSpecBuilder.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"
|
1
|
+
{"version":3,"file":"QueryBuilderRelationProjectValueSpecBuilder.js","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/projection/QueryBuilderRelationProjectValueSpecBuilder.ts"],"names":[],"mappings":"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"}
|
package/lib/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryBuilderTypedProjectionStateBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,cAAc,EACnB,wBAAwB,EAGzB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAOvC,eAAO,MAAM,gCAAgC,eAC/B,wBAAwB,qBACjB,iBAAiB,gBACtB,cAAc,KAC3B,IAgDF,CAAC;AAEF,eAAO,MAAM,2BAA2B,eAC1B,wBAAwB,KACnC,
|
1
|
+
{"version":3,"file":"QueryBuilderTypedProjectionStateBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,cAAc,EACnB,wBAAwB,EAGzB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAOvC,eAAO,MAAM,gCAAgC,eAC/B,wBAAwB,qBACjB,iBAAiB,gBACtB,cAAc,KAC3B,IAgDF,CAAC;AAEF,eAAO,MAAM,2BAA2B,eAC1B,wBAAwB,KACnC,OAWF,CAAC"}
|
package/lib/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.js
CHANGED
@@ -41,14 +41,13 @@ export const processTypedTDSProjectExpression = (expression, queryBuilderState,
|
|
41
41
|
QueryBuilderValueSpecificationProcessor.processChild(classInstance, expression, parentLambda, queryBuilderState);
|
42
42
|
};
|
43
43
|
export const isTypedProjectionExpression = (expression) => {
|
44
|
-
|
45
|
-
QUERY_BUILDER_SUPPORTED_FUNCTIONS.
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
return false;
|
44
|
+
return (expression.functionName ===
|
45
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.RELATION_PROJECT ||
|
46
|
+
(matchFunctionName(expression.functionName, [
|
47
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_PROJECT,
|
48
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.RELATION_PROJECT,
|
49
|
+
]) &&
|
50
|
+
expression.parametersValues.length === 2 &&
|
51
|
+
expression.parametersValues[1] instanceof ColSpecArrayInstance));
|
53
52
|
};
|
54
53
|
//# sourceMappingURL=QueryBuilderTypedProjectionStateBuilder.js.map
|
package/lib/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryBuilderTypedProjectionStateBuilder.js","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,8BAA8B,EAAE,MAAM,wDAAwD,CAAC;AACxG,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EACL,gCAAgC,GAEjC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,iCAAiC,EACjC,yCAAyC,GAC1C,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,uCAAuC,EAAE,MAAM,sCAAsC,CAAC;AAE/F,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,UAAoC,EACpC,iBAAoC,EACpC,YAA4B,EACtB,EAAE;IACR,mBAAmB;IACnB,UAAU,CACR,UAAU,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EACxC,+EAA+E,CAChF,CAAC;IACF,yBAAyB;IACzB,iBAAiB,CAAC,mBAAmB,CAAC,oBAAoB,CACxD,8BAA8B,CAAC,sBAAsB,CACtD,CAAC;IAEF,6BAA6B;IAC7B,MAAM,mBAAmB,GAAG,aAAa,CACvC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAC9B,wBAAwB,EACxB,4GAA4G,CAC7G,CAAC;IACF,UAAU,CACR,iBAAiB,CAAC,mBAAmB,CAAC,YAAY,EAAE;QAClD,yCAAyC,CAAC,OAAO;QACjD,yCAAyC,CAAC,gBAAgB;QAC1D,yCAAyC,CAAC,yBAAyB;QACnE,iCAAiC,CAAC,MAAM;QACxC,iCAAiC,CAAC,SAAS;KAC5C,CAAC,EACF,2IAA2I,CAC5I,CAAC;IACF,uCAAuC,CAAC,OAAO,CAC7C,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,CAClB,CAAC;IACF,gBAAgB;IAChB,MAAM,aAAa,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACrD,UAAU,CACR,aAAa,EACb,oBAAoB,EACpB,8GAA8G,CAC/G,CAAC;IACF,iBAAiB,CAAC,kBAAkB,CAClC,gCAAgC,CAAC,qBAAqB,CACvD,CAAC;IACF,uCAAuC,CAAC,YAAY,CAClD,aAAa,EACb,UAAU,EACV,YAAY,EACZ,iBAAiB,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,UAAoC,EAC3B,EAAE;IACX,
|
1
|
+
{"version":3,"file":"QueryBuilderTypedProjectionStateBuilder.js","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,8BAA8B,EAAE,MAAM,wDAAwD,CAAC;AACxG,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EACL,gCAAgC,GAEjC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,iCAAiC,EACjC,yCAAyC,GAC1C,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,uCAAuC,EAAE,MAAM,sCAAsC,CAAC;AAE/F,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,UAAoC,EACpC,iBAAoC,EACpC,YAA4B,EACtB,EAAE;IACR,mBAAmB;IACnB,UAAU,CACR,UAAU,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EACxC,+EAA+E,CAChF,CAAC;IACF,yBAAyB;IACzB,iBAAiB,CAAC,mBAAmB,CAAC,oBAAoB,CACxD,8BAA8B,CAAC,sBAAsB,CACtD,CAAC;IAEF,6BAA6B;IAC7B,MAAM,mBAAmB,GAAG,aAAa,CACvC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAC9B,wBAAwB,EACxB,4GAA4G,CAC7G,CAAC;IACF,UAAU,CACR,iBAAiB,CAAC,mBAAmB,CAAC,YAAY,EAAE;QAClD,yCAAyC,CAAC,OAAO;QACjD,yCAAyC,CAAC,gBAAgB;QAC1D,yCAAyC,CAAC,yBAAyB;QACnE,iCAAiC,CAAC,MAAM;QACxC,iCAAiC,CAAC,SAAS;KAC5C,CAAC,EACF,2IAA2I,CAC5I,CAAC;IACF,uCAAuC,CAAC,OAAO,CAC7C,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,CAClB,CAAC;IACF,gBAAgB;IAChB,MAAM,aAAa,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACrD,UAAU,CACR,aAAa,EACb,oBAAoB,EACpB,8GAA8G,CAC/G,CAAC;IACF,iBAAiB,CAAC,kBAAkB,CAClC,gCAAgC,CAAC,qBAAqB,CACvD,CAAC;IACF,uCAAuC,CAAC,YAAY,CAClD,aAAa,EACb,UAAU,EACV,YAAY,EACZ,iBAAiB,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,UAAoC,EAC3B,EAAE;IACX,OAAO,CACL,UAAU,CAAC,YAAY;QACrB,iCAAiC,CAAC,gBAAgB;QACpD,CAAC,iBAAiB,CAAC,UAAU,CAAC,YAAY,EAAE;YAC1C,iCAAiC,CAAC,WAAW;YAC7C,iCAAiC,CAAC,gBAAgB;SACnD,CAAC;YACA,UAAU,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;YACxC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,oBAAoB,CAAC,CAClE,CAAC;AACJ,CAAC,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@finos/legend-query-builder",
|
3
|
-
"version": "4.16.
|
3
|
+
"version": "4.16.9",
|
4
4
|
"description": "Legend query builder core",
|
5
5
|
"keywords": [
|
6
6
|
"legend",
|
@@ -42,19 +42,19 @@
|
|
42
42
|
"test:watch": "jest --watch"
|
43
43
|
},
|
44
44
|
"dependencies": {
|
45
|
-
"@finos/legend-application": "16.0.
|
46
|
-
"@finos/legend-art": "7.1.
|
47
|
-
"@finos/legend-code-editor": "2.0.
|
48
|
-
"@finos/legend-data-cube": "0.1.
|
49
|
-
"@finos/legend-graph": "32.1.
|
50
|
-
"@finos/legend-lego": "2.0.
|
51
|
-
"@finos/legend-server-depot": "6.0.
|
52
|
-
"@finos/legend-shared": "11.0.
|
53
|
-
"@finos/legend-storage": "3.0.
|
45
|
+
"@finos/legend-application": "16.0.27",
|
46
|
+
"@finos/legend-art": "7.1.84",
|
47
|
+
"@finos/legend-code-editor": "2.0.49",
|
48
|
+
"@finos/legend-data-cube": "0.1.9",
|
49
|
+
"@finos/legend-graph": "32.1.7",
|
50
|
+
"@finos/legend-lego": "2.0.52",
|
51
|
+
"@finos/legend-server-depot": "6.0.83",
|
52
|
+
"@finos/legend-shared": "11.0.6",
|
53
|
+
"@finos/legend-storage": "3.0.125",
|
54
54
|
"@testing-library/dom": "10.4.0",
|
55
55
|
"@testing-library/react": "16.2.0",
|
56
|
-
"@types/react": "19.0.
|
57
|
-
"@types/react-dom": "19.0.
|
56
|
+
"@types/react": "19.0.10",
|
57
|
+
"@types/react-dom": "19.0.4",
|
58
58
|
"chart.js": "4.4.7",
|
59
59
|
"mathjs": "14.2.1",
|
60
60
|
"mobx": "6.13.6",
|
@@ -67,14 +67,14 @@
|
|
67
67
|
"sql-formatter": "15.4.10"
|
68
68
|
},
|
69
69
|
"devDependencies": {
|
70
|
-
"@finos/legend-dev-utils": "2.2.
|
70
|
+
"@finos/legend-dev-utils": "2.2.2",
|
71
71
|
"@jest/globals": "29.7.0",
|
72
72
|
"cross-env": "7.0.3",
|
73
|
-
"eslint": "9.20.
|
73
|
+
"eslint": "9.20.1",
|
74
74
|
"jest": "29.7.0",
|
75
75
|
"npm-run-all": "4.1.5",
|
76
76
|
"rimraf": "6.0.1",
|
77
|
-
"sass": "1.
|
77
|
+
"sass": "1.85.0",
|
78
78
|
"typescript": "5.7.3"
|
79
79
|
},
|
80
80
|
"peerDependencies": {
|
@@ -126,6 +126,7 @@ export enum QUERY_BUILDER_SUPPORTED_FUNCTIONS {
|
|
126
126
|
RELATION_DISTINCT = 'meta::pure::functions::relation::distinct',
|
127
127
|
RELATION_SORT = 'meta::pure::functions::relation::sort',
|
128
128
|
RELATION_SLICE = 'meta::pure::functions::relation::slice',
|
129
|
+
RELATION_GROUP_BY = 'meta::pure::functions::relation::groupBy',
|
129
130
|
// filter
|
130
131
|
CONTAINS = 'meta::pure::functions::string::contains',
|
131
132
|
ENDS_WITH = 'meta::pure::functions::string::endsWith',
|
@@ -21,11 +21,11 @@ import {
|
|
21
21
|
V1_buildGetAllFunctionExpression,
|
22
22
|
V1_buildGetAllVersionsFunctionExpression,
|
23
23
|
V1_buildGetAllVersionsInRangeFunctionExpression,
|
24
|
-
V1_buildGroupByFunctionExpression,
|
25
24
|
V1_buildOLAPGroupByFunctionExpression,
|
26
25
|
V1_buildProjectFunctionExpression,
|
27
26
|
V1_buildSubTypePropertyExpressionTypeInference,
|
28
27
|
V1_buildWatermarkFunctionExpression,
|
28
|
+
V1_buildGroupByFunctionExpression,
|
29
29
|
} from './v1/V1_QueryValueSpecificationBuilderHelper.js';
|
30
30
|
import {
|
31
31
|
type V1_GraphBuilderContext,
|
@@ -159,10 +159,10 @@ export class QueryBuilder_PureProtocolProcessorPlugin extends PureProtocolProces
|
|
159
159
|
processingContext,
|
160
160
|
);
|
161
161
|
} else if (
|
162
|
-
matchFunctionName(
|
163
|
-
functionName,
|
162
|
+
matchFunctionName(functionName, [
|
164
163
|
QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_GROUP_BY,
|
165
|
-
|
164
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.RELATION_GROUP_BY,
|
165
|
+
])
|
166
166
|
) {
|
167
167
|
return V1_buildGroupByFunctionExpression(
|
168
168
|
functionName,
|