@finos/legend-query-builder 0.2.2 → 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/QueryBuilder.d.ts +0 -1
- package/lib/components/QueryBuilder.d.ts.map +1 -1
- package/lib/components/QueryBuilder.js +42 -9
- package/lib/components/QueryBuilder.js.map +1 -1
- package/lib/components/QueryBuilderComponentTestUtils.d.ts.map +1 -1
- package/lib/components/QueryBuilderComponentTestUtils.js +2 -5
- package/lib/components/QueryBuilderComponentTestUtils.js.map +1 -1
- package/lib/components/QueryBuilderDiffPanel.d.ts +0 -1
- package/lib/components/QueryBuilderDiffPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderDiffPanel.js +2 -2
- package/lib/components/QueryBuilderDiffPanel.js.map +1 -1
- package/lib/components/QueryBuilderParametersPanel.d.ts +0 -1
- package/lib/components/QueryBuilderParametersPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts +0 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts.map +1 -1
- package/lib/components/QueryBuilderResultPanel.d.ts +0 -1
- package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderResultPanel.js +3 -3
- package/lib/components/QueryBuilderSideBar.d.ts +0 -1
- package/lib/components/QueryBuilderSideBar.d.ts.map +1 -1
- package/lib/components/QueryBuilderSideBar.js +2 -1
- package/lib/components/QueryBuilderSideBar.js.map +1 -1
- package/lib/components/QueryBuilderTextEditor.d.ts +0 -1
- package/lib/components/QueryBuilderTextEditor.d.ts.map +1 -1
- package/lib/components/QueryBuilderUnsupportedQueryEditor.d.ts +0 -1
- package/lib/components/QueryBuilderUnsupportedQueryEditor.d.ts.map +1 -1
- package/lib/components/QueryBuilder_TestID.d.ts +1 -0
- package/lib/components/QueryBuilder_TestID.d.ts.map +1 -1
- package/lib/components/QueryBuilder_TestID.js +1 -0
- package/lib/components/QueryBuilder_TestID.js.map +1 -1
- package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.d.ts +0 -1
- package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.d.ts.map +1 -1
- package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js +5 -5
- package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js.map +1 -1
- package/lib/components/explorer/QueryBuilderMilestoningEditor.d.ts +0 -1
- package/lib/components/explorer/QueryBuilderMilestoningEditor.d.ts.map +1 -1
- package/lib/components/explorer/QueryBuilderMilestoningEditor.js +2 -2
- package/lib/components/explorer/QueryBuilderMilestoningEditor.js.map +1 -1
- package/lib/components/explorer/QueryBuilderPropertySearchPanel.d.ts +0 -1
- package/lib/components/explorer/QueryBuilderPropertySearchPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.d.ts +0 -1
- package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts +0 -1
- package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderOlapGroupByPanel.d.ts +22 -0
- package/lib/components/fetch-structure/QueryBuilderOlapGroupByPanel.d.ts.map +1 -0
- package/lib/components/fetch-structure/QueryBuilderOlapGroupByPanel.js +363 -0
- package/lib/components/fetch-structure/QueryBuilderOlapGroupByPanel.js.map +1 -0
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts +0 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +21 -53
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostTDSPanel.d.ts +22 -0
- package/lib/components/fetch-structure/QueryBuilderPostTDSPanel.d.ts.map +1 -0
- package/lib/components/fetch-structure/QueryBuilderPostTDSPanel.js +32 -0
- package/lib/components/fetch-structure/QueryBuilderPostTDSPanel.js.map +1 -0
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts +0 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js +2 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSComponentHelper.d.ts +27 -0
- package/lib/components/fetch-structure/QueryBuilderTDSComponentHelper.d.ts.map +1 -0
- package/lib/components/fetch-structure/QueryBuilderTDSComponentHelper.js +61 -0
- package/lib/components/fetch-structure/QueryBuilderTDSComponentHelper.js.map +1 -0
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts +0 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js +4 -13
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.d.ts +0 -1
- package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -1
- package/lib/components/shared/LambdaEditor.d.ts +0 -1
- package/lib/components/shared/LambdaEditor.d.ts.map +1 -1
- package/lib/components/shared/LambdaEditor.js +23 -7
- package/lib/components/shared/LambdaEditor.js.map +1 -1
- package/lib/components/shared/LambdaParameterValuesEditor.d.ts +0 -1
- package/lib/components/shared/LambdaParameterValuesEditor.d.ts.map +1 -1
- package/lib/components/workflows/ServiceQueryBuilder.d.ts.map +1 -1
- package/lib/components/workflows/ServiceQueryBuilder.js +5 -1
- package/lib/components/workflows/ServiceQueryBuilder.js.map +1 -1
- package/lib/graphManager/QueryBuilderHashUtils.d.ts +14 -0
- package/lib/graphManager/QueryBuilderHashUtils.d.ts.map +1 -1
- package/lib/graphManager/QueryBuilderHashUtils.js +15 -0
- package/lib/graphManager/QueryBuilderHashUtils.js.map +1 -1
- package/lib/graphManager/QueryBuilderSupportedFunctions.d.ts +7 -1
- package/lib/graphManager/QueryBuilderSupportedFunctions.d.ts.map +1 -1
- package/lib/graphManager/QueryBuilderSupportedFunctions.js +7 -0
- package/lib/graphManager/QueryBuilderSupportedFunctions.js.map +1 -1
- package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.d.ts.map +1 -1
- package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js +4 -1
- package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.d.ts +1 -0
- package/lib/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.d.ts.map +1 -1
- package/lib/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js +50 -0
- package/lib/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +6 -6
- package/lib/stores/QueryBuilderStateBuilder.d.ts.map +1 -1
- package/lib/stores/QueryBuilderStateBuilder.js +7 -1
- package/lib/stores/QueryBuilderStateBuilder.js.map +1 -1
- package/lib/stores/QueryBuilderStateTestUtils.d.ts.map +1 -1
- package/lib/stores/QueryBuilderStateTestUtils.js +2 -4
- package/lib/stores/QueryBuilderStateTestUtils.js.map +1 -1
- package/lib/stores/QueryBuilderTypeaheadHelper.js +2 -2
- package/lib/stores/explorer/QueryBuilderExplorerState.js +3 -3
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts +1 -0
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js +3 -0
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js +2 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSColumnState_.d.ts +24 -0
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSColumnState_.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSColumnState_.js +20 -0
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSColumnState_.js.map +1 -0
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSHelper.d.ts +23 -0
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSHelper.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSHelper.js +41 -0
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSHelper.js.map +1 -0
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts +11 -0
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js +44 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryResultSetModifierState.d.ts +2 -2
- package/lib/stores/fetch-structure/tds/QueryResultSetModifierState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryResultSetModifierState.js +2 -2
- package/lib/stores/fetch-structure/tds/QueryResultSetModifierState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateOperator.js +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.d.ts +4 -4
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.js +8 -7
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByOperatorLoader.d.ts +18 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByOperatorLoader.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByOperatorLoader.js +36 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByOperatorLoader.js.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByState.d.ts +91 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByState.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByState.js +272 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByState.js.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByStateBuilder.d.ts +19 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByStateBuilder.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByStateBuilder.js +100 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByStateBuilder.js.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByValueSpecificationBuilder.d.ts +19 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByValueSpecificationBuilder.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByValueSpecificationBuilder.js +83 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByValueSpecificationBuilder.js.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_.d.ts +29 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_.js +30 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_.js.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Average.d.ts +25 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Average.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Average.js +50 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Average.js.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Count.d.ts +25 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Count.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Count.js +51 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Count.js.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Max.d.ts +25 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Max.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Max.js +50 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Max.js.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Min.d.ts +25 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Min.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Min.js +50 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Min.js.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Sum.d.ts +25 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Sum.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Sum.js +51 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Sum.js.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_AverageRank_.d.ts +24 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_AverageRank_.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_AverageRank_.js +48 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_AverageRank_.js.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_DenseRank_.d.ts +24 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_DenseRank_.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_DenseRank_.js +48 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_DenseRank_.js.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_Rank_.d.ts +24 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_Rank_.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_Rank_.js +48 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_Rank_.js.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_RowNumber_.d.ts +24 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_RowNumber_.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_RowNumber_.js +48 -0
- package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_RowNumber_.js.map +1 -0
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterOperator.d.ts +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterOperator.js +2 -2
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts +6 -4
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js +14 -3
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.js +8 -11
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorHelper.d.ts +2 -2
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorHelper.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorHelper.js +5 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorHelper.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.js +4 -4
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js +3 -3
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js +3 -3
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.js +2 -2
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.d.ts +2 -2
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js +3 -3
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js +3 -3
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.d.ts +4 -6
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.js +6 -5
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.js +1 -0
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js +6 -3
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterState.d.ts +2 -0
- package/lib/stores/filter/QueryBuilderFilterState.d.ts.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterState.js +6 -0
- package/lib/stores/filter/QueryBuilderFilterState.js.map +1 -1
- package/package.json +13 -13
- package/src/components/QueryBuilder.tsx +110 -35
- package/src/components/QueryBuilderComponentTestUtils.tsx +9 -11
- package/src/components/QueryBuilderDiffPanel.tsx +2 -2
- package/src/components/QueryBuilderResultPanel.tsx +4 -4
- package/src/components/QueryBuilderSideBar.tsx +4 -1
- package/src/components/QueryBuilder_TestID.ts +1 -0
- package/src/components/explorer/QueryBuilderFunctionsExplorerPanel.tsx +6 -6
- package/src/components/explorer/QueryBuilderMilestoningEditor.tsx +2 -3
- package/src/components/fetch-structure/QueryBuilderOlapGroupByPanel.tsx +1140 -0
- package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +31 -106
- package/src/components/fetch-structure/QueryBuilderPostTDSPanel.tsx +69 -0
- package/src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx +4 -1
- package/src/components/fetch-structure/QueryBuilderTDSComponentHelper.tsx +118 -0
- package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +4 -23
- package/src/components/shared/LambdaEditor.tsx +25 -22
- package/src/components/workflows/ServiceQueryBuilder.tsx +10 -2
- package/src/graphManager/QueryBuilderHashUtils.ts +16 -0
- package/src/graphManager/QueryBuilderSupportedFunctions.ts +7 -0
- package/src/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.ts +14 -0
- package/src/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.ts +129 -0
- package/src/stores/QueryBuilderStateBuilder.ts +14 -1
- package/src/stores/QueryBuilderStateTestUtils.ts +9 -13
- package/src/stores/QueryBuilderTypeaheadHelper.ts +2 -2
- package/src/stores/explorer/QueryBuilderExplorerState.ts +3 -3
- package/src/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.ts +4 -0
- package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.ts +2 -1
- package/src/stores/fetch-structure/tds/QueryBuilderTDSColumnState_.ts +28 -0
- package/src/stores/fetch-structure/tds/QueryBuilderTDSHelper.ts +79 -0
- package/src/stores/fetch-structure/tds/QueryBuilderTDSState.ts +68 -1
- package/src/stores/fetch-structure/tds/QueryResultSetModifierState.ts +2 -2
- package/src/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateOperator.ts +1 -1
- package/src/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.ts +11 -9
- package/src/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByOperatorLoader.ts +39 -0
- package/src/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByState.ts +377 -0
- package/src/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByStateBuilder.ts +237 -0
- package/src/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByValueSpecificationBuilder.ts +148 -0
- package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_.ts +43 -0
- package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Average.ts +56 -0
- package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Count.ts +57 -0
- package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Max.ts +56 -0
- package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Min.ts +56 -0
- package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Sum.ts +57 -0
- package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_AverageRank_.ts +54 -0
- package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_DenseRank_.ts +54 -0
- package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_Rank_.ts +54 -0
- package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_RowNumber_.ts +54 -0
- package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterOperator.ts +2 -2
- package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.ts +22 -10
- package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.ts +11 -19
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorHelper.ts +8 -7
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.ts +4 -4
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.ts +1 -1
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.ts +1 -1
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.ts +3 -3
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.ts +3 -3
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.ts +1 -1
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.ts +2 -2
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.ts +3 -3
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.ts +3 -3
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.ts +1 -1
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.ts +1 -1
- package/src/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.ts +9 -11
- package/src/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.ts +1 -0
- package/src/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.ts +8 -4
- package/src/stores/filter/QueryBuilderFilterState.ts +7 -0
- package/tsconfig.json +19 -0
|
@@ -18,7 +18,6 @@ import { useApplicationStore } from '@finos/legend-application';
|
|
|
18
18
|
import {
|
|
19
19
|
type TreeNodeContainerProps,
|
|
20
20
|
type TreeNodeViewProps,
|
|
21
|
-
type TooltipPlacement,
|
|
22
21
|
BlankPanelPlaceholder,
|
|
23
22
|
CaretDownIcon,
|
|
24
23
|
ChevronDownIcon,
|
|
@@ -39,11 +38,6 @@ import {
|
|
|
39
38
|
NewFolderIcon,
|
|
40
39
|
PlusCircleIcon,
|
|
41
40
|
InfoCircleIcon,
|
|
42
|
-
Tooltip,
|
|
43
|
-
StringTypeIcon,
|
|
44
|
-
ToggleIcon,
|
|
45
|
-
HashtagIcon,
|
|
46
|
-
ClockIcon,
|
|
47
41
|
PanelDropZone,
|
|
48
42
|
DragPreviewLayer,
|
|
49
43
|
PanelEntryDropZonePlaceholder,
|
|
@@ -52,25 +46,20 @@ import {
|
|
|
52
46
|
PanelContent,
|
|
53
47
|
} from '@finos/legend-art';
|
|
54
48
|
import {
|
|
55
|
-
type Type,
|
|
56
49
|
type ValueSpecification,
|
|
57
50
|
Class,
|
|
58
51
|
Enumeration,
|
|
59
52
|
PrimitiveType,
|
|
60
|
-
PRIMITIVE_TYPE,
|
|
61
|
-
getMultiplicityDescription,
|
|
62
53
|
} from '@finos/legend-graph';
|
|
63
54
|
import {
|
|
64
55
|
assertErrorThrown,
|
|
65
56
|
guaranteeNonNullable,
|
|
66
|
-
returnUndefOnError,
|
|
67
57
|
debounce,
|
|
68
58
|
} from '@finos/legend-shared';
|
|
69
59
|
import { flowResult } from 'mobx';
|
|
70
60
|
import { observer } from 'mobx-react-lite';
|
|
71
61
|
import { forwardRef, useCallback, useMemo, useRef, useState } from 'react';
|
|
72
62
|
import { useDrop, useDrag } from 'react-dnd';
|
|
73
|
-
import { getColumnMultiplicity } from '../../stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorHelper.js';
|
|
74
63
|
import { QueryBuilderAggregateColumnState } from '../../stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.js';
|
|
75
64
|
import type { QueryBuilderPostFilterOperator } from '../../stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterOperator.js';
|
|
76
65
|
import {
|
|
@@ -99,6 +88,15 @@ import { isTypeCompatibleForAssignment } from '../../stores/QueryBuilderValueSpe
|
|
|
99
88
|
import { QUERY_BUILDER_GROUP_OPERATION } from '../../stores/QueryBuilderGroupOperationHelper.js';
|
|
100
89
|
import { QueryBuilderTDSState } from '../../stores/fetch-structure/tds/QueryBuilderTDSState.js';
|
|
101
90
|
import { BasicValueSpecificationEditor } from '../shared/BasicValueSpecificationEditor.js';
|
|
91
|
+
import {
|
|
92
|
+
QueryBuilderColumnInfoTooltip,
|
|
93
|
+
renderPropertyTypeIcon,
|
|
94
|
+
} from './QueryBuilderTDSComponentHelper.js';
|
|
95
|
+
import {
|
|
96
|
+
type QueryBuilderOlapColumnDragSource,
|
|
97
|
+
QUERY_BUILDER_OLAP_COLUMN_DND_TYPE,
|
|
98
|
+
} from '../../stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByState.js';
|
|
99
|
+
import type { QueryBuilderTDSColumnState } from '../../stores/fetch-structure/tds/QueryBuilderTDSColumnState_.js';
|
|
102
100
|
|
|
103
101
|
const QueryBuilderPostFilterConditionContextMenu = observer(
|
|
104
102
|
forwardRef<
|
|
@@ -197,91 +195,6 @@ const QueryBuilderPostFilterGroupConditionEditor = observer(
|
|
|
197
195
|
},
|
|
198
196
|
);
|
|
199
197
|
|
|
200
|
-
const renderPropertyTypeIcon = (type: Type): React.ReactNode => {
|
|
201
|
-
if (type instanceof PrimitiveType) {
|
|
202
|
-
if (type.name === PRIMITIVE_TYPE.STRING) {
|
|
203
|
-
return <StringTypeIcon className="query-builder-column-badge__icon" />;
|
|
204
|
-
} else if (type.name === PRIMITIVE_TYPE.BOOLEAN) {
|
|
205
|
-
return <ToggleIcon className="query-builder-column-badge__icon" />;
|
|
206
|
-
} else if (
|
|
207
|
-
type.name === PRIMITIVE_TYPE.NUMBER ||
|
|
208
|
-
type.name === PRIMITIVE_TYPE.INTEGER ||
|
|
209
|
-
type.name === PRIMITIVE_TYPE.FLOAT ||
|
|
210
|
-
type.name === PRIMITIVE_TYPE.DECIMAL
|
|
211
|
-
) {
|
|
212
|
-
return <HashtagIcon className="query-builder-column-badge__icon" />;
|
|
213
|
-
} else if (
|
|
214
|
-
type.name === PRIMITIVE_TYPE.DATE ||
|
|
215
|
-
type.name === PRIMITIVE_TYPE.DATETIME ||
|
|
216
|
-
type.name === PRIMITIVE_TYPE.STRICTDATE
|
|
217
|
-
) {
|
|
218
|
-
return <ClockIcon className="query-builder-column-badge__icon" />;
|
|
219
|
-
}
|
|
220
|
-
} else if (type instanceof Enumeration) {
|
|
221
|
-
return <div className="icon query-builder-column-badge__icon">E</div>;
|
|
222
|
-
}
|
|
223
|
-
return null;
|
|
224
|
-
};
|
|
225
|
-
|
|
226
|
-
const QueryBuilderColumnInfoTooltip: React.FC<{
|
|
227
|
-
columnState:
|
|
228
|
-
| QueryBuilderProjectionColumnState
|
|
229
|
-
| QueryBuilderAggregateColumnState;
|
|
230
|
-
children: React.ReactElement;
|
|
231
|
-
placement?: TooltipPlacement | undefined;
|
|
232
|
-
}> = (props) => {
|
|
233
|
-
const { columnState, placement, children } = props;
|
|
234
|
-
const type = columnState.getReturnType();
|
|
235
|
-
const multiplicity = returnUndefOnError(() =>
|
|
236
|
-
getColumnMultiplicity(columnState),
|
|
237
|
-
);
|
|
238
|
-
return (
|
|
239
|
-
<Tooltip
|
|
240
|
-
arrow={true}
|
|
241
|
-
{...(placement !== undefined ? { placement } : {})}
|
|
242
|
-
classes={{
|
|
243
|
-
tooltip: 'query-builder__tooltip',
|
|
244
|
-
arrow: 'query-builder__tooltip__arrow',
|
|
245
|
-
tooltipPlacementRight: 'query-builder__tooltip--right',
|
|
246
|
-
}}
|
|
247
|
-
TransitionProps={{
|
|
248
|
-
// disable transition
|
|
249
|
-
// NOTE: somehow, this is the only workaround we have, if for example
|
|
250
|
-
// we set `appear = true`, the tooltip will jump out of position
|
|
251
|
-
timeout: 0,
|
|
252
|
-
}}
|
|
253
|
-
title={
|
|
254
|
-
<div className="query-builder__tooltip__content">
|
|
255
|
-
<div className="query-builder__tooltip__item">
|
|
256
|
-
<div className="query-builder__tooltip__item__label">Name</div>
|
|
257
|
-
<div className="query-builder__tooltip__item__value">
|
|
258
|
-
{columnState.columnName}
|
|
259
|
-
</div>
|
|
260
|
-
</div>
|
|
261
|
-
<div className="query-builder__tooltip__item">
|
|
262
|
-
<div className="query-builder__tooltip__item__label">Type</div>
|
|
263
|
-
<div className="query-builder__tooltip__item__value">
|
|
264
|
-
{type?.path}
|
|
265
|
-
</div>
|
|
266
|
-
</div>
|
|
267
|
-
{multiplicity && (
|
|
268
|
-
<div className="query-builder__tooltip__item">
|
|
269
|
-
<div className="query-builder__tooltip__item__label">
|
|
270
|
-
Multiplicity
|
|
271
|
-
</div>
|
|
272
|
-
<div className="query-builder__tooltip__item__value">
|
|
273
|
-
{getMultiplicityDescription(multiplicity)}
|
|
274
|
-
</div>
|
|
275
|
-
</div>
|
|
276
|
-
)}
|
|
277
|
-
</div>
|
|
278
|
-
}
|
|
279
|
-
>
|
|
280
|
-
{children}
|
|
281
|
-
</Tooltip>
|
|
282
|
-
);
|
|
283
|
-
};
|
|
284
|
-
|
|
285
198
|
export const QueryBuilderColumnBadge = observer(
|
|
286
199
|
(props: {
|
|
287
200
|
postFilterConditionState: PostFilterConditionState;
|
|
@@ -291,7 +204,7 @@ export const QueryBuilderColumnBadge = observer(
|
|
|
291
204
|
}) => {
|
|
292
205
|
const { postFilterConditionState, onColumnChange } = props;
|
|
293
206
|
const applicationStore = useApplicationStore();
|
|
294
|
-
const type = postFilterConditionState.columnState.
|
|
207
|
+
const type = postFilterConditionState.columnState.getColumnType();
|
|
295
208
|
const handleDrop = useCallback(
|
|
296
209
|
(item: QueryBuilderProjectionColumnDragSource): Promise<void> =>
|
|
297
210
|
onColumnChange(item.columnState),
|
|
@@ -303,7 +216,10 @@ export const QueryBuilderColumnBadge = observer(
|
|
|
303
216
|
{ isDragOver: boolean }
|
|
304
217
|
>(
|
|
305
218
|
() => ({
|
|
306
|
-
accept: [
|
|
219
|
+
accept: [
|
|
220
|
+
QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
|
|
221
|
+
QUERY_BUILDER_OLAP_COLUMN_DND_TYPE,
|
|
222
|
+
],
|
|
307
223
|
drop: (item, monitor): void => {
|
|
308
224
|
if (!monitor.didDrop()) {
|
|
309
225
|
handleDrop(item).catch(applicationStore.alertUnhandledError);
|
|
@@ -386,7 +302,7 @@ const QueryBuilderPostFilterConditionEditor = observer(
|
|
|
386
302
|
(item: QueryBuilderParameterDragSource): void => {
|
|
387
303
|
const parameterType =
|
|
388
304
|
item.variable.parameter.genericType?.value.rawType;
|
|
389
|
-
const conditionValueType = node.condition.columnState.
|
|
305
|
+
const conditionValueType = node.condition.columnState.getColumnType();
|
|
390
306
|
if (
|
|
391
307
|
conditionValueType &&
|
|
392
308
|
isTypeCompatibleForAssignment(parameterType, conditionValueType)
|
|
@@ -507,7 +423,7 @@ const QueryBuilderPostFilterConditionEditor = observer(
|
|
|
507
423
|
}
|
|
508
424
|
typeCheckOption={{
|
|
509
425
|
expectedType: guaranteeNonNullable(
|
|
510
|
-
node.condition.columnState.
|
|
426
|
+
node.condition.columnState.getColumnType(),
|
|
511
427
|
),
|
|
512
428
|
}}
|
|
513
429
|
resetValue={resetNode}
|
|
@@ -569,9 +485,15 @@ const QueryBuilderPostFilterTreeNodeContainer = observer(
|
|
|
569
485
|
postFilterState.removeNodeAndPruneBranch(node);
|
|
570
486
|
const handleDrop = useCallback(
|
|
571
487
|
(item: QueryBuilderPostFilterDropTarget, type: string): void => {
|
|
572
|
-
if (
|
|
573
|
-
|
|
574
|
-
|
|
488
|
+
if (
|
|
489
|
+
type === QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE ||
|
|
490
|
+
type === QUERY_BUILDER_OLAP_COLUMN_DND_TYPE
|
|
491
|
+
) {
|
|
492
|
+
const columnState = (
|
|
493
|
+
item as
|
|
494
|
+
| QueryBuilderProjectionColumnDragSource
|
|
495
|
+
| QueryBuilderOlapColumnDragSource
|
|
496
|
+
).columnState as QueryBuilderTDSColumnState;
|
|
575
497
|
let conditionState: PostFilterConditionState;
|
|
576
498
|
try {
|
|
577
499
|
conditionState = new PostFilterConditionState(
|
|
@@ -590,7 +512,6 @@ const QueryBuilderPostFilterTreeNodeContainer = observer(
|
|
|
590
512
|
applicationStore.notifyWarning(error.message);
|
|
591
513
|
return;
|
|
592
514
|
}
|
|
593
|
-
|
|
594
515
|
if (node instanceof QueryBuilderPostFilterTreeGroupNodeData) {
|
|
595
516
|
postFilterState.addNodeFromNode(
|
|
596
517
|
new QueryBuilderPostFilterTreeConditionNodeData(
|
|
@@ -633,6 +554,7 @@ const QueryBuilderPostFilterTreeNodeContainer = observer(
|
|
|
633
554
|
accept: [
|
|
634
555
|
...Object.values(QUERY_BUILDER_POST_FILTER_DND_TYPE),
|
|
635
556
|
QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
|
|
557
|
+
QUERY_BUILDER_OLAP_COLUMN_DND_TYPE,
|
|
636
558
|
],
|
|
637
559
|
drop: (item, monitor): void => {
|
|
638
560
|
if (!monitor.didDrop()) {
|
|
@@ -942,11 +864,14 @@ const QueryBuilderPostFilterPanelContent = observer(
|
|
|
942
864
|
{ isDragOver: boolean }
|
|
943
865
|
>(
|
|
944
866
|
() => ({
|
|
945
|
-
accept: [
|
|
867
|
+
accept: [
|
|
868
|
+
QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
|
|
869
|
+
QUERY_BUILDER_OLAP_COLUMN_DND_TYPE,
|
|
870
|
+
],
|
|
946
871
|
drop: (item, monitor): void => {
|
|
947
872
|
if (!monitor.didDrop()) {
|
|
948
873
|
handleDrop(item).catch(applicationStore.alertUnhandledError);
|
|
949
|
-
}
|
|
874
|
+
}
|
|
950
875
|
},
|
|
951
876
|
collect: (monitor) => ({
|
|
952
877
|
isDragOver: monitor.isOver({ shallow: true }),
|
|
@@ -0,0 +1,69 @@
|
|
|
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
|
+
|
|
17
|
+
import { observer } from 'mobx-react-lite';
|
|
18
|
+
import {
|
|
19
|
+
ResizablePanelGroup,
|
|
20
|
+
ResizablePanel,
|
|
21
|
+
ResizablePanelSplitter,
|
|
22
|
+
} from '@finos/legend-art';
|
|
23
|
+
import { QueryBuilderFilterPanel } from '../filter/QueryBuilderFilterPanel.js';
|
|
24
|
+
import { QueryBuilderOlapGroupByPanel } from './QueryBuilderOlapGroupByPanel.js';
|
|
25
|
+
import { QueryBuilderPostFilterPanel } from './QueryBuilderPostFilterPanel.js';
|
|
26
|
+
import type { QueryBuilderTDSState } from '../../stores/fetch-structure/tds/QueryBuilderTDSState.js';
|
|
27
|
+
|
|
28
|
+
export const QueryBuilderPostTDSPanel = observer(
|
|
29
|
+
(props: { tdsState: QueryBuilderTDSState }) => {
|
|
30
|
+
const { tdsState } = props;
|
|
31
|
+
const showFilterPanel = tdsState.queryBuilderState.filterState.showPanel;
|
|
32
|
+
const showOlapGroupByPanel = tdsState.showOlapGroupByPanel;
|
|
33
|
+
const showPostFilterPanel = tdsState.showPostFilterPanel;
|
|
34
|
+
if (!tdsState.TEMPORARY__showPostFetchStructurePanel) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
return (
|
|
38
|
+
<ResizablePanelGroup orientation="horizontal">
|
|
39
|
+
{showFilterPanel && (
|
|
40
|
+
<ResizablePanel minSize={40} direction={1}>
|
|
41
|
+
<QueryBuilderFilterPanel
|
|
42
|
+
queryBuilderState={tdsState.queryBuilderState}
|
|
43
|
+
/>
|
|
44
|
+
</ResizablePanel>
|
|
45
|
+
)}
|
|
46
|
+
{showFilterPanel && (showOlapGroupByPanel || showPostFilterPanel) && (
|
|
47
|
+
<ResizablePanelSplitter />
|
|
48
|
+
)}
|
|
49
|
+
{showOlapGroupByPanel && (
|
|
50
|
+
<ResizablePanel minSize={40}>
|
|
51
|
+
<QueryBuilderOlapGroupByPanel
|
|
52
|
+
olapGroupByState={tdsState.olapGroupByState}
|
|
53
|
+
/>
|
|
54
|
+
</ResizablePanel>
|
|
55
|
+
)}
|
|
56
|
+
{showOlapGroupByPanel && showPostFilterPanel && (
|
|
57
|
+
<ResizablePanelSplitter />
|
|
58
|
+
)}
|
|
59
|
+
{showPostFilterPanel && (
|
|
60
|
+
<ResizablePanel minSize={40}>
|
|
61
|
+
<QueryBuilderPostFilterPanel
|
|
62
|
+
queryBuilderState={tdsState.queryBuilderState}
|
|
63
|
+
/>
|
|
64
|
+
</ResizablePanel>
|
|
65
|
+
)}
|
|
66
|
+
</ResizablePanelGroup>
|
|
67
|
+
);
|
|
68
|
+
},
|
|
69
|
+
);
|
|
@@ -76,7 +76,10 @@ const ColumnSortEditor = observer(
|
|
|
76
76
|
<CustomSelectorInput
|
|
77
77
|
className="query-builder__projection__options__sort__dropdown"
|
|
78
78
|
options={projectionOptions}
|
|
79
|
-
disabled={
|
|
79
|
+
disabled={
|
|
80
|
+
projectionOptions.length < 1 ||
|
|
81
|
+
(projectionOptions.length === 1 && Boolean(value))
|
|
82
|
+
}
|
|
80
83
|
onChange={onChange}
|
|
81
84
|
value={value}
|
|
82
85
|
darkMode={!applicationStore.TEMPORARY__isLightThemeEnabled}
|
|
@@ -0,0 +1,118 @@
|
|
|
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
|
+
|
|
17
|
+
import {
|
|
18
|
+
StringTypeIcon,
|
|
19
|
+
ToggleIcon,
|
|
20
|
+
HashtagIcon,
|
|
21
|
+
ClockIcon,
|
|
22
|
+
type TooltipPlacement,
|
|
23
|
+
Tooltip,
|
|
24
|
+
} from '@finos/legend-art';
|
|
25
|
+
import {
|
|
26
|
+
type Type,
|
|
27
|
+
Enumeration,
|
|
28
|
+
PrimitiveType,
|
|
29
|
+
PRIMITIVE_TYPE,
|
|
30
|
+
getMultiplicityDescription,
|
|
31
|
+
} from '@finos/legend-graph';
|
|
32
|
+
import { returnUndefOnError } from '@finos/legend-shared';
|
|
33
|
+
import type { QueryBuilderAggregateColumnState } from '../../stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.js';
|
|
34
|
+
import { getColumnMultiplicity } from '../../stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorHelper.js';
|
|
35
|
+
import type { QueryBuilderTDSColumnState } from '../../stores/fetch-structure/tds/QueryBuilderTDSColumnState_.js';
|
|
36
|
+
|
|
37
|
+
export const renderPropertyTypeIcon = (type: Type): React.ReactNode => {
|
|
38
|
+
if (type instanceof PrimitiveType) {
|
|
39
|
+
if (type.name === PRIMITIVE_TYPE.STRING) {
|
|
40
|
+
return <StringTypeIcon className="query-builder-column-badge__icon" />;
|
|
41
|
+
} else if (type.name === PRIMITIVE_TYPE.BOOLEAN) {
|
|
42
|
+
return <ToggleIcon className="query-builder-column-badge__icon" />;
|
|
43
|
+
} else if (
|
|
44
|
+
type.name === PRIMITIVE_TYPE.NUMBER ||
|
|
45
|
+
type.name === PRIMITIVE_TYPE.INTEGER ||
|
|
46
|
+
type.name === PRIMITIVE_TYPE.FLOAT ||
|
|
47
|
+
type.name === PRIMITIVE_TYPE.DECIMAL
|
|
48
|
+
) {
|
|
49
|
+
return <HashtagIcon className="query-builder-column-badge__icon" />;
|
|
50
|
+
} else if (
|
|
51
|
+
type.name === PRIMITIVE_TYPE.DATE ||
|
|
52
|
+
type.name === PRIMITIVE_TYPE.DATETIME ||
|
|
53
|
+
type.name === PRIMITIVE_TYPE.STRICTDATE
|
|
54
|
+
) {
|
|
55
|
+
return <ClockIcon className="query-builder-column-badge__icon" />;
|
|
56
|
+
}
|
|
57
|
+
} else if (type instanceof Enumeration) {
|
|
58
|
+
return <div className="icon query-builder-column-badge__icon">E</div>;
|
|
59
|
+
}
|
|
60
|
+
return null;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export const QueryBuilderColumnInfoTooltip: React.FC<{
|
|
64
|
+
columnState: QueryBuilderTDSColumnState | QueryBuilderAggregateColumnState;
|
|
65
|
+
children: React.ReactElement;
|
|
66
|
+
placement?: TooltipPlacement | undefined;
|
|
67
|
+
}> = (props) => {
|
|
68
|
+
const { columnState, placement, children } = props;
|
|
69
|
+
const type = columnState.getColumnType();
|
|
70
|
+
const multiplicity = returnUndefOnError(() =>
|
|
71
|
+
getColumnMultiplicity(columnState),
|
|
72
|
+
);
|
|
73
|
+
return (
|
|
74
|
+
<Tooltip
|
|
75
|
+
arrow={true}
|
|
76
|
+
{...(placement !== undefined ? { placement } : {})}
|
|
77
|
+
classes={{
|
|
78
|
+
tooltip: 'query-builder__tooltip',
|
|
79
|
+
arrow: 'query-builder__tooltip__arrow',
|
|
80
|
+
tooltipPlacementRight: 'query-builder__tooltip--right',
|
|
81
|
+
}}
|
|
82
|
+
TransitionProps={{
|
|
83
|
+
// disable transition
|
|
84
|
+
// NOTE: somehow, this is the only workaround we have, if for example
|
|
85
|
+
// we set `appear = true`, the tooltip will jump out of position
|
|
86
|
+
timeout: 0,
|
|
87
|
+
}}
|
|
88
|
+
title={
|
|
89
|
+
<div className="query-builder__tooltip__content">
|
|
90
|
+
<div className="query-builder__tooltip__item">
|
|
91
|
+
<div className="query-builder__tooltip__item__label">Name</div>
|
|
92
|
+
<div className="query-builder__tooltip__item__value">
|
|
93
|
+
{columnState.columnName}
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
<div className="query-builder__tooltip__item">
|
|
97
|
+
<div className="query-builder__tooltip__item__label">Type</div>
|
|
98
|
+
<div className="query-builder__tooltip__item__value">
|
|
99
|
+
{type?.path}
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
{multiplicity && (
|
|
103
|
+
<div className="query-builder__tooltip__item">
|
|
104
|
+
<div className="query-builder__tooltip__item__label">
|
|
105
|
+
Multiplicity
|
|
106
|
+
</div>
|
|
107
|
+
<div className="query-builder__tooltip__item__value">
|
|
108
|
+
{getMultiplicityDescription(multiplicity)}
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
)}
|
|
112
|
+
</div>
|
|
113
|
+
}
|
|
114
|
+
>
|
|
115
|
+
{children}
|
|
116
|
+
</Tooltip>
|
|
117
|
+
);
|
|
118
|
+
};
|
|
@@ -53,7 +53,6 @@ import {
|
|
|
53
53
|
import { QueryBuilderPropertyExpressionBadge } from '../QueryBuilderPropertyExpressionEditor.js';
|
|
54
54
|
import { QueryResultModifierModal } from './QueryBuilderResultModifierPanel.js';
|
|
55
55
|
import { QUERY_BUILDER_TEST_ID } from '../QueryBuilder_TestID.js';
|
|
56
|
-
import { QueryBuilderAggregateColumnState } from '../../stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.js';
|
|
57
56
|
import { flowResult } from 'mobx';
|
|
58
57
|
import { useApplicationStore } from '@finos/legend-application';
|
|
59
58
|
import {
|
|
@@ -71,8 +70,6 @@ import {
|
|
|
71
70
|
QUERY_BUILDER_FUNCTION_DND_TYPE,
|
|
72
71
|
} from '../../stores/explorer/QueryFunctionsExplorerState.js';
|
|
73
72
|
import { DEFAULT_LAMBDA_VARIABLE_NAME } from '../../stores/QueryBuilderConfig.js';
|
|
74
|
-
import { QueryBuilderPostFilterTreeConditionNodeData } from '../../stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js';
|
|
75
|
-
import { filterByType } from '@finos/legend-shared';
|
|
76
73
|
import type { QueryBuilderAggregateOperator } from '../../stores/fetch-structure/tds/aggregation/QueryBuilderAggregateOperator.js';
|
|
77
74
|
import type { QueryBuilderTDSState } from '../../stores/fetch-structure/tds/QueryBuilderTDSState.js';
|
|
78
75
|
import { LambdaEditor } from '../shared/LambdaEditor.js';
|
|
@@ -234,21 +231,7 @@ const QueryBuilderProjectionColumnEditor = observer(
|
|
|
234
231
|
|
|
235
232
|
const { projectionColumnState } = props;
|
|
236
233
|
const tdsState = projectionColumnState.tdsState;
|
|
237
|
-
const
|
|
238
|
-
tdsState.postFilterState.nodes.values(),
|
|
239
|
-
)
|
|
240
|
-
.filter(filterByType(QueryBuilderPostFilterTreeConditionNodeData))
|
|
241
|
-
.map((n) => n.condition.columnState);
|
|
242
|
-
|
|
243
|
-
const isRemovalDisabled =
|
|
244
|
-
postFilterColumnStates
|
|
245
|
-
.filter((co) => co instanceof QueryBuilderAggregateColumnState)
|
|
246
|
-
.map(
|
|
247
|
-
(co) =>
|
|
248
|
-
(co as QueryBuilderAggregateColumnState).projectionColumnState,
|
|
249
|
-
)
|
|
250
|
-
.includes(projectionColumnState) ||
|
|
251
|
-
postFilterColumnStates.includes(projectionColumnState);
|
|
234
|
+
const isRemovalDisabled = tdsState.isColumnInUse(projectionColumnState);
|
|
252
235
|
|
|
253
236
|
const removeColumn = (): void =>
|
|
254
237
|
tdsState.removeColumn(projectionColumnState);
|
|
@@ -258,9 +241,7 @@ const QueryBuilderProjectionColumnEditor = observer(
|
|
|
258
241
|
event,
|
|
259
242
|
) => projectionColumnState.setColumnName(event.target.value);
|
|
260
243
|
const isDuplicatedColumnName =
|
|
261
|
-
projectionColumnState.tdsState.
|
|
262
|
-
(column) => column.columnName === projectionColumnState.columnName,
|
|
263
|
-
).length > 1;
|
|
244
|
+
projectionColumnState.tdsState.isDuplicateColumn(projectionColumnState);
|
|
264
245
|
|
|
265
246
|
// aggregation
|
|
266
247
|
const aggregateColumnState = tdsState.aggregationState.columns.find(
|
|
@@ -415,7 +396,6 @@ const QueryBuilderProjectionColumnEditor = observer(
|
|
|
415
396
|
)}
|
|
416
397
|
</div>
|
|
417
398
|
)}
|
|
418
|
-
|
|
419
399
|
<DropdownMenu
|
|
420
400
|
className="query-builder__projection__column__aggregate__operator__dropdown"
|
|
421
401
|
title="Choose Aggregate Operator..."
|
|
@@ -472,7 +452,8 @@ const QueryBuilderProjectionColumnEditor = observer(
|
|
|
472
452
|
disabled={isRemovalDisabled}
|
|
473
453
|
title={
|
|
474
454
|
isRemovalDisabled
|
|
475
|
-
?
|
|
455
|
+
? // TODO: We may want to provide a list of all places where column is in use
|
|
456
|
+
"This column is used and can't be removed"
|
|
476
457
|
: 'Remove'
|
|
477
458
|
}
|
|
478
459
|
>
|
|
@@ -19,9 +19,8 @@ import { editor as monacoEditorAPI, type IDisposable } from 'monaco-editor';
|
|
|
19
19
|
import { observer } from 'mobx-react-lite';
|
|
20
20
|
import {
|
|
21
21
|
clsx,
|
|
22
|
-
setErrorMarkers,
|
|
23
22
|
disposeEditor,
|
|
24
|
-
|
|
23
|
+
getBaseTextEditorOptions,
|
|
25
24
|
getEditorValue,
|
|
26
25
|
normalizeLineEnding,
|
|
27
26
|
FilledWindowMaximizeIcon,
|
|
@@ -29,6 +28,8 @@ import {
|
|
|
29
28
|
LongArrowAltUpIcon,
|
|
30
29
|
Dialog,
|
|
31
30
|
useResizeDetector,
|
|
31
|
+
clearMarkers,
|
|
32
|
+
setErrorMarkers,
|
|
32
33
|
} from '@finos/legend-art';
|
|
33
34
|
import type { LambdaEditorState } from '../../stores/shared/LambdaEditorState.js';
|
|
34
35
|
import {
|
|
@@ -178,7 +179,7 @@ const LambdaEditorInline = observer(
|
|
|
178
179
|
scrollbar: { vertical: 'hidden' },
|
|
179
180
|
};
|
|
180
181
|
const _editor = monacoEditorAPI.create(element, {
|
|
181
|
-
...
|
|
182
|
+
...getBaseTextEditorOptions(),
|
|
182
183
|
language: EDITOR_LANGUAGE.PURE,
|
|
183
184
|
theme: applicationStore.TEMPORARY__isLightThemeEnabled
|
|
184
185
|
? EDITOR_THEME.TEMPORARY__VSCODE_LIGHT
|
|
@@ -309,16 +310,17 @@ const LambdaEditorInline = observer(
|
|
|
309
310
|
editorModel.updateOptions({ tabSize: TAB_SIZE });
|
|
310
311
|
const error = parserError ?? compilationError;
|
|
311
312
|
if (error?.sourceInformation) {
|
|
312
|
-
setErrorMarkers(
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
313
|
+
setErrorMarkers(editorModel, [
|
|
314
|
+
{
|
|
315
|
+
message: error.message,
|
|
316
|
+
startLineNumber: error.sourceInformation.startLine,
|
|
317
|
+
startColumn: error.sourceInformation.startColumn,
|
|
318
|
+
endLineNumber: error.sourceInformation.endLine,
|
|
319
|
+
endColumn: error.sourceInformation.endColumn,
|
|
320
|
+
},
|
|
321
|
+
]);
|
|
320
322
|
} else {
|
|
321
|
-
|
|
323
|
+
clearMarkers();
|
|
322
324
|
}
|
|
323
325
|
}
|
|
324
326
|
}
|
|
@@ -461,7 +463,7 @@ const LambdaEditorPopUp = observer(
|
|
|
461
463
|
if (!editor && textInputRef.current) {
|
|
462
464
|
const element = textInputRef.current;
|
|
463
465
|
const _editor = monacoEditorAPI.create(element, {
|
|
464
|
-
...
|
|
466
|
+
...getBaseTextEditorOptions(),
|
|
465
467
|
language: EDITOR_LANGUAGE.PURE,
|
|
466
468
|
theme: EDITOR_THEME.LEGEND,
|
|
467
469
|
});
|
|
@@ -544,16 +546,17 @@ const LambdaEditorPopUp = observer(
|
|
|
544
546
|
editorModel.updateOptions({ tabSize: TAB_SIZE });
|
|
545
547
|
const error = parserError ?? compilationError;
|
|
546
548
|
if (error?.sourceInformation) {
|
|
547
|
-
setErrorMarkers(
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
549
|
+
setErrorMarkers(editorModel, [
|
|
550
|
+
{
|
|
551
|
+
message: error.message,
|
|
552
|
+
startLineNumber: error.sourceInformation.startLine,
|
|
553
|
+
startColumn: error.sourceInformation.startColumn,
|
|
554
|
+
endLineNumber: error.sourceInformation.endLine,
|
|
555
|
+
endColumn: error.sourceInformation.endColumn,
|
|
556
|
+
},
|
|
557
|
+
]);
|
|
555
558
|
} else {
|
|
556
|
-
|
|
559
|
+
clearMarkers();
|
|
557
560
|
}
|
|
558
561
|
}
|
|
559
562
|
}
|
|
@@ -114,7 +114,11 @@ const ServiceQueryBuilderSetupPanelContent = observer(
|
|
|
114
114
|
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
|
|
115
115
|
placeholder="Choose a service..."
|
|
116
116
|
options={serviceOptions}
|
|
117
|
-
disabled={
|
|
117
|
+
disabled={
|
|
118
|
+
serviceOptions.length < 1 ||
|
|
119
|
+
(serviceOptions.length === 1 &&
|
|
120
|
+
Boolean(selectedServiceOption))
|
|
121
|
+
}
|
|
118
122
|
onChange={onServiceOptionChange}
|
|
119
123
|
value={selectedServiceOption}
|
|
120
124
|
darkMode={!applicationStore.TEMPORARY__isLightThemeEnabled}
|
|
@@ -134,7 +138,11 @@ const ServiceQueryBuilderSetupPanelContent = observer(
|
|
|
134
138
|
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
|
|
135
139
|
placeholder="Choose an execution context..."
|
|
136
140
|
options={executionContextOptions}
|
|
137
|
-
disabled={
|
|
141
|
+
disabled={
|
|
142
|
+
executionContextOptions.length < 1 ||
|
|
143
|
+
(executionContextOptions.length === 1 &&
|
|
144
|
+
Boolean(selectedExecutionContextOption))
|
|
145
|
+
}
|
|
138
146
|
onChange={onExecutionContextOptionChange}
|
|
139
147
|
value={selectedExecutionContextOption}
|
|
140
148
|
darkMode={!applicationStore.TEMPORARY__isLightThemeEnabled}
|
|
@@ -61,6 +61,22 @@ export enum QUERY_BUILDER_HASH_STRUCTURE {
|
|
|
61
61
|
POST_FILTER_OPERATOR_NOT_START_WITH = 'POST_FILTER_OPERATOR_NOT_START_WITH',
|
|
62
62
|
POST_FILTER_STATE = 'POST_FILTER_STATE',
|
|
63
63
|
|
|
64
|
+
// OLAPGroup state
|
|
65
|
+
OLAP_GROUPBY_STATE = 'OLAP_GROUPBY_STATE',
|
|
66
|
+
OLAP_GROUPBY_OPERATION_STATE = 'OLAP_GROUPBY_OPERATION_STATE',
|
|
67
|
+
OLAP_GROUPBY_AGG_OPERATION_STATE = 'OLAP_GROUPBY_AGG_OPERATION_STATE',
|
|
68
|
+
OLAP_GROUPBY_COLUMN_STATE = 'OLAP_GROUPBY_COLUMN_STATE',
|
|
69
|
+
OLAP_GROUPBY_COLUMN_SORTBY_STATE = 'OLAP_GROUPBY_COLUMN_SORTBY_STATE',
|
|
70
|
+
OLAP_OPERATOR_RANK = 'OLAP_OPERATOR_RANK',
|
|
71
|
+
OLAP_OPERATOR_AVERAGE_RANK = 'OLAP_OPERATOR_AVERAGE_RANK',
|
|
72
|
+
OLAP_OPERATOR_DENSE_RANK = 'OLAP_OPERATOR_DENSE_RANK',
|
|
73
|
+
OLAP_OPERATOR_ROW_NUMBER = 'OLAP_OPERATOR_ROW_NUMBER',
|
|
74
|
+
OLAP_OPERATOR_SUM = 'OLAP_OPERATOR_SUM',
|
|
75
|
+
OLAP_OPERATOR_MAX = 'OLAP_OPERATOR_MAX',
|
|
76
|
+
OLAP_OPERATOR_MIN = 'OLAP_OPERATOR_MIN',
|
|
77
|
+
OLAP_OPERATOR_COUNT = 'OLAP_OPERATOR_COUNT',
|
|
78
|
+
OLAP_OPERATOR_AVERAGE = 'OLAP_OPERATOR_AVERAGE',
|
|
79
|
+
|
|
64
80
|
// filter state
|
|
65
81
|
FILTER_TREE_GROUP_NODE_DATA = 'FILTER_TREE_GROUP_NODE_DATA',
|
|
66
82
|
FILTER_TREE_CONDIITION_NODE_DATA = 'FILTER_TREE_CONDITION_NODE_DATA',
|
|
@@ -39,6 +39,7 @@ export enum QUERY_BUILDER_SUPPORTED_FUNCTIONS {
|
|
|
39
39
|
TDS_GROUP_BY = 'meta::pure::tds::groupBy',
|
|
40
40
|
TDS_SORT = 'meta::pure::tds::sort',
|
|
41
41
|
TDS_TAKE = 'meta::pure::tds::take',
|
|
42
|
+
TDS_FUNC = 'meta::pure::tds::func',
|
|
42
43
|
|
|
43
44
|
// filter
|
|
44
45
|
CONTAINS = 'meta::pure::functions::string::contains',
|
|
@@ -64,4 +65,10 @@ export enum QUERY_BUILDER_SUPPORTED_FUNCTIONS {
|
|
|
64
65
|
STD_DEV_SAMPLE = 'meta::pure::functions::math::stdDevSample',
|
|
65
66
|
SUM = 'meta::pure::functions::math::sum',
|
|
66
67
|
UNIQUE_VALUE_ONLY = 'meta::pure::functions::collection::uniqueValueOnly',
|
|
68
|
+
// OLAP
|
|
69
|
+
OLAP_GROUPBY = 'meta::pure::tds::olapGroupBy',
|
|
70
|
+
OLAP_RANK = 'meta::pure::functions::math::olap::rank',
|
|
71
|
+
OLAP_AVERAGE_RANK = 'meta::pure::functions::math::olap::averageRank',
|
|
72
|
+
OLAP_DENSE_RANK = 'meta::pure::functions::math::olap::denseRank',
|
|
73
|
+
OLAP_ROW_NUMBER = 'meta::pure::functions::math::olap::rowNumber',
|
|
67
74
|
}
|