@malloydata/malloy 0.0.22-dev230126015148 → 0.0.22-dev230202171033

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 (307) hide show
  1. package/dist/lang/ast/ast-main.d.ts +18 -815
  2. package/dist/lang/ast/ast-main.js +106 -3241
  3. package/dist/lang/ast/ast-utils.d.ts +10 -0
  4. package/dist/lang/ast/ast-utils.js +42 -0
  5. package/dist/lang/ast/elements/define-explore.d.ts +17 -0
  6. package/dist/lang/ast/elements/define-explore.js +79 -0
  7. package/dist/lang/ast/elements/define-query.d.ts +14 -0
  8. package/dist/lang/ast/elements/define-query.js +56 -0
  9. package/dist/lang/ast/elements/mallobj.d.ts +12 -0
  10. package/dist/lang/ast/elements/mallobj.js +53 -0
  11. package/dist/lang/ast/elements/pipeline-desc.d.ts +28 -0
  12. package/dist/lang/ast/elements/pipeline-desc.js +102 -0
  13. package/dist/lang/ast/elements/refined-explore.d.ts +15 -0
  14. package/dist/lang/ast/elements/refined-explore.js +121 -0
  15. package/dist/lang/ast/error-factory.d.ts +9 -0
  16. package/dist/lang/ast/error-factory.js +61 -0
  17. package/dist/lang/ast/executors/index-executor.d.ts +18 -0
  18. package/dist/lang/ast/executors/index-executor.js +96 -0
  19. package/dist/lang/ast/executors/project-executor.d.ts +10 -0
  20. package/dist/lang/ast/executors/project-executor.js +68 -0
  21. package/dist/lang/ast/executors/reduce-executor.d.ts +20 -0
  22. package/dist/lang/ast/executors/reduce-executor.js +149 -0
  23. package/dist/lang/ast/explore-properties/field-list-edit.d.ts +8 -0
  24. package/dist/lang/ast/explore-properties/field-list-edit.js +36 -0
  25. package/dist/lang/ast/explore-properties/primary-key.d.ts +7 -0
  26. package/dist/lang/ast/{apply-expr.js → explore-properties/primary-key.js} +9 -8
  27. package/dist/lang/ast/explore-properties/renames.d.ts +11 -0
  28. package/dist/lang/ast/explore-properties/renames.js +43 -0
  29. package/dist/lang/ast/explore-properties/turtles.d.ts +5 -0
  30. package/dist/lang/ast/explore-properties/turtles.js +33 -0
  31. package/dist/lang/ast/expressions/apply.d.ts +8 -0
  32. package/dist/lang/ast/expressions/apply.js +37 -0
  33. package/dist/lang/ast/expressions/binary-boolean.d.ts +12 -0
  34. package/dist/lang/ast/expressions/binary-boolean.js +54 -0
  35. package/dist/lang/ast/expressions/binary-numeric.d.ts +11 -0
  36. package/dist/lang/ast/expressions/binary-numeric.js +42 -0
  37. package/dist/lang/ast/expressions/boolean.d.ts +8 -0
  38. package/dist/lang/ast/expressions/boolean.js +39 -0
  39. package/dist/lang/ast/expressions/constant-sub-expression.d.ts +16 -0
  40. package/dist/lang/ast/expressions/constant-sub-expression.js +98 -0
  41. package/dist/lang/ast/expressions/expr-add-sub.d.ts +4 -0
  42. package/dist/lang/ast/expressions/expr-add-sub.js +34 -0
  43. package/dist/lang/ast/expressions/expr-aggregate-function.d.ts +15 -0
  44. package/dist/lang/ast/expressions/expr-aggregate-function.js +99 -0
  45. package/dist/lang/ast/expressions/expr-alternation-tree.d.ts +11 -0
  46. package/dist/lang/ast/expressions/expr-alternation-tree.js +54 -0
  47. package/dist/lang/ast/expressions/expr-asymmetric.d.ts +10 -0
  48. package/dist/lang/ast/expressions/expr-asymmetric.js +27 -0
  49. package/dist/lang/ast/expressions/expr-avg.d.ts +6 -0
  50. package/dist/lang/ast/expressions/expr-avg.js +34 -0
  51. package/dist/lang/ast/expressions/expr-case.d.ts +11 -0
  52. package/dist/lang/ast/expressions/expr-case.js +84 -0
  53. package/dist/lang/ast/expressions/expr-cast.d.ts +13 -0
  54. package/dist/lang/ast/expressions/expr-cast.js +29 -0
  55. package/dist/lang/ast/expressions/expr-compare.d.ts +10 -0
  56. package/dist/lang/ast/expressions/expr-compare.js +48 -0
  57. package/dist/lang/ast/expressions/expr-count-distinct.d.ts +6 -0
  58. package/dist/lang/ast/expressions/expr-count-distinct.js +35 -0
  59. package/dist/lang/ast/expressions/expr-count.d.ts +11 -0
  60. package/dist/lang/ast/expressions/expr-count.js +57 -0
  61. package/dist/lang/ast/expressions/expr-filter.d.ts +12 -0
  62. package/dist/lang/ast/expressions/expr-filter.js +69 -0
  63. package/dist/lang/ast/expressions/expr-func.d.ts +10 -0
  64. package/dist/lang/ast/expressions/expr-func.js +63 -0
  65. package/dist/lang/ast/expressions/expr-granular-time.d.ts +24 -0
  66. package/dist/lang/ast/expressions/expr-granular-time.js +117 -0
  67. package/dist/lang/ast/expressions/expr-id-reference.d.ts +12 -0
  68. package/dist/lang/ast/expressions/expr-id-reference.js +76 -0
  69. package/dist/lang/ast/expressions/expr-logical-op.d.ts +9 -0
  70. package/dist/lang/ast/expressions/expr-logical-op.js +36 -0
  71. package/dist/lang/ast/expressions/expr-max.d.ts +9 -0
  72. package/dist/lang/ast/expressions/expr-max.js +16 -0
  73. package/dist/lang/ast/expressions/expr-min.d.ts +9 -0
  74. package/dist/lang/ast/expressions/expr-min.js +16 -0
  75. package/dist/lang/ast/expressions/expr-minus.d.ts +9 -0
  76. package/dist/lang/ast/expressions/expr-minus.js +48 -0
  77. package/dist/lang/ast/expressions/expr-mul-div.d.ts +4 -0
  78. package/dist/lang/ast/expressions/expr-mul-div.js +34 -0
  79. package/dist/lang/ast/expressions/expr-not.d.ts +10 -0
  80. package/dist/lang/ast/expressions/expr-not.js +49 -0
  81. package/dist/lang/ast/expressions/expr-now.d.ts +7 -0
  82. package/dist/lang/ast/expressions/expr-now.js +46 -0
  83. package/dist/lang/ast/expressions/expr-null.d.ts +6 -0
  84. package/dist/lang/ast/expressions/expr-null.js +41 -0
  85. package/dist/lang/ast/expressions/expr-number.d.ts +10 -0
  86. package/dist/lang/ast/expressions/expr-number.js +42 -0
  87. package/dist/lang/ast/expressions/expr-parens.d.ts +10 -0
  88. package/dist/lang/ast/expressions/expr-parens.js +42 -0
  89. package/dist/lang/ast/expressions/expr-regex.d.ts +8 -0
  90. package/dist/lang/ast/expressions/expr-regex.js +42 -0
  91. package/dist/lang/ast/expressions/expr-string.d.ts +9 -0
  92. package/dist/lang/ast/expressions/expr-string.js +50 -0
  93. package/dist/lang/ast/expressions/expr-sum.d.ts +6 -0
  94. package/dist/lang/ast/expressions/expr-sum.js +12 -0
  95. package/dist/lang/ast/expressions/expr-time-extract.d.ts +13 -0
  96. package/dist/lang/ast/expressions/expr-time-extract.js +117 -0
  97. package/dist/lang/ast/expressions/expr-time.d.ts +11 -0
  98. package/dist/lang/ast/expressions/expr-time.js +62 -0
  99. package/dist/lang/ast/expressions/expr-ungroup.d.ts +14 -0
  100. package/dist/lang/ast/expressions/expr-ungroup.js +83 -0
  101. package/dist/lang/ast/expressions/for-range.d.ts +19 -0
  102. package/dist/lang/ast/expressions/for-range.js +101 -0
  103. package/dist/lang/ast/expressions/granular-literal.d.ts +20 -0
  104. package/dist/lang/ast/expressions/granular-literal.js +148 -0
  105. package/dist/lang/ast/expressions/partial-compare.d.ts +14 -0
  106. package/dist/lang/ast/expressions/partial-compare.js +50 -0
  107. package/dist/lang/ast/expressions/pick-when.d.ts +19 -0
  108. package/dist/lang/ast/expressions/pick-when.js +156 -0
  109. package/dist/lang/ast/expressions/range.d.ts +12 -0
  110. package/dist/lang/ast/expressions/range.js +80 -0
  111. package/dist/lang/ast/expressions/time-frame.d.ts +7 -0
  112. package/dist/lang/ast/expressions/time-frame.js +40 -0
  113. package/dist/lang/ast/expressions/top-by.d.ts +10 -0
  114. package/dist/lang/ast/expressions/top-by.js +51 -0
  115. package/dist/lang/ast/expressions/unary.d.ts +5 -0
  116. package/dist/lang/ast/expressions/unary.js +34 -0
  117. package/dist/lang/ast/expressions/utils.d.ts +15 -0
  118. package/dist/lang/ast/expressions/utils.js +106 -0
  119. package/dist/lang/ast/expressions/when-clause.d.ts +10 -0
  120. package/dist/lang/ast/expressions/when-clause.js +17 -0
  121. package/dist/lang/ast/fragtype-utils.d.ts +39 -0
  122. package/dist/lang/ast/fragtype-utils.js +100 -0
  123. package/dist/lang/ast/import-elements/import-statement.d.ts +9 -0
  124. package/dist/lang/ast/import-elements/import-statement.js +78 -0
  125. package/dist/lang/ast/index.d.ts +94 -3
  126. package/dist/lang/ast/index.js +94 -3
  127. package/dist/lang/ast/json-elements/json-element.d.ts +6 -0
  128. package/dist/lang/ast/json-elements/json-element.js +41 -0
  129. package/dist/lang/ast/json-elements/json-struct-def.d.ts +10 -0
  130. package/dist/lang/ast/json-elements/json-struct-def.js +48 -0
  131. package/dist/lang/ast/nesting/nest-reference.d.ts +7 -0
  132. package/dist/lang/ast/nesting/nest-reference.js +35 -0
  133. package/dist/lang/ast/parameters/constant-parameter.d.ts +8 -0
  134. package/dist/lang/ast/parameters/constant-parameter.js +54 -0
  135. package/dist/lang/ast/parameters/has-parameter.d.ts +19 -0
  136. package/dist/lang/ast/parameters/has-parameter.js +64 -0
  137. package/dist/lang/ast/query-elements/anonymous-query.d.ts +9 -0
  138. package/dist/lang/ast/query-elements/anonymous-query.js +41 -0
  139. package/dist/lang/ast/query-elements/existing-query.d.ts +11 -0
  140. package/dist/lang/ast/query-elements/existing-query.js +79 -0
  141. package/dist/lang/ast/query-elements/full-query.d.ts +10 -0
  142. package/dist/lang/ast/query-elements/full-query.js +85 -0
  143. package/dist/lang/ast/query-elements/query-head-struct.d.ts +9 -0
  144. package/dist/lang/ast/query-elements/query-head-struct.js +48 -0
  145. package/dist/lang/ast/query-items/field-declaration.d.ts +31 -0
  146. package/dist/lang/ast/query-items/field-declaration.js +137 -0
  147. package/dist/lang/ast/query-items/field-references.d.ts +25 -0
  148. package/dist/lang/ast/query-items/field-references.js +80 -0
  149. package/dist/lang/ast/query-properties/aggregate.d.ts +5 -0
  150. package/dist/lang/ast/query-properties/aggregate.js +39 -0
  151. package/dist/lang/ast/query-properties/declare-fields.d.ts +5 -0
  152. package/dist/lang/ast/query-properties/declare-fields.js +33 -0
  153. package/dist/lang/ast/query-properties/dimmensions.d.ts +5 -0
  154. package/dist/lang/ast/query-properties/dimmensions.js +36 -0
  155. package/dist/lang/ast/query-properties/filters.d.ts +18 -0
  156. package/dist/lang/ast/query-properties/filters.js +89 -0
  157. package/dist/lang/ast/query-properties/group-by.d.ts +5 -0
  158. package/dist/lang/ast/query-properties/group-by.js +39 -0
  159. package/dist/lang/ast/query-properties/indexing.d.ts +10 -0
  160. package/dist/lang/ast/query-properties/indexing.js +39 -0
  161. package/dist/lang/ast/query-properties/joins.d.ts +36 -0
  162. package/dist/lang/ast/query-properties/joins.js +143 -0
  163. package/dist/lang/ast/query-properties/limit.d.ts +6 -0
  164. package/dist/lang/ast/query-properties/limit.js +35 -0
  165. package/dist/lang/ast/query-properties/measures.d.ts +5 -0
  166. package/dist/lang/ast/query-properties/measures.js +36 -0
  167. package/dist/lang/ast/query-properties/nests.d.ts +5 -0
  168. package/dist/lang/ast/query-properties/nests.js +33 -0
  169. package/dist/lang/ast/query-properties/ordering.d.ts +15 -0
  170. package/dist/lang/ast/query-properties/ordering.js +66 -0
  171. package/dist/lang/ast/query-properties/project-statement.d.ts +5 -0
  172. package/dist/lang/ast/query-properties/project-statement.js +33 -0
  173. package/dist/lang/ast/query-properties/qop-desc.d.ts +17 -0
  174. package/dist/lang/ast/query-properties/qop-desc.js +123 -0
  175. package/dist/lang/ast/query-properties/sampling.d.ts +8 -0
  176. package/dist/lang/ast/query-properties/sampling.js +38 -0
  177. package/dist/lang/ast/query-properties/top.d.ts +13 -0
  178. package/dist/lang/ast/query-properties/top.js +60 -0
  179. package/dist/lang/ast/result-spaces/index-field-space.d.ts +10 -0
  180. package/dist/lang/ast/result-spaces/index-field-space.js +57 -0
  181. package/dist/lang/ast/result-spaces/project-field-space.d.ts +6 -0
  182. package/dist/lang/ast/result-spaces/project-field-space.js +51 -0
  183. package/dist/lang/ast/result-spaces/reduce-field-space.d.ts +7 -0
  184. package/dist/lang/ast/result-spaces/reduce-field-space.js +37 -0
  185. package/dist/lang/ast/sources/named-source.d.ts +19 -0
  186. package/dist/lang/ast/sources/named-source.js +147 -0
  187. package/dist/lang/ast/sources/query-source.d.ts +9 -0
  188. package/dist/lang/ast/sources/query-source.js +41 -0
  189. package/dist/lang/ast/sources/sql-source.d.ts +7 -0
  190. package/dist/lang/ast/sources/sql-source.js +54 -0
  191. package/dist/lang/ast/sources/table-source.d.ts +8 -0
  192. package/dist/lang/ast/sources/table-source.js +60 -0
  193. package/dist/lang/ast/space-fields/column-space-field.d.ts +9 -0
  194. package/dist/lang/ast/space-fields/column-space-field.js +40 -0
  195. package/dist/lang/ast/space-fields/join-space-field.d.ts +8 -0
  196. package/dist/lang/ast/space-fields/join-space-field.js +35 -0
  197. package/dist/lang/ast/space-fields/query-field-struct.d.ts +10 -0
  198. package/dist/lang/ast/space-fields/query-field-struct.js +46 -0
  199. package/dist/lang/ast/space-fields/query-space-field.d.ts +11 -0
  200. package/dist/lang/ast/space-fields/query-space-field.js +37 -0
  201. package/dist/lang/ast/space-fields/reference-field.d.ts +11 -0
  202. package/dist/lang/ast/space-fields/reference-field.js +45 -0
  203. package/dist/lang/ast/space-fields/rename-space-field.d.ts +11 -0
  204. package/dist/lang/ast/space-fields/rename-space-field.js +50 -0
  205. package/dist/lang/ast/space-fields/wild-space-field.d.ts +10 -0
  206. package/dist/lang/ast/space-fields/wild-space-field.js +40 -0
  207. package/dist/lang/ast/space-parameters/abstract-parameter.d.ts +10 -0
  208. package/dist/lang/ast/space-parameters/abstract-parameter.js +41 -0
  209. package/dist/lang/ast/space-parameters/defined-parameter.d.ts +9 -0
  210. package/dist/lang/ast/space-parameters/defined-parameter.js +40 -0
  211. package/dist/lang/ast/space-seed.d.ts +17 -0
  212. package/dist/lang/ast/space-seed.js +59 -0
  213. package/dist/lang/ast/sql-elements/sql-statement.d.ts +19 -0
  214. package/dist/lang/ast/sql-elements/sql-statement.js +80 -0
  215. package/dist/lang/ast/sql-elements/sql-string.d.ts +12 -0
  216. package/dist/lang/ast/sql-elements/sql-string.js +60 -0
  217. package/dist/lang/ast/static-space.d.ts +33 -0
  218. package/dist/lang/ast/static-space.js +167 -0
  219. package/dist/lang/ast/struct-utils.d.ts +4 -0
  220. package/dist/lang/ast/struct-utils.js +48 -0
  221. package/dist/lang/ast/time-utils.d.ts +5 -2
  222. package/dist/lang/ast/time-utils.js +37 -1
  223. package/dist/lang/ast/types/comparison.d.ts +11 -0
  224. package/dist/lang/ast/types/comparison.js +41 -0
  225. package/dist/lang/ast/types/compart-types.d.ts +10 -0
  226. package/dist/lang/ast/types/compart-types.js +37 -0
  227. package/dist/lang/ast/types/document-compile-result.d.ts +8 -0
  228. package/dist/lang/ast/types/document-compile-result.js +25 -0
  229. package/dist/lang/ast/types/equality.d.ts +7 -0
  230. package/dist/lang/ast/types/equality.js +37 -0
  231. package/dist/lang/ast/types/executor.d.ts +9 -0
  232. package/dist/lang/ast/types/executor.js +25 -0
  233. package/dist/lang/ast/types/explore-desc.d.ts +5 -0
  234. package/dist/lang/ast/types/explore-desc.js +33 -0
  235. package/dist/lang/ast/types/explore-field.d.ts +5 -0
  236. package/dist/lang/ast/types/explore-field.js +32 -0
  237. package/dist/lang/ast/types/explore-property.d.ts +10 -0
  238. package/dist/lang/ast/types/explore-property.js +43 -0
  239. package/dist/lang/ast/types/expr-result.d.ts +5 -0
  240. package/dist/lang/ast/types/expr-result.js +25 -0
  241. package/dist/lang/ast/types/expr-value.d.ts +3 -0
  242. package/dist/lang/ast/types/expr-value.js +25 -0
  243. package/dist/lang/ast/types/expression-def.d.ts +69 -0
  244. package/dist/lang/ast/types/expression-def.js +346 -0
  245. package/dist/lang/ast/types/expression-value-type.d.ts +2 -0
  246. package/dist/lang/ast/types/expression-value-type.js +25 -0
  247. package/dist/lang/ast/types/field-collection-member.d.ts +5 -0
  248. package/dist/lang/ast/types/field-collection-member.js +34 -0
  249. package/dist/lang/ast/types/field-decl.d.ts +7 -0
  250. package/dist/lang/ast/types/field-decl.js +37 -0
  251. package/dist/lang/ast/types/field-map.d.ts +2 -0
  252. package/dist/lang/ast/types/field-map.js +25 -0
  253. package/dist/lang/ast/types/field-space.d.ts +26 -0
  254. package/dist/lang/ast/types/field-space.js +48 -0
  255. package/dist/lang/ast/types/field-type.d.ts +6 -0
  256. package/dist/lang/ast/types/field-type.js +25 -0
  257. package/dist/lang/ast/types/field-value-type.d.ts +3 -0
  258. package/dist/lang/ast/types/field-value-type.js +25 -0
  259. package/dist/lang/ast/types/frag-type.d.ts +6 -0
  260. package/dist/lang/ast/types/frag-type.js +25 -0
  261. package/dist/lang/ast/types/granular-result.d.ts +7 -0
  262. package/dist/lang/ast/types/granular-result.js +11 -0
  263. package/dist/lang/ast/types/lookup-result.d.ts +10 -0
  264. package/dist/lang/ast/types/lookup-result.js +25 -0
  265. package/dist/lang/ast/types/malloy-element.d.ts +105 -0
  266. package/dist/lang/ast/types/malloy-element.js +398 -0
  267. package/dist/lang/ast/types/model-entry.d.ts +6 -0
  268. package/dist/lang/ast/types/model-entry.js +25 -0
  269. package/dist/lang/ast/types/name-space.d.ts +5 -0
  270. package/dist/lang/ast/types/name-space.js +25 -0
  271. package/dist/lang/ast/types/nested-query.d.ts +3 -0
  272. package/dist/lang/ast/types/nested-query.js +25 -0
  273. package/dist/lang/ast/types/op-desc.d.ts +6 -0
  274. package/dist/lang/ast/types/op-desc.js +25 -0
  275. package/dist/lang/ast/types/query-comp.d.ts +5 -0
  276. package/dist/lang/ast/types/query-comp.js +25 -0
  277. package/dist/lang/ast/types/query-element.d.ts +5 -0
  278. package/dist/lang/ast/types/query-element.js +32 -0
  279. package/dist/lang/ast/types/query-item.d.ts +5 -0
  280. package/dist/lang/ast/types/query-item.js +25 -0
  281. package/dist/lang/ast/types/query-property.d.ts +17 -0
  282. package/dist/lang/ast/types/query-property.js +55 -0
  283. package/dist/lang/ast/types/space-entry.d.ts +5 -0
  284. package/dist/lang/ast/types/space-entry.js +29 -0
  285. package/dist/lang/ast/types/space-field.d.ts +10 -0
  286. package/dist/lang/ast/types/space-field.js +48 -0
  287. package/dist/lang/ast/types/space-param.d.ts +6 -0
  288. package/dist/lang/ast/types/space-param.js +34 -0
  289. package/dist/lang/ast/types/stage-field-type.d.ts +1 -0
  290. package/dist/lang/ast/types/stage-field-type.js +25 -0
  291. package/dist/lang/ast/types/time-result.d.ts +6 -0
  292. package/dist/lang/ast/types/time-result.js +25 -0
  293. package/dist/lang/ast/types/turtle-headed-pipe.d.ts +7 -0
  294. package/dist/lang/ast/types/turtle-headed-pipe.js +37 -0
  295. package/dist/lang/space-field.d.ts +4 -1
  296. package/dist/lang/space-field.js +4 -3
  297. package/dist/lang/test/field-symbols.spec.js +25 -21
  298. package/dist/lang/test/parse.spec.js +4 -3
  299. package/dist/lang/test/test-translator.d.ts +3 -1
  300. package/package.json +1 -1
  301. package/dist/lang/ast/apply-expr.d.ts +0 -3
  302. package/dist/lang/ast/ast-expr.d.ts +0 -206
  303. package/dist/lang/ast/ast-expr.js +0 -781
  304. package/dist/lang/ast/ast-time-expr.d.ts +0 -69
  305. package/dist/lang/ast/ast-time-expr.js +0 -389
  306. package/dist/lang/ast/ast-types.d.ts +0 -83
  307. package/dist/lang/ast/ast-types.js +0 -225
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.Ordering = exports.OrderBy = void 0;
26
+ const field_space_1 = require("../types/field-space");
27
+ const malloy_element_1 = require("../types/malloy-element");
28
+ class OrderBy extends malloy_element_1.MalloyElement {
29
+ constructor(field, dir) {
30
+ super();
31
+ this.field = field;
32
+ this.dir = dir;
33
+ this.elementType = "orderBy";
34
+ if (field instanceof field_space_1.FieldName) {
35
+ this.has({ field });
36
+ }
37
+ }
38
+ get modelField() {
39
+ return typeof this.field === "number" ? this.field : this.field.refString;
40
+ }
41
+ getOrderBy(_fs) {
42
+ // TODO jump-to-definition `fs` cannot currently `lookup` fields in the output space
43
+ // if (this.field instanceof FieldName) {
44
+ // const entry = this.field.getField(_fs);
45
+ // if (entry.error) {
46
+ // this.field.log(entry.error);
47
+ // }
48
+ // }
49
+ const orderElement = { field: this.modelField };
50
+ if (this.dir) {
51
+ orderElement.dir = this.dir;
52
+ }
53
+ return orderElement;
54
+ }
55
+ }
56
+ exports.OrderBy = OrderBy;
57
+ class Ordering extends malloy_element_1.ListOf {
58
+ constructor(list) {
59
+ super("ordering", list);
60
+ }
61
+ getOrderBy(fs) {
62
+ return this.list.map((el) => el.getOrderBy(fs));
63
+ }
64
+ }
65
+ exports.Ordering = Ordering;
66
+ //# sourceMappingURL=ordering.js.map
@@ -0,0 +1,5 @@
1
+ import { FieldCollectionMember } from "../types/field-collection-member";
2
+ import { ListOf } from "../types/malloy-element";
3
+ export declare class ProjectStatement extends ListOf<FieldCollectionMember> {
4
+ constructor(members: FieldCollectionMember[]);
5
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.ProjectStatement = void 0;
26
+ const malloy_element_1 = require("../types/malloy-element");
27
+ class ProjectStatement extends malloy_element_1.ListOf {
28
+ constructor(members) {
29
+ super("fieldCollection", members);
30
+ }
31
+ }
32
+ exports.ProjectStatement = ProjectStatement;
33
+ //# sourceMappingURL=project-statement.js.map
@@ -0,0 +1,17 @@
1
+ import { PipeSegment } from "../../../model/malloy_types";
2
+ import { FieldSpace } from "../types/field-space";
3
+ import { ListOf } from "../types/malloy-element";
4
+ import { OpDesc } from "../types/op-desc";
5
+ import { PipelineDesc } from "../elements/pipeline-desc";
6
+ import { QueryProperty } from "../types/query-property";
7
+ declare type QOPType = "grouping" | "aggregate" | "project" | "index";
8
+ export declare class QOPDesc extends ListOf<QueryProperty> {
9
+ opType: QOPType;
10
+ private refineThis?;
11
+ constructor(props: QueryProperty[]);
12
+ protected computeType(): QOPType;
13
+ refineFrom(existing: PipeSegment): void;
14
+ private getExecutor;
15
+ getOp(inputFS: FieldSpace, forPipeline: PipelineDesc | null): OpDesc;
16
+ }
17
+ export {};
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.QOPDesc = void 0;
26
+ const index_executor_1 = require("../executors/index-executor");
27
+ const project_executor_1 = require("../executors/project-executor");
28
+ const reduce_executor_1 = require("../executors/reduce-executor");
29
+ const malloy_element_1 = require("../types/malloy-element");
30
+ const aggregate_1 = require("./aggregate");
31
+ const group_by_1 = require("./group-by");
32
+ const indexing_1 = require("./indexing");
33
+ const nests_1 = require("./nests");
34
+ const project_statement_1 = require("./project-statement");
35
+ const struct_utils_1 = require("../struct-utils");
36
+ const ast_main_1 = require("../ast-main");
37
+ class QOPDesc extends malloy_element_1.ListOf {
38
+ constructor(props) {
39
+ super("queryOperator", props);
40
+ this.opType = "grouping";
41
+ }
42
+ computeType() {
43
+ let firstGuess;
44
+ if (this.refineThis) {
45
+ if (this.refineThis.type == "reduce") {
46
+ firstGuess = "grouping";
47
+ }
48
+ else {
49
+ firstGuess = this.refineThis.type;
50
+ }
51
+ }
52
+ let anyGrouping = false;
53
+ for (const el of this.list) {
54
+ if (el instanceof indexing_1.Index) {
55
+ firstGuess || (firstGuess = "index");
56
+ if (firstGuess !== "index") {
57
+ el.log(`index: not legal in ${firstGuess} query`);
58
+ }
59
+ }
60
+ else if (el instanceof nests_1.Nests ||
61
+ (0, ast_main_1.isNestedQuery)(el) ||
62
+ el instanceof group_by_1.GroupBy) {
63
+ firstGuess || (firstGuess = "grouping");
64
+ anyGrouping = true;
65
+ if (firstGuess === "project" || firstGuess === "index") {
66
+ el.log(`group_by: not legal in ${firstGuess} query`);
67
+ }
68
+ }
69
+ else if (el instanceof aggregate_1.Aggregate) {
70
+ firstGuess || (firstGuess = "aggregate");
71
+ if (firstGuess === "project" || firstGuess === "index") {
72
+ el.log(`aggregate: not legal in ${firstGuess} query`);
73
+ }
74
+ }
75
+ else if (el instanceof project_statement_1.ProjectStatement) {
76
+ firstGuess || (firstGuess = "project");
77
+ if (firstGuess !== "project") {
78
+ el.log(`project: not legal in ${firstGuess} query`);
79
+ }
80
+ }
81
+ }
82
+ if (firstGuess === "aggregate" && anyGrouping) {
83
+ firstGuess = "grouping";
84
+ }
85
+ if (!firstGuess) {
86
+ this.log("Can't determine query type (group_by/aggregate/nest,project,index)");
87
+ }
88
+ const guessType = firstGuess || "grouping";
89
+ this.opType = guessType;
90
+ return guessType;
91
+ }
92
+ refineFrom(existing) {
93
+ this.refineThis = existing;
94
+ }
95
+ getExecutor(baseFS) {
96
+ switch (this.computeType()) {
97
+ case "aggregate":
98
+ case "grouping":
99
+ return new reduce_executor_1.ReduceExecutor(baseFS);
100
+ case "project":
101
+ return new project_executor_1.ProjectExecutor(baseFS);
102
+ case "index":
103
+ return new index_executor_1.IndexExecutor(baseFS);
104
+ }
105
+ }
106
+ getOp(inputFS, forPipeline) {
107
+ const qex = this.getExecutor(inputFS);
108
+ if (forPipeline === null || forPipeline === void 0 ? void 0 : forPipeline.nestedInQuerySpace) {
109
+ qex.inputFS.nestParent = forPipeline.nestedInQuerySpace;
110
+ }
111
+ qex.resultFS.astEl = this;
112
+ for (const qp of this.list) {
113
+ qex.execute(qp);
114
+ }
115
+ const segment = qex.finalize(this.refineThis);
116
+ return {
117
+ segment,
118
+ outputSpace: () => new ast_main_1.DynamicSpace((0, struct_utils_1.opOutputStruct)(this, inputFS.structDef(), segment)),
119
+ };
120
+ }
121
+ }
122
+ exports.QOPDesc = QOPDesc;
123
+ //# sourceMappingURL=qop-desc.js.map
@@ -0,0 +1,8 @@
1
+ import { Sampling } from "../../../model/malloy_types";
2
+ import { MalloyElement } from "../types/malloy-element";
3
+ export declare class SampleProperty extends MalloyElement {
4
+ readonly sample: Sampling;
5
+ elementType: string;
6
+ constructor(sample: Sampling);
7
+ sampling(): Sampling;
8
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.SampleProperty = void 0;
26
+ const malloy_element_1 = require("../types/malloy-element");
27
+ class SampleProperty extends malloy_element_1.MalloyElement {
28
+ constructor(sample) {
29
+ super();
30
+ this.sample = sample;
31
+ this.elementType = "sampleProperty";
32
+ }
33
+ sampling() {
34
+ return this.sample;
35
+ }
36
+ }
37
+ exports.SampleProperty = SampleProperty;
38
+ //# sourceMappingURL=sampling.js.map
@@ -0,0 +1,13 @@
1
+ import { By as ModelBy } from "../../../model/malloy_types";
2
+ import { ExpressionDef } from "../types/expression-def";
3
+ import { FieldName, FieldSpace } from "../types/field-space";
4
+ import { MalloyElement } from "../types/malloy-element";
5
+ declare type TopInit = FieldName | ExpressionDef;
6
+ export declare class Top extends MalloyElement {
7
+ readonly limit: number;
8
+ readonly by?: TopInit | undefined;
9
+ elementType: string;
10
+ constructor(limit: number, by?: TopInit | undefined);
11
+ getBy(fs: FieldSpace): ModelBy | undefined;
12
+ }
13
+ export {};
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.Top = void 0;
26
+ const malloy_types_1 = require("../../../model/malloy_types");
27
+ const utils_1 = require("../expressions/utils");
28
+ const field_space_1 = require("../types/field-space");
29
+ const malloy_element_1 = require("../types/malloy-element");
30
+ class Top extends malloy_element_1.MalloyElement {
31
+ constructor(limit, by) {
32
+ super();
33
+ this.limit = limit;
34
+ this.by = by;
35
+ this.elementType = "top";
36
+ this.has({ by });
37
+ }
38
+ getBy(fs) {
39
+ if (this.by) {
40
+ if (this.by instanceof field_space_1.FieldName) {
41
+ // TODO jump-to-definition `fs` cannot currently `lookup` fields in the output space
42
+ // const entry = this.by.getField(fs);
43
+ // if (entry.error) {
44
+ // this.by.log(entry.error);
45
+ // }
46
+ return { by: "name", name: this.by.refString };
47
+ }
48
+ else {
49
+ const byExpr = this.by.getExpression(fs);
50
+ if ((0, malloy_types_1.expressionIsAggregate)(byExpr.expressionType)) {
51
+ this.log("top by expression must be an aggregate");
52
+ }
53
+ return { by: "expression", e: (0, utils_1.compressExpr)(byExpr.value) };
54
+ }
55
+ }
56
+ return undefined;
57
+ }
58
+ }
59
+ exports.Top = Top;
60
+ //# sourceMappingURL=top.js.map
@@ -0,0 +1,10 @@
1
+ import { IndexSegment, PipeSegment } from "../../../model/malloy_types";
2
+ import { ResultSpace } from "../ast-main";
3
+ import { FieldReference, WildcardFieldReference } from "../query-items/field-references";
4
+ export declare class IndexFieldSpace extends ResultSpace {
5
+ readonly segmentType = "index";
6
+ fieldList: Set<string>;
7
+ addReference(ref: FieldReference): void;
8
+ addWild(wild: WildcardFieldReference): void;
9
+ getPipeSegment(refineIndex?: PipeSegment): IndexSegment;
10
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.IndexFieldSpace = void 0;
26
+ const ast_main_1 = require("../ast-main");
27
+ class IndexFieldSpace extends ast_main_1.ResultSpace {
28
+ constructor() {
29
+ super(...arguments);
30
+ this.segmentType = "index";
31
+ this.fieldList = new Set();
32
+ }
33
+ addReference(ref) {
34
+ if (ref.getField(this.exprSpace).found) {
35
+ this.fieldList.add(ref.refString);
36
+ }
37
+ }
38
+ addWild(wild) {
39
+ this.fieldList.add(wild.refString);
40
+ }
41
+ getPipeSegment(refineIndex) {
42
+ if (refineIndex && refineIndex.fields) {
43
+ for (const exists of refineIndex.fields) {
44
+ if (typeof exists == "string") {
45
+ this.fieldList.add(exists);
46
+ }
47
+ }
48
+ }
49
+ this.isComplete();
50
+ return {
51
+ type: "index",
52
+ fields: Array.from(this.fieldList.values()),
53
+ };
54
+ }
55
+ }
56
+ exports.IndexFieldSpace = IndexFieldSpace;
57
+ //# sourceMappingURL=index-field-space.js.map
@@ -0,0 +1,6 @@
1
+ import { QueryFieldDef } from "../../../model/malloy_types";
2
+ import { ResultSpace } from "../ast-main";
3
+ export declare class ProjectFieldSpace extends ResultSpace {
4
+ readonly segmentType = "project";
5
+ canContain(qd: QueryFieldDef): boolean;
6
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.ProjectFieldSpace = void 0;
26
+ const malloy_types_1 = require("../../../model/malloy_types");
27
+ const ast_main_1 = require("../ast-main");
28
+ class ProjectFieldSpace extends ast_main_1.ResultSpace {
29
+ constructor() {
30
+ super(...arguments);
31
+ this.segmentType = "project";
32
+ }
33
+ canContain(qd) {
34
+ if (typeof qd !== "string") {
35
+ if ((0, malloy_types_1.isFilteredAliasedName)(qd)) {
36
+ return true;
37
+ }
38
+ if (qd.type === "turtle") {
39
+ this.log("Cannot nest queries in project");
40
+ return false;
41
+ }
42
+ if ((0, malloy_types_1.expressionIsAggregate)(qd.expressionType)) {
43
+ this.log("Cannot add aggregate measures to project");
44
+ return false;
45
+ }
46
+ }
47
+ return true;
48
+ }
49
+ }
50
+ exports.ProjectFieldSpace = ProjectFieldSpace;
51
+ //# sourceMappingURL=project-field-space.js.map
@@ -0,0 +1,7 @@
1
+ import { ResultSpace } from "../ast-main";
2
+ /**
3
+ * Reduce and project queries use a "QuerySpace"
4
+ */
5
+ export declare class ReduceFieldSpace extends ResultSpace {
6
+ readonly segmentType = "reduce";
7
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.ReduceFieldSpace = void 0;
26
+ const ast_main_1 = require("../ast-main");
27
+ /**
28
+ * Reduce and project queries use a "QuerySpace"
29
+ */
30
+ class ReduceFieldSpace extends ast_main_1.ResultSpace {
31
+ constructor() {
32
+ super(...arguments);
33
+ this.segmentType = "reduce";
34
+ }
35
+ }
36
+ exports.ReduceFieldSpace = ReduceFieldSpace;
37
+ //# sourceMappingURL=reduce-field-space.js.map
@@ -0,0 +1,19 @@
1
+ import { StructDef, StructRef } from "../../../model";
2
+ import { Mallobj } from "../elements/mallobj";
3
+ import { MalloyElement, ModelEntryReference } from "../types/malloy-element";
4
+ import { ConstantSubExpression } from "../expressions/constant-sub-expression";
5
+ export declare class IsValueBlock extends MalloyElement {
6
+ readonly isMap: Record<string, ConstantSubExpression>;
7
+ elementType: string;
8
+ constructor(isMap: Record<string, ConstantSubExpression>);
9
+ }
10
+ export declare class NamedSource extends Mallobj {
11
+ readonly ref: ModelEntryReference | string;
12
+ elementType: string;
13
+ protected isBlock?: IsValueBlock;
14
+ constructor(ref: ModelEntryReference | string, paramValues?: Record<string, ConstantSubExpression>);
15
+ get refName(): string;
16
+ structRef(): StructRef;
17
+ modelStruct(): StructDef | undefined;
18
+ structDef(): StructDef;
19
+ }