@finos/legend-application-repl 0.0.28 → 0.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/grammar/datacube_filter__lexer.g4 +40 -0
  2. package/grammar/datacube_filter__parser.g4 +14 -0
  3. package/grammar/generateGrammar.js +43 -0
  4. package/grammar/parser/generated/datacube_filter__lexer.interp +59 -0
  5. package/grammar/parser/generated/datacube_filter__lexer.tokens +14 -0
  6. package/grammar/parser/generated/datacube_filter__lexer.ts +142 -0
  7. package/grammar/parser/generated/datacube_filter__parser.interp +38 -0
  8. package/grammar/parser/generated/datacube_filter__parser.tokens +14 -0
  9. package/grammar/parser/generated/datacube_filter__parser.ts +514 -0
  10. package/grammar/parser/parser.ts +55 -0
  11. package/lib/components/Core_LegendREPLApplicationPlugin.d.ts.map +1 -1
  12. package/lib/components/Core_LegendREPLApplicationPlugin.js +0 -7
  13. package/lib/components/Core_LegendREPLApplicationPlugin.js.map +1 -1
  14. package/lib/components/LegendREPLApplication.d.ts +0 -1
  15. package/lib/components/LegendREPLApplication.d.ts.map +1 -1
  16. package/lib/components/LegendREPLFrameworkProvider.d.ts +0 -1
  17. package/lib/components/LegendREPLFrameworkProvider.d.ts.map +1 -1
  18. package/lib/components/REPLStoreProvider.d.ts +1 -1
  19. package/lib/components/REPLStoreProvider.d.ts.map +1 -1
  20. package/lib/components/REPLStoreProvider.js +1 -1
  21. package/lib/components/REPLStoreProvider.js.map +1 -1
  22. package/lib/components/dataCube/DataCube.d.ts.map +1 -1
  23. package/lib/components/dataCube/DataCube.js +15 -4
  24. package/lib/components/dataCube/DataCube.js.map +1 -1
  25. package/lib/components/dataCube/editor/DataCubeEditor.d.ts +2 -4
  26. package/lib/components/dataCube/editor/DataCubeEditor.d.ts.map +1 -1
  27. package/lib/components/dataCube/editor/DataCubeEditor.js +109 -32
  28. package/lib/components/dataCube/editor/DataCubeEditor.js.map +1 -1
  29. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.d.ts +1 -1
  30. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.d.ts.map +1 -1
  31. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js +178 -104
  32. package/lib/components/dataCube/editor/DataCubeEditorCodePanel.js.map +1 -1
  33. package/lib/components/dataCube/editor/{DataCubeEditorSortPanel.d.ts → DataCubeEditorColumnPropertiesPanel.d.ts} +2 -5
  34. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.d.ts.map +1 -0
  35. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js +27 -0
  36. package/lib/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.js.map +1 -0
  37. package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.d.ts +19 -0
  38. package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.d.ts.map +1 -0
  39. package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js +27 -0
  40. package/lib/components/dataCube/editor/DataCubeEditorColumnsPanel.js.map +1 -0
  41. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.d.ts +22 -0
  42. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.d.ts.map +1 -0
  43. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.js +230 -0
  44. package/lib/components/dataCube/editor/DataCubeEditorColumnsSelector.js.map +1 -0
  45. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.d.ts +19 -0
  46. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.d.ts.map +1 -0
  47. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.js +27 -0
  48. package/lib/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.js.map +1 -0
  49. package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.d.ts +19 -0
  50. package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.d.ts.map +1 -0
  51. package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.js +27 -0
  52. package/lib/components/dataCube/editor/DataCubeEditorFilterPanel.js.map +1 -0
  53. package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.d.ts +19 -0
  54. package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.d.ts.map +1 -0
  55. package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.js +27 -0
  56. package/lib/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.js.map +1 -0
  57. package/lib/components/dataCube/editor/DataCubeEditorHPivotsPanel.d.ts +19 -0
  58. package/lib/components/dataCube/editor/DataCubeEditorHPivotsPanel.d.ts.map +1 -0
  59. package/lib/components/dataCube/editor/DataCubeEditorHPivotsPanel.js +27 -0
  60. package/lib/components/dataCube/editor/DataCubeEditorHPivotsPanel.js.map +1 -0
  61. package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.d.ts +19 -0
  62. package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.d.ts.map +1 -0
  63. package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js +26 -0
  64. package/lib/components/dataCube/editor/DataCubeEditorSortsPanel.js.map +1 -0
  65. package/lib/components/dataCube/editor/DataCubeEditorVPivotsPanel.d.ts +19 -0
  66. package/lib/components/dataCube/editor/DataCubeEditorVPivotsPanel.d.ts.map +1 -0
  67. package/lib/components/dataCube/editor/DataCubeEditorVPivotsPanel.js +27 -0
  68. package/lib/components/dataCube/editor/DataCubeEditorVPivotsPanel.js.map +1 -0
  69. package/lib/components/dataCube/grid/DataCubeGrid.d.ts +1 -4
  70. package/lib/components/dataCube/grid/DataCubeGrid.d.ts.map +1 -1
  71. package/lib/components/dataCube/grid/DataCubeGrid.js +75 -30
  72. package/lib/components/dataCube/grid/DataCubeGrid.js.map +1 -1
  73. package/lib/grammar/generated/datacube_filter__lexer.d.ts +31 -0
  74. package/lib/grammar/generated/datacube_filter__lexer.js +118 -0
  75. package/lib/grammar/generated/datacube_filter__parser.d.ts +91 -0
  76. package/lib/grammar/generated/datacube_filter__parser.js +485 -0
  77. package/lib/grammar/parser.d.ts +16 -0
  78. package/lib/grammar/parser.js +39 -0
  79. package/lib/index.css +2 -2
  80. package/lib/index.css.map +1 -1
  81. package/lib/package.json +9 -6
  82. package/lib/server/REPLServerClient.d.ts +2 -3
  83. package/lib/server/REPLServerClient.d.ts.map +1 -1
  84. package/lib/server/models/DataCubeEngineModels.d.ts +8 -1
  85. package/lib/server/models/DataCubeEngineModels.d.ts.map +1 -1
  86. package/lib/server/models/DataCubeEngineModels.js +13 -0
  87. package/lib/server/models/DataCubeEngineModels.js.map +1 -1
  88. package/lib/stores/dataCube/DataCubeDefaultConfig.d.ts +17 -0
  89. package/lib/stores/dataCube/DataCubeDefaultConfig.d.ts.map +1 -0
  90. package/lib/stores/dataCube/DataCubeDefaultConfig.js +17 -0
  91. package/lib/stores/dataCube/DataCubeDefaultConfig.js.map +1 -0
  92. package/lib/stores/dataCube/DataCubeState.d.ts +6 -6
  93. package/lib/stores/dataCube/DataCubeState.d.ts.map +1 -1
  94. package/lib/stores/dataCube/DataCubeState.js +18 -14
  95. package/lib/stores/dataCube/DataCubeState.js.map +1 -1
  96. package/lib/stores/dataCube/{DataCubeStore.d.ts → REPLStore.d.ts} +1 -1
  97. package/lib/stores/dataCube/REPLStore.d.ts.map +1 -0
  98. package/lib/stores/dataCube/{DataCubeStore.js → REPLStore.js} +1 -1
  99. package/lib/stores/dataCube/REPLStore.js.map +1 -0
  100. package/lib/stores/dataCube/core/DataCubeCoreState.d.ts +29 -0
  101. package/lib/stores/dataCube/core/DataCubeCoreState.d.ts.map +1 -0
  102. package/lib/stores/dataCube/core/DataCubeCoreState.js +46 -0
  103. package/lib/stores/dataCube/core/DataCubeCoreState.js.map +1 -0
  104. package/lib/stores/dataCube/core/DataCubeEngine.d.ts +2 -3
  105. package/lib/stores/dataCube/core/DataCubeEngine.d.ts.map +1 -1
  106. package/lib/stores/dataCube/core/DataCubeEngine.js +2 -3
  107. package/lib/stores/dataCube/core/DataCubeEngine.js.map +1 -1
  108. package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts +27 -3
  109. package/lib/stores/dataCube/core/DataCubeQueryBuilder.d.ts.map +1 -1
  110. package/lib/stores/dataCube/core/DataCubeQueryBuilder.js +210 -278
  111. package/lib/stores/dataCube/core/DataCubeQueryBuilder.js.map +1 -1
  112. package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts +72 -0
  113. package/lib/stores/dataCube/core/DataCubeQueryEngine.d.ts.map +1 -0
  114. package/lib/stores/dataCube/core/DataCubeQueryEngine.js +67 -0
  115. package/lib/stores/dataCube/core/DataCubeQueryEngine.js.map +1 -0
  116. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts +73 -38
  117. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.d.ts.map +1 -1
  118. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js +101 -40
  119. package/lib/stores/dataCube/core/DataCubeQuerySnapshot.js.map +1 -1
  120. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.d.ts +32 -0
  121. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.d.ts.map +1 -0
  122. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js +232 -0
  123. package/lib/stores/dataCube/core/DataCubeQuerySnapshotBuilder.js.map +1 -0
  124. package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.d.ts +8 -2
  125. package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.d.ts.map +1 -1
  126. package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.js +20 -5
  127. package/lib/stores/dataCube/core/DataCubeQuerySnapshotManager.js.map +1 -1
  128. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.d.ts +8 -3
  129. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.d.ts.map +1 -1
  130. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.js +8 -4
  131. package/lib/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.js.map +1 -1
  132. package/lib/stores/dataCube/editor/{DataCubeEditorCodeState.d.ts → DataCubeEditorCodePanelState.d.ts} +6 -5
  133. package/lib/stores/dataCube/editor/DataCubeEditorCodePanelState.d.ts.map +1 -0
  134. package/lib/stores/dataCube/editor/{DataCubeEditorCodeState.js → DataCubeEditorCodePanelState.js} +7 -7
  135. package/lib/stores/dataCube/editor/DataCubeEditorCodePanelState.js.map +1 -0
  136. package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.d.ts +30 -0
  137. package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.d.ts.map +1 -0
  138. package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.js +51 -0
  139. package/lib/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.js.map +1 -0
  140. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts +29 -0
  141. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.d.ts.map +1 -0
  142. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.js +63 -0
  143. package/lib/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.js.map +1 -0
  144. package/lib/stores/dataCube/editor/{DataCubeEditorQuerySnapshotBuilder.d.ts → DataCubeEditorPanelState.d.ts} +2 -2
  145. package/lib/stores/dataCube/editor/DataCubeEditorPanelState.d.ts.map +1 -0
  146. package/lib/stores/dataCube/editor/{DataCubeEditorQuerySnapshotBuilder.js → DataCubeEditorPanelState.js} +1 -1
  147. package/lib/stores/dataCube/editor/DataCubeEditorPanelState.js.map +1 -0
  148. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts +34 -0
  149. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.d.ts.map +1 -0
  150. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js +67 -0
  151. package/lib/stores/dataCube/editor/DataCubeEditorSortsPanelState.js.map +1 -0
  152. package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts +10 -7
  153. package/lib/stores/dataCube/editor/DataCubeEditorState.d.ts.map +1 -1
  154. package/lib/stores/dataCube/editor/DataCubeEditorState.js +25 -17
  155. package/lib/stores/dataCube/editor/DataCubeEditorState.js.map +1 -1
  156. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts +13 -7
  157. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.d.ts.map +1 -1
  158. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js +87 -86
  159. package/lib/stores/dataCube/grid/DataCubeGridClientEngine.js.map +1 -1
  160. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts +20 -0
  161. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.d.ts.map +1 -0
  162. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js +103 -0
  163. package/lib/stores/dataCube/grid/DataCubeGridQueryBuilder.js.map +1 -0
  164. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.d.ts +7 -1
  165. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.d.ts.map +1 -1
  166. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.js +121 -214
  167. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.js.map +1 -1
  168. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.d.ts +25 -0
  169. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.d.ts.map +1 -0
  170. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js +83 -0
  171. package/lib/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.js.map +1 -0
  172. package/lib/stores/dataCube/grid/DataCubeGridState.d.ts +6 -5
  173. package/lib/stores/dataCube/grid/DataCubeGridState.d.ts.map +1 -1
  174. package/lib/stores/dataCube/grid/DataCubeGridState.js +32 -10
  175. package/lib/stores/dataCube/grid/DataCubeGridState.js.map +1 -1
  176. package/package.json +15 -12
  177. package/src/components/Core_LegendREPLApplicationPlugin.tsx +0 -7
  178. package/src/components/REPLStoreProvider.tsx +1 -1
  179. package/src/components/dataCube/DataCube.tsx +51 -29
  180. package/src/components/dataCube/editor/DataCubeEditor.tsx +204 -95
  181. package/src/components/dataCube/editor/DataCubeEditorCodePanel.tsx +186 -190
  182. package/src/components/dataCube/editor/DataCubeEditorColumnPropertiesPanel.tsx +42 -0
  183. package/src/components/dataCube/editor/DataCubeEditorColumnsPanel.tsx +41 -0
  184. package/src/components/dataCube/editor/DataCubeEditorColumnsSelector.tsx +408 -0
  185. package/src/components/dataCube/editor/DataCubeEditorExtendedColumnsPanel.tsx +41 -0
  186. package/src/components/dataCube/editor/DataCubeEditorFilterPanel.tsx +41 -0
  187. package/src/components/dataCube/editor/DataCubeEditorGeneralPropertiesPanel.tsx +48 -0
  188. package/src/components/dataCube/editor/DataCubeEditorHPivotsPanel.tsx +41 -0
  189. package/src/components/dataCube/editor/DataCubeEditorSortsPanel.tsx +41 -0
  190. package/src/components/dataCube/editor/DataCubeEditorVPivotsPanel.tsx +41 -0
  191. package/src/components/dataCube/grid/DataCubeGrid.tsx +134 -43
  192. package/src/server/REPLServerClient.ts +2 -2
  193. package/src/server/models/DataCubeEngineModels.ts +23 -1
  194. package/{lib/grid.css → src/stores/dataCube/DataCubeDefaultConfig.ts} +2 -2
  195. package/src/stores/dataCube/DataCubeState.ts +26 -20
  196. package/src/stores/dataCube/core/DataCubeCoreState.ts +57 -0
  197. package/src/stores/dataCube/core/DataCubeEngine.ts +6 -4
  198. package/src/stores/dataCube/core/DataCubeQueryBuilder.ts +349 -353
  199. package/src/stores/dataCube/core/DataCubeQueryEngine.ts +90 -0
  200. package/src/stores/dataCube/core/DataCubeQuerySnapshot.ts +168 -156
  201. package/src/stores/dataCube/core/DataCubeQuerySnapshotBuilder.ts +398 -0
  202. package/src/stores/dataCube/core/DataCubeQuerySnapshotManager.ts +37 -5
  203. package/src/stores/dataCube/core/DataCubeQuerySnapshotSubscriber.ts +13 -5
  204. package/src/stores/dataCube/editor/{DataCubeEditorCodeState.ts → DataCubeEditorCodePanelState.ts} +6 -6
  205. package/src/stores/dataCube/editor/DataCubeEditorColumnsSelectorState.ts +61 -0
  206. package/src/stores/dataCube/editor/DataCubeEditorGeneralPropertiesPanelState.ts +80 -0
  207. package/src/stores/dataCube/editor/{DataCubeEditorQuerySnapshotBuilder.ts → DataCubeEditorPanelState.ts} +1 -1
  208. package/src/stores/dataCube/editor/DataCubeEditorSortsPanelState.ts +116 -0
  209. package/src/stores/dataCube/editor/DataCubeEditorState.ts +29 -20
  210. package/src/stores/dataCube/grid/DataCubeGridClientEngine.ts +96 -128
  211. package/src/stores/dataCube/grid/DataCubeGridQueryBuilder.ts +154 -0
  212. package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.tsx +191 -0
  213. package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotBuilder.ts +127 -0
  214. package/src/stores/dataCube/grid/DataCubeGridState.ts +41 -14
  215. package/tsconfig.json +23 -9
  216. package/lib/components/dataCube/editor/DataCubeEditorSortPanel.d.ts.map +0 -1
  217. package/lib/components/dataCube/editor/DataCubeEditorSortPanel.js +0 -61
  218. package/lib/components/dataCube/editor/DataCubeEditorSortPanel.js.map +0 -1
  219. package/lib/grid.css.map +0 -1
  220. package/lib/repl.css +0 -17
  221. package/lib/repl.css.map +0 -1
  222. package/lib/stores/dataCube/DataCubeMetaModelConst.d.ts +0 -63
  223. package/lib/stores/dataCube/DataCubeMetaModelConst.d.ts.map +0 -1
  224. package/lib/stores/dataCube/DataCubeMetaModelConst.js +0 -72
  225. package/lib/stores/dataCube/DataCubeMetaModelConst.js.map +0 -1
  226. package/lib/stores/dataCube/DataCubeStore.d.ts.map +0 -1
  227. package/lib/stores/dataCube/DataCubeStore.js.map +0 -1
  228. package/lib/stores/dataCube/core/DataCubeQueryAnalyzer.d.ts +0 -37
  229. package/lib/stores/dataCube/core/DataCubeQueryAnalyzer.d.ts.map +0 -1
  230. package/lib/stores/dataCube/core/DataCubeQueryAnalyzer.js +0 -269
  231. package/lib/stores/dataCube/core/DataCubeQueryAnalyzer.js.map +0 -1
  232. package/lib/stores/dataCube/editor/DataCubeEditorCodeState.d.ts.map +0 -1
  233. package/lib/stores/dataCube/editor/DataCubeEditorCodeState.js.map +0 -1
  234. package/lib/stores/dataCube/editor/DataCubeEditorQuerySnapshotBuilder.d.ts.map +0 -1
  235. package/lib/stores/dataCube/editor/DataCubeEditorQuerySnapshotBuilder.js.map +0 -1
  236. package/lib/stores/dataCube/editor/DataCubeEditorSortState.d.ts +0 -46
  237. package/lib/stores/dataCube/editor/DataCubeEditorSortState.d.ts.map +0 -1
  238. package/lib/stores/dataCube/editor/DataCubeEditorSortState.js +0 -133
  239. package/lib/stores/dataCube/editor/DataCubeEditorSortState.js.map +0 -1
  240. package/src/components/dataCube/editor/DataCubeEditorSortPanel.tsx +0 -274
  241. package/src/stores/dataCube/DataCubeMetaModelConst.ts +0 -76
  242. package/src/stores/dataCube/core/DataCubeQueryAnalyzer.ts +0 -424
  243. package/src/stores/dataCube/editor/DataCubeEditorSortState.ts +0 -198
  244. package/src/stores/dataCube/grid/DataCubeGridQuerySnapshotAnalyzer.ts +0 -281
  245. /package/src/stores/dataCube/{DataCubeStore.ts → REPLStore.ts} +0 -0
@@ -13,305 +13,251 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { PRIMITIVE_TYPE, V1_AppliedFunction, V1_AppliedProperty, V1_CBoolean, V1_CDateTime, V1_CDecimal, V1_CFloat, V1_CInteger, V1_CStrictDate, V1_CStrictTime, V1_CString, V1_ClassInstance, V1_ClassInstanceType, V1_ColSpec, V1_ColSpecArray, V1_Collection, V1_Lambda, V1_Multiplicity, V1_PackageableElementPtr, V1_Variable, V1_deserializeValueSpecification, extractElementNameFromPath, } from '@finos/legend-graph';
17
- import { guaranteeNonNullable, guaranteeIsString, guaranteeIsBoolean, guaranteeIsNumber, UnsupportedOperationError, } from '@finos/legend-shared';
18
- import { DATA_CUBE_AGGREGATE_FUNCTION, DATA_CUBE_COLUMN_SORT_DIRECTION, DATA_CUBE_FILTER_OPERATION, DATA_CUBE_FUNCTIONS, DEFAULT_LAMBDA_VARIABLE_NAME, } from '../DataCubeMetaModelConst.js';
19
- function createColSpec(name, type, function1, function2) {
20
- const instance = new V1_ClassInstance();
21
- instance.type = V1_ClassInstanceType.COL_SPEC;
22
- const colSpec = new V1_ColSpec();
23
- colSpec.name = name;
24
- colSpec.type = type;
25
- colSpec.function1 = function1;
26
- colSpec.function2 = function2;
27
- instance.value = colSpec;
28
- return instance;
16
+ /***************************************************************************************
17
+ * [CORE]
18
+ *
19
+ * These are utilities used to build the executable query from the query snapshot.
20
+ * The executable query is then used to fetch data.
21
+ ***************************************************************************************/
22
+ import { PRIMITIVE_TYPE, V1_AppliedFunction, V1_AppliedProperty, V1_CBoolean, V1_CDateTime, V1_CDecimal, V1_CFloat, V1_CInteger, V1_CStrictDate, V1_CStrictTime, V1_CString, V1_ClassInstance, V1_ClassInstanceType, V1_ColSpec, V1_ColSpecArray, V1_Collection, V1_Lambda, V1_Multiplicity, V1_PackageableElementPtr, V1_Variable, V1_deserializeValueSpecification, extractElementNameFromPath as _name, } from '@finos/legend-graph';
23
+ import { DataCubeQuerySnapshotSortDirection, DataCubeQuerySnapshotFilterOperation, DataCubeQueryFilterGroupOperation, _findCol, } from './DataCubeQuerySnapshot.js';
24
+ import { guaranteeNonNullable, guaranteeIsString, guaranteeIsBoolean, guaranteeIsNumber, UnsupportedOperationError, guaranteeType, } from '@finos/legend-shared';
25
+ import { DataCubeFunction, DEFAULT_LAMBDA_VARIABLE_NAME, INTERNAL__FILLER_COUNT_AGG_COLUMN_NAME, } from './DataCubeQueryEngine.js';
26
+ // --------------------------------- UTILITIES ---------------------------------
27
+ function _deserializeToLambda(json) {
28
+ return guaranteeType(V1_deserializeValueSpecification(json, []), V1_Lambda);
29
29
  }
30
- function getAggregationColSpec(column, functionName, columnType,
31
- // Temporary. Remove it when we support groupBy with empty aggregations
32
- columnName) {
33
- const colSpec = new V1_ColSpec();
34
- const aggLambda = new V1_Lambda();
30
+ export function _var(name) {
31
+ const variable = new V1_Variable();
32
+ variable.name = name ?? DEFAULT_LAMBDA_VARIABLE_NAME;
33
+ return variable;
34
+ }
35
+ export function _property(name, variable) {
35
36
  const property = new V1_AppliedProperty();
36
- property.property = column;
37
- property.class = columnType;
38
- const defaultVariable = new V1_Variable();
39
- defaultVariable.name = DEFAULT_LAMBDA_VARIABLE_NAME;
40
- property.parameters = [defaultVariable];
41
- aggLambda.body.push(property);
42
- aggLambda.parameters.push(defaultVariable);
43
- colSpec.function1 = aggLambda;
44
- const funcLambda = new V1_Lambda();
45
- const aggFunc = new V1_AppliedFunction();
46
- aggFunc.function = functionName;
47
- const aggVariable = new V1_Variable();
48
- aggVariable.name = 'agg';
49
- funcLambda.body.push(aggFunc);
50
- aggFunc.parameters.push(aggVariable);
51
- funcLambda.parameters.push(aggVariable);
52
- colSpec.function2 = funcLambda;
53
- colSpec.name = columnName ?? column;
54
- return colSpec;
37
+ property.property = name;
38
+ property.parameters.push(variable ?? _var());
39
+ return property;
40
+ }
41
+ export function _lambda(parameters, body) {
42
+ const lambda = new V1_Lambda();
43
+ lambda.parameters = parameters;
44
+ lambda.body = body;
45
+ return lambda;
55
46
  }
56
- function getPrimitiveValueSpecification(type, column) {
47
+ export function _function(functionName, parameters) {
48
+ const func = new V1_AppliedFunction();
49
+ func.function = functionName;
50
+ func.parameters = parameters;
51
+ return func;
52
+ }
53
+ function _collection(values) {
54
+ const collection = new V1_Collection();
55
+ collection.multiplicity = new V1_Multiplicity(values.length, values.length);
56
+ collection.values = values;
57
+ return collection;
58
+ }
59
+ export function _value(type, value) {
60
+ const _val = (primitiveValue, val) => {
61
+ primitiveValue.value = val;
62
+ return primitiveValue;
63
+ };
57
64
  switch (type) {
58
- case PRIMITIVE_TYPE.STRING: {
59
- const stringValue = new V1_CString();
60
- stringValue.value = guaranteeIsString(column);
61
- return stringValue;
62
- }
63
- case PRIMITIVE_TYPE.BOOLEAN: {
64
- const booleanValue = new V1_CBoolean();
65
- booleanValue.value = guaranteeIsBoolean(column);
66
- return booleanValue;
67
- }
65
+ case PRIMITIVE_TYPE.STRING:
66
+ return _val(new V1_CString(), guaranteeIsString(value));
67
+ case PRIMITIVE_TYPE.BOOLEAN:
68
+ return _val(new V1_CBoolean(), guaranteeIsBoolean(value));
68
69
  case PRIMITIVE_TYPE.NUMBER:
69
- case PRIMITIVE_TYPE.DECIMAL: {
70
- const cDecimal = new V1_CDecimal();
71
- cDecimal.value = guaranteeIsNumber(column);
72
- return cDecimal;
73
- }
74
- case PRIMITIVE_TYPE.INTEGER: {
75
- const cInteger = new V1_CInteger();
76
- cInteger.value = guaranteeIsNumber(column);
77
- return cInteger;
78
- }
79
- case PRIMITIVE_TYPE.FLOAT: {
80
- const cFloat = new V1_CFloat();
81
- cFloat.value = guaranteeIsNumber(column);
82
- return cFloat;
83
- }
70
+ case PRIMITIVE_TYPE.DECIMAL:
71
+ return _val(new V1_CDecimal(), guaranteeIsNumber(value));
72
+ case PRIMITIVE_TYPE.INTEGER:
73
+ return _val(new V1_CInteger(), guaranteeIsNumber(value));
74
+ case PRIMITIVE_TYPE.FLOAT:
75
+ return _val(new V1_CFloat(), guaranteeIsNumber(value));
84
76
  case PRIMITIVE_TYPE.DATE:
85
- case PRIMITIVE_TYPE.DATETIME: {
86
- const cDateTime = new V1_CDateTime();
87
- cDateTime.value = guaranteeIsString(column);
88
- return cDateTime;
89
- }
90
- case PRIMITIVE_TYPE.STRICTDATE: {
91
- const cStrictDate = new V1_CStrictDate();
92
- cStrictDate.value = guaranteeIsString(column);
93
- return cStrictDate;
94
- }
95
- case PRIMITIVE_TYPE.STRICTTIME: {
96
- const cStrictTime = new V1_CStrictTime();
97
- cStrictTime.value = guaranteeIsString(column);
98
- return cStrictTime;
99
- }
77
+ case PRIMITIVE_TYPE.DATETIME:
78
+ return _val(new V1_CDateTime(), guaranteeIsString(value));
79
+ case PRIMITIVE_TYPE.STRICTDATE:
80
+ return _val(new V1_CStrictDate(), guaranteeIsString(value));
81
+ case PRIMITIVE_TYPE.STRICTTIME:
82
+ return _val(new V1_CStrictTime(), guaranteeIsString(value));
100
83
  default:
101
- throw new UnsupportedOperationError(`Unsupported dataCube column type ${type}`);
84
+ throw new UnsupportedOperationError(`Unsupported column type '${type}'`);
102
85
  }
103
86
  }
104
- function processFilterQuery(filter) {
105
- const defaultVariable = new V1_Variable();
106
- defaultVariable.name = DEFAULT_LAMBDA_VARIABLE_NAME;
87
+ function _elementPtr(fullPath) {
88
+ const ptr = new V1_PackageableElementPtr();
89
+ ptr.fullPath = fullPath;
90
+ return ptr;
91
+ }
92
+ function _classInstance(type, value) {
93
+ const instance = new V1_ClassInstance();
94
+ instance.type = type;
95
+ instance.value = value;
96
+ return instance;
97
+ }
98
+ export function _colSpec(name, function1, function2) {
99
+ const colSpec = new V1_ColSpec();
100
+ colSpec.name = name;
101
+ colSpec.function1 = function1;
102
+ colSpec.function2 = function2;
103
+ return colSpec;
104
+ }
105
+ // --------------------------------- BUILDING BLOCKS ---------------------------------
106
+ export function _col(name, function1, function2) {
107
+ return _classInstance(V1_ClassInstanceType.COL_SPEC, _colSpec(name, function1, function2));
108
+ }
109
+ export function _cols(colSpecs) {
110
+ const colSpecArray = new V1_ColSpecArray();
111
+ colSpecArray.colSpecs = colSpecs;
112
+ return _classInstance(V1_ClassInstanceType.COL_SPEC_ARRAY, colSpecArray);
113
+ }
114
+ export function _aggCols(columns) {
115
+ const variable = _var();
116
+ return columns.length
117
+ ? columns.map((agg) => _colSpec(agg.name, _lambda([variable], [_property(agg.name, variable)]), _lambda([variable], [_function(agg.function, [variable])])))
118
+ : // if no aggregates are specified, add a dummy count() aggregate to satisfy compiler
119
+ [
120
+ _colSpec(INTERNAL__FILLER_COUNT_AGG_COLUMN_NAME, _lambda([variable], [variable]), _lambda([variable], [_function(DataCubeFunction.COUNT, [variable])])),
121
+ ];
122
+ }
123
+ export function _filter(filter) {
107
124
  if ('groupOperation' in filter) {
108
- const groupFilter = filter;
109
- let conditionExpressions = [];
110
- groupFilter.conditions.forEach((condition) => {
111
- const conditionExpression = processFilterQuery(condition);
112
- conditionExpressions.push(conditionExpression);
113
- if (conditionExpressions.length === 2) {
114
- const groupCondition = groupFilter.groupOperation;
115
- const groupFunc = new V1_AppliedFunction();
116
- groupFunc.function = groupCondition;
117
- groupFunc.parameters = conditionExpressions;
118
- conditionExpressions = [groupFunc];
125
+ const group = filter;
126
+ const groupOperation = group.groupOperation === DataCubeQueryFilterGroupOperation.AND
127
+ ? DataCubeFunction.AND
128
+ : DataCubeFunction.OR;
129
+ let conditions = [];
130
+ group.conditions.forEach((condition) => {
131
+ conditions.push(_filter(condition));
132
+ // NOTE: a group operation (and/or) function can only have 2 parameters, so we
133
+ // have to breakdown the group operation into nested group functions
134
+ if (conditions.length === 2) {
135
+ conditions = [_function(groupOperation, conditions)];
119
136
  }
120
137
  });
121
- if (conditionExpressions.length === 1) {
122
- return guaranteeNonNullable(conditionExpressions[0]);
123
- }
138
+ return guaranteeNonNullable(conditions[0]);
124
139
  }
125
140
  else {
126
141
  const condition = filter;
127
- const filterCondition = new V1_AppliedFunction();
128
- const property = new V1_AppliedProperty();
129
- property.property = condition.name;
130
- property.class = condition.type;
131
- property.parameters = [defaultVariable];
142
+ const property = _property(condition.name);
143
+ const _cond = (fn, ...p) => _function(_name(fn), [property, ...p]);
144
+ const _val = () => _value(condition.type, condition.value);
145
+ const _not = (fn) => _function(_name(DataCubeFunction.NOT), [fn]);
132
146
  switch (condition.operation) {
133
- case DATA_CUBE_FILTER_OPERATION.EQUALS:
134
- case DATA_CUBE_FILTER_OPERATION.GREATER_THAN:
135
- case DATA_CUBE_FILTER_OPERATION.GREATER_THAN_OR_EQUAL:
136
- case DATA_CUBE_FILTER_OPERATION.LESS_THAN:
137
- case DATA_CUBE_FILTER_OPERATION.LESS_THAN_OR_EQUAL:
138
- case DATA_CUBE_FILTER_OPERATION.CONTAINS:
139
- case DATA_CUBE_FILTER_OPERATION.ENDS_WITH:
140
- case DATA_CUBE_FILTER_OPERATION.STARTS_WITH: {
141
- filterCondition.function = condition.operation;
142
- filterCondition.parameters.push(property);
143
- filterCondition.parameters.push(getPrimitiveValueSpecification(condition.type, condition.value));
144
- break;
145
- }
146
- case DATA_CUBE_FILTER_OPERATION.BLANK: {
147
- filterCondition.function = condition.operation;
148
- filterCondition.parameters.push(property);
149
- break;
150
- }
151
- case DATA_CUBE_FILTER_OPERATION.NOT_EQUAL: {
152
- filterCondition.function = extractElementNameFromPath(DATA_CUBE_FUNCTIONS.NOT);
153
- const filterConditionFunc = new V1_AppliedFunction();
154
- filterConditionFunc.function = DATA_CUBE_FILTER_OPERATION.EQUALS;
155
- filterConditionFunc.parameters.push(property);
156
- filterConditionFunc.parameters.push(getPrimitiveValueSpecification(condition.type, condition.value));
157
- filterCondition.parameters.push(filterConditionFunc);
158
- break;
159
- }
160
- case DATA_CUBE_FILTER_OPERATION.NOT_BLANK: {
161
- filterCondition.function = extractElementNameFromPath(DATA_CUBE_FUNCTIONS.NOT);
162
- const filterConditionFunc = new V1_AppliedFunction();
163
- filterConditionFunc.function = DATA_CUBE_FILTER_OPERATION.BLANK;
164
- filterConditionFunc.parameters.push(property);
165
- filterConditionFunc.parameters.push(getPrimitiveValueSpecification(condition.type, condition.value));
166
- filterCondition.parameters.push(filterConditionFunc);
167
- break;
168
- }
169
- case DATA_CUBE_FILTER_OPERATION.NOT_CONTAINS: {
170
- filterCondition.function = extractElementNameFromPath(DATA_CUBE_FUNCTIONS.NOT);
171
- const filterConditionFunc = new V1_AppliedFunction();
172
- filterConditionFunc.function = DATA_CUBE_FILTER_OPERATION.CONTAINS;
173
- filterConditionFunc.parameters.push(property);
174
- filterConditionFunc.parameters.push(getPrimitiveValueSpecification(condition.type, condition.value));
175
- filterCondition.parameters.push(filterConditionFunc);
176
- break;
177
- }
147
+ case DataCubeQuerySnapshotFilterOperation.EQUAL:
148
+ return _cond(DataCubeFunction.EQUAL, _val());
149
+ case DataCubeQuerySnapshotFilterOperation.GREATER_THAN:
150
+ return _cond(DataCubeFunction.GREATER_THAN, _val());
151
+ case DataCubeQuerySnapshotFilterOperation.GREATER_THAN_OR_EQUAL:
152
+ return _cond(DataCubeFunction.GREATER_THAN_EQUAL, _val());
153
+ case DataCubeQuerySnapshotFilterOperation.LESS_THAN:
154
+ return _cond(DataCubeFunction.LESS_THAN, _val());
155
+ case DataCubeQuerySnapshotFilterOperation.LESS_THAN_OR_EQUAL:
156
+ return _cond(DataCubeFunction.LESS_THAN_EQUAL, _val());
157
+ case DataCubeQuerySnapshotFilterOperation.CONTAINS:
158
+ return _cond(DataCubeFunction.CONTAINS, _val());
159
+ case DataCubeQuerySnapshotFilterOperation.ENDS_WITH:
160
+ return _cond(DataCubeFunction.ENDS_WITH, _val());
161
+ case DataCubeQuerySnapshotFilterOperation.STARTS_WITH:
162
+ return _cond(DataCubeFunction.STARTS_WITH, _val());
163
+ case DataCubeQuerySnapshotFilterOperation.BLANK:
164
+ return _cond(DataCubeFunction.IS_EMPTY);
165
+ case DataCubeQuerySnapshotFilterOperation.NOT_EQUAL:
166
+ return _not(_cond(DataCubeFunction.EQUAL, _val()));
167
+ case DataCubeQuerySnapshotFilterOperation.NOT_BLANK:
168
+ return _not(_cond(DataCubeFunction.IS_EMPTY));
169
+ case DataCubeQuerySnapshotFilterOperation.NOT_CONTAINS:
170
+ return _not(_cond(DataCubeFunction.CONTAINS, _val()));
178
171
  default:
179
- throw new UnsupportedOperationError(`Unsupported filter operation ${condition.operation}`);
172
+ throw new UnsupportedOperationError(`Unsupported filter operation '${condition.operation}'`);
180
173
  }
181
- return filterCondition;
182
174
  }
183
- throw new UnsupportedOperationError(`Unsupported dataCube filter`, filter);
184
175
  }
185
- export function buildExecutableQueryFromSnapshot(snapshot) {
186
- const sourceQuery = V1_deserializeValueSpecification(snapshot.sourceQuery, []);
176
+ export function _groupByExtend(columns, columnsUsedInGroupBy) {
177
+ const missingCols = columns.filter((col) => !_findCol(columnsUsedInGroupBy, col.name));
178
+ return missingCols.length
179
+ ? _function(_name(DataCubeFunction.EXTEND), [
180
+ _cols(missingCols.map((col) => _colSpec(col.name, _lambda([_var()], [_value(PRIMITIVE_TYPE.STRING, '')])))),
181
+ ])
182
+ : undefined;
183
+ }
184
+ // --------------------------------- MAIN ---------------------------------
185
+ export function buildExecutableQuery(snapshot, options) {
186
+ const data = snapshot.data;
187
+ const sourceQuery = V1_deserializeValueSpecification(data.sourceQuery, []);
187
188
  const sequence = [];
189
+ const funcMap = {};
190
+ const _process = (funcMapKey, func) => {
191
+ sequence.push(func);
192
+ funcMap[funcMapKey] = func;
193
+ };
188
194
  // --------------------------------- LEAF EXTEND ---------------------------------
189
- // TODO: @akphi - implement this
195
+ if (data.leafExtendedColumns.length) {
196
+ _process('leafExtend', _function(_name(DataCubeFunction.EXTEND), [
197
+ _cols(data.leafExtendedColumns.map((col) => _colSpec(col.name, _deserializeToLambda(col.lambda)))),
198
+ ]));
199
+ }
190
200
  // --------------------------------- FILTER ---------------------------------
191
- // TODO: @akphi - implement this
192
- // --------------------------------- GROUP BY FILTER ---------------------------------
193
- if (snapshot.groupByFilter) {
194
- const filter = snapshot.groupByFilter;
195
- const filterValueSpec = processFilterQuery(filter);
196
- const filterLambda = new V1_Lambda();
197
- const defaultVariable = new V1_Variable();
198
- defaultVariable.name = DEFAULT_LAMBDA_VARIABLE_NAME;
199
- filterLambda.body = [filterValueSpec];
200
- filterLambda.parameters = [defaultVariable];
201
- const filterFunc = new V1_AppliedFunction();
202
- filterFunc.function = extractElementNameFromPath(DATA_CUBE_FUNCTIONS.FILTER);
203
- filterFunc.parameters.push(filterLambda);
204
- sequence.push(filterFunc);
201
+ if (data.filter) {
202
+ _process('filter', _function(_name(DataCubeFunction.FILTER), [
203
+ _lambda([_var()], [_filter(data.filter)]),
204
+ ]));
205
205
  }
206
- // --------------------------------- RENAME ---------------------------------
207
- // TODO: @akphi - implement this
208
206
  // --------------------------------- GROUP BY ---------------------------------
209
- // TODO: @akphi - implement this
210
- if (snapshot.groupByColumns.length) {
211
- const groupByInstance = new V1_ClassInstance();
212
- groupByInstance.type = V1_ClassInstanceType.COL_SPEC_ARRAY;
213
- const groupByColSpecArray = new V1_ColSpecArray();
214
- const aggregationColSpecArray = new V1_ColSpecArray();
215
- const aggregationInstance = new V1_ClassInstance();
216
- aggregationInstance.type = V1_ClassInstanceType.COL_SPEC_ARRAY;
217
- if (snapshot.groupByExpandedKeys.length !== snapshot.groupByColumns.length) {
218
- const groupKeys = snapshot.groupByExpandedKeys;
219
- for (let index = 0; index <= groupKeys.length; index++) {
220
- const currentGroupByColumn = snapshot.groupByColumns[index];
221
- const columnSpec = new V1_ColSpec();
222
- columnSpec.name = guaranteeNonNullable(currentGroupByColumn).name;
223
- groupByColSpecArray.colSpecs.push(columnSpec);
224
- }
225
- // Temporary. Remove it later when we support empty aggregations
226
- if (snapshot.groupByAggColumns.length === 0) {
227
- const column = guaranteeNonNullable(snapshot.groupByColumns[0]);
228
- const colSpec = getAggregationColSpec(column.name, DATA_CUBE_AGGREGATE_FUNCTION.COUNT, PRIMITIVE_TYPE.STRING, DATA_CUBE_AGGREGATE_FUNCTION.COUNT);
229
- aggregationColSpecArray.colSpecs.push(colSpec);
230
- }
231
- }
232
- if (snapshot.groupByExpandedKeys.length === 0 ||
233
- snapshot.groupByExpandedKeys.length !== snapshot.groupByColumns.length) {
234
- snapshot.groupByAggColumns.forEach((agg) => {
235
- const colSpec = getAggregationColSpec(agg.name, agg.function, agg.type);
236
- aggregationColSpecArray.colSpecs.push(colSpec);
237
- });
238
- }
239
- groupByInstance.value = groupByColSpecArray;
240
- aggregationInstance.value = aggregationColSpecArray;
241
- if (groupByColSpecArray.colSpecs.length !== 0 ||
242
- aggregationColSpecArray.colSpecs.length !== 0) {
243
- const groupBy = new V1_AppliedFunction();
244
- groupBy.function = extractElementNameFromPath(DATA_CUBE_FUNCTIONS.GROUP_BY);
245
- groupBy.parameters = [groupByInstance, aggregationInstance];
246
- sequence.push(groupBy);
207
+ if (data.groupBy) {
208
+ const groupBy = data.groupBy;
209
+ _process('groupBy', _function(_name(DataCubeFunction.GROUP_BY), [
210
+ _cols(groupBy.columns.map((col) => _colSpec(col.name))),
211
+ _cols(_aggCols(groupBy.aggColumns)),
212
+ ]));
213
+ // extend columns to maintain the same set of columns prior to groupBy()
214
+ const groupByExtend = _groupByExtend(snapshot.stageCols('aggregation'), [
215
+ ...groupBy.columns,
216
+ ...groupBy.aggColumns,
217
+ ]);
218
+ if (groupByExtend) {
219
+ _process('groupByExtend', groupByExtend);
247
220
  }
248
221
  }
249
- // --------------------------------- SELECT ---------------------------------
250
- // TODO: @akphi - implement this
251
222
  // --------------------------------- PIVOT ---------------------------------
252
- // TODO: @akphi - implement this
253
- // --------------------------------- CAST ---------------------------------
254
- // TODO: @akphi - implement this
223
+ // TODO: @akphi - implement this and CAST
255
224
  // --------------------------------- GROUP EXTEND ---------------------------------
256
- if (snapshot.groupByExpandedKeys.length !== snapshot.groupByColumns.length) {
257
- const extendFunc = new V1_AppliedFunction();
258
- extendFunc.function = extractElementNameFromPath(DATA_CUBE_FUNCTIONS.EXTEND);
259
- const classInstance = new V1_ClassInstance();
260
- classInstance.type = V1_ClassInstanceType.COL_SPEC_ARRAY;
261
- const colSpecArray = new V1_ColSpecArray();
262
- classInstance.value = colSpecArray;
263
- snapshot.columns.forEach((col) => {
264
- if (!snapshot.groupByColumns.find((c) => c.name === col.name)) {
265
- const colSpec = new V1_ColSpec();
266
- const lambda = new V1_Lambda();
267
- const defaultVariable = new V1_Variable();
268
- defaultVariable.name = DEFAULT_LAMBDA_VARIABLE_NAME;
269
- lambda.parameters.push(defaultVariable);
270
- const variableValue = new V1_CString();
271
- variableValue.value = '';
272
- lambda.body.push(variableValue);
273
- colSpec.function1 = lambda;
274
- colSpec.name = col.name;
275
- colSpecArray.colSpecs.push(colSpec);
276
- }
277
- });
278
- extendFunc.parameters.push(classInstance);
279
- sequence.push(extendFunc);
225
+ if (data.groupExtendedColumns.length) {
226
+ _process('groupExtend', _function(_name(DataCubeFunction.EXTEND), [
227
+ _cols(data.groupExtendedColumns.map((col) => _colSpec(col.name, _deserializeToLambda(col.lambda)))),
228
+ ]));
229
+ }
230
+ // --------------------------------- SELECT ---------------------------------
231
+ if (data.selectColumns.length) {
232
+ _process('select', _function(_name(DataCubeFunction.SELECT), [
233
+ _cols(data.selectColumns.map((col) => _colSpec(col.name))),
234
+ ]));
280
235
  }
281
236
  // --------------------------------- SORT ---------------------------------
282
- if (snapshot.sortColumns.length) {
283
- const sort = new V1_AppliedFunction();
284
- sort.function = extractElementNameFromPath(DATA_CUBE_FUNCTIONS.SORT);
285
- const sortInfos = new V1_Collection();
286
- sortInfos.multiplicity = new V1_Multiplicity(snapshot.sortColumns.length, snapshot.sortColumns.length);
287
- snapshot.sortColumns.forEach((sortCol) => {
288
- if (snapshot.groupByColumns.length ===
289
- snapshot.groupByExpandedKeys.length ||
290
- snapshot.groupByColumns.map((col) => col.name).indexOf(sortCol.name) ===
291
- snapshot.groupByExpandedKeys.length) {
292
- const sortInfo = new V1_AppliedFunction();
293
- sortInfo.function = extractElementNameFromPath(sortCol.direction === DATA_CUBE_COLUMN_SORT_DIRECTION.ASCENDING
294
- ? DATA_CUBE_FUNCTIONS.ASC
295
- : DATA_CUBE_FUNCTIONS.DESC);
296
- sortInfo.parameters.push(createColSpec(sortCol.name));
297
- sortInfos.values.push(sortInfo);
298
- }
299
- });
300
- sort.parameters.push(sortInfos);
301
- if (sortInfos.values.length) {
302
- sequence.push(sort);
303
- }
237
+ if (data.sortColumns.length) {
238
+ _process('sort', _function(_name(DataCubeFunction.SORT), [
239
+ _collection(data.sortColumns.map((col) => _function(_name(col.direction === DataCubeQuerySnapshotSortDirection.ASCENDING
240
+ ? DataCubeFunction.ASC
241
+ : DataCubeFunction.DESC), [_col(col.name)]))),
242
+ ]));
304
243
  }
305
244
  // --------------------------------- LIMIT ---------------------------------
306
- // TODO: @akphi - implement this
245
+ if (data.limit) {
246
+ _process('limit', _function(_name(DataCubeFunction.LIMIT), [
247
+ _value(PRIMITIVE_TYPE.INTEGER, data.limit),
248
+ ]));
249
+ }
250
+ // --------------------------------- SLICE ---------------------------------
251
+ if (options?.pagination) {
252
+ sequence.push(_function(_name(DataCubeFunction.SLICE), [
253
+ _value(PRIMITIVE_TYPE.INTEGER, options.pagination.start),
254
+ _value(PRIMITIVE_TYPE.INTEGER, options.pagination.end),
255
+ ]));
256
+ }
307
257
  // --------------------------------- FROM ---------------------------------
308
- const fromFunc = new V1_AppliedFunction();
309
- fromFunc.function = extractElementNameFromPath(DATA_CUBE_FUNCTIONS.FROM);
310
- const runtimePtr = new V1_PackageableElementPtr();
311
- runtimePtr.fullPath = snapshot.runtime;
312
- fromFunc.parameters.push(runtimePtr);
313
- sequence.push(fromFunc);
258
+ sequence.push(_function(_name(DataCubeFunction.FROM), [_elementPtr(data.runtime)]));
314
259
  // --------------------------------- FINALIZE ---------------------------------
260
+ options?.postProcessor?.(snapshot, sequence, funcMap);
315
261
  if (!sequence.length) {
316
262
  return sourceQuery;
317
263
  }
@@ -320,18 +266,4 @@ export function buildExecutableQueryFromSnapshot(snapshot) {
320
266
  }
321
267
  return guaranteeNonNullable(sequence[sequence.length - 1]);
322
268
  }
323
- // export async function buildPersistentQueryFromSnapshot(
324
- // snapshot: DataCubeQuerySnapshot,
325
- // ) {
326
- // return new DataCubeQuery(
327
- // snapshot.name,
328
- // snapshot.sourceQuery,
329
- // snapshot.configuration,
330
- // );
331
- // }
332
- // name!: string;
333
- // query!: string;
334
- // partialQuery!: string;
335
- // source!: DataCubeQuerySource;
336
- // configuration!: DataCubeConfiguration;
337
269
  //# sourceMappingURL=DataCubeQueryBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataCubeQueryBuilder.js","sourceRoot":"","sources":["../../../../src/stores/dataCube/core/DataCubeQueryBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataCubeQueryBuilder.js","sourceRoot":"","sources":["../../../../src/stores/dataCube/core/DataCubeQueryBuilder.ts"],"names":[],"mappings":"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"}