@malloydata/malloy 0.0.116-dev231213173224 → 0.0.116-dev231218202606

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 (161) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +1 -3
  3. package/dist/lang/ast/field-space/ast-view-field.d.ts +11 -0
  4. package/dist/lang/ast/field-space/{wild-space-field.js → ast-view-field.js} +13 -12
  5. package/dist/lang/ast/field-space/dynamic-space.js +2 -2
  6. package/dist/lang/ast/field-space/{query-field-struct.d.ts → ir-view-field.d.ts} +2 -2
  7. package/dist/lang/ast/field-space/{query-field-struct.js → ir-view-field.js} +5 -5
  8. package/dist/lang/ast/field-space/join-space-field.d.ts +1 -1
  9. package/dist/lang/ast/field-space/query-input-space.d.ts +7 -6
  10. package/dist/lang/ast/field-space/query-input-space.js +1 -1
  11. package/dist/lang/ast/field-space/query-spaces.d.ts +3 -3
  12. package/dist/lang/ast/field-space/query-spaces.js +17 -13
  13. package/dist/lang/ast/field-space/static-space.js +2 -2
  14. package/dist/lang/ast/field-space/{query-space-field.d.ts → view-field.d.ts} +1 -1
  15. package/dist/lang/ast/field-space/{query-space-field.js → view-field.js} +4 -4
  16. package/dist/lang/ast/index.d.ts +28 -19
  17. package/dist/lang/ast/index.js +28 -19
  18. package/dist/lang/ast/query-builders/index-builder.d.ts +3 -1
  19. package/dist/lang/ast/query-builders/index-builder.js +2 -2
  20. package/dist/lang/ast/query-builders/project-builder.d.ts +3 -1
  21. package/dist/lang/ast/query-builders/project-builder.js +2 -2
  22. package/dist/lang/ast/query-builders/reduce-builder.d.ts +3 -2
  23. package/dist/lang/ast/query-builders/reduce-builder.js +5 -5
  24. package/dist/lang/ast/query-elements/anonymous-query.d.ts +3 -3
  25. package/dist/lang/ast/query-elements/query-arrow.d.ts +17 -0
  26. package/dist/lang/ast/query-elements/query-arrow.js +84 -0
  27. package/dist/lang/ast/query-elements/query-base.d.ts +7 -0
  28. package/dist/lang/ast/query-elements/query-base.js +38 -0
  29. package/dist/lang/ast/query-elements/query-head-struct.d.ts +1 -1
  30. package/dist/lang/ast/query-elements/query-head-struct.js +2 -2
  31. package/dist/lang/ast/query-elements/query-raw.d.ts +20 -0
  32. package/dist/lang/ast/query-elements/query-raw.js +65 -0
  33. package/dist/lang/ast/query-elements/query-reference.d.ts +16 -0
  34. package/dist/lang/ast/query-elements/query-reference.js +80 -0
  35. package/dist/lang/ast/query-elements/query-refine.d.ts +16 -0
  36. package/dist/lang/ast/query-elements/query-refine.js +56 -0
  37. package/dist/lang/ast/query-items/field-declaration.d.ts +14 -14
  38. package/dist/lang/ast/query-items/field-declaration.js +10 -10
  39. package/dist/lang/ast/query-items/field-references.d.ts +1 -1
  40. package/dist/lang/ast/query-items/field-references.js +4 -4
  41. package/dist/lang/ast/query-properties/declare-fields.d.ts +3 -3
  42. package/dist/lang/ast/query-properties/nest.d.ts +3 -57
  43. package/dist/lang/ast/query-properties/nest.js +17 -272
  44. package/dist/lang/ast/query-properties/nests.d.ts +3 -3
  45. package/dist/lang/ast/query-properties/qop-desc.d.ts +1 -1
  46. package/dist/lang/ast/query-properties/qop-desc.js +9 -13
  47. package/dist/lang/ast/query-utils.d.ts +2 -4
  48. package/dist/lang/ast/query-utils.js +5 -2
  49. package/dist/lang/ast/{sources → source-elements}/named-source.d.ts +1 -1
  50. package/dist/lang/ast/{sources → source-elements}/named-source.js +1 -1
  51. package/dist/lang/ast/{sources → source-elements}/query-source.d.ts +1 -1
  52. package/dist/lang/ast/{sources → source-elements}/query-source.js +5 -3
  53. package/dist/lang/ast/{elements → source-elements}/refined-source.js +3 -3
  54. package/dist/lang/ast/{sources → source-elements}/sql-source.d.ts +1 -1
  55. package/dist/lang/ast/{sources → source-elements}/sql-source.js +1 -1
  56. package/dist/lang/ast/{sources → source-elements}/table-source.d.ts +1 -1
  57. package/dist/lang/ast/{sources → source-elements}/table-source.js +1 -1
  58. package/dist/lang/ast/{query-properties → source-properties}/dimensions.d.ts +1 -1
  59. package/dist/lang/ast/{query-properties → source-properties}/dimensions.js +1 -1
  60. package/dist/lang/ast/{query-properties → source-properties}/joins.d.ts +6 -6
  61. package/dist/lang/ast/{query-properties → source-properties}/measures.d.ts +1 -1
  62. package/dist/lang/ast/{query-properties → source-properties}/measures.js +1 -1
  63. package/dist/lang/ast/source-properties/view-field-declaration.d.ts +18 -0
  64. package/dist/lang/ast/source-properties/view-field-declaration.js +57 -0
  65. package/dist/lang/ast/source-properties/views.d.ts +5 -0
  66. package/dist/lang/ast/source-properties/{turtles.js → views.js} +4 -4
  67. package/dist/lang/ast/source-query-elements/source-query-element.d.ts +17 -0
  68. package/dist/lang/ast/{elements/source-query.js → source-query-elements/source-query-element.js} +11 -5
  69. package/dist/lang/ast/source-query-elements/sq-arrow.d.ts +22 -0
  70. package/dist/lang/ast/source-query-elements/sq-arrow.js +70 -0
  71. package/dist/lang/ast/source-query-elements/sq-extend.d.ts +19 -0
  72. package/dist/lang/ast/source-query-elements/sq-extend.js +59 -0
  73. package/dist/lang/ast/source-query-elements/sq-reference.d.ts +18 -0
  74. package/dist/lang/ast/source-query-elements/sq-reference.js +89 -0
  75. package/dist/lang/ast/source-query-elements/sq-refine.d.ts +18 -0
  76. package/dist/lang/ast/source-query-elements/sq-refine.js +70 -0
  77. package/dist/lang/ast/source-query-elements/sq-source.d.ts +17 -0
  78. package/dist/lang/ast/source-query-elements/sq-source.js +59 -0
  79. package/dist/lang/ast/sql-elements/sql-string.d.ts +2 -2
  80. package/dist/lang/ast/sql-elements/sql-string.js +3 -3
  81. package/dist/lang/ast/{elements → statements}/define-query.d.ts +3 -3
  82. package/dist/lang/ast/{elements → statements}/define-source.d.ts +3 -3
  83. package/dist/lang/ast/types/field-collection-member.d.ts +2 -2
  84. package/dist/lang/ast/types/field-collection-member.js +1 -1
  85. package/dist/lang/ast/types/field-space.d.ts +2 -1
  86. package/dist/lang/ast/types/pipeline-comp.d.ts +7 -0
  87. package/dist/lang/ast/types/{turtle-headed-pipe.js → pipeline-comp.js} +1 -4
  88. package/dist/lang/ast/types/query-comp.d.ts +1 -0
  89. package/dist/lang/ast/types/query-element.d.ts +6 -3
  90. package/dist/lang/ast/types/query-element.js +8 -3
  91. package/dist/lang/ast/types/query-extend-property.d.ts +3 -3
  92. package/dist/lang/ast/types/query-extend-property.js +3 -3
  93. package/dist/lang/ast/types/query-item.d.ts +3 -3
  94. package/dist/lang/ast/types/source-property.d.ts +3 -3
  95. package/dist/lang/ast/types/source-property.js +3 -3
  96. package/dist/lang/ast/types/space-entry.d.ts +1 -1
  97. package/dist/lang/ast/view-elements/qop-desc-view.d.ts +19 -0
  98. package/dist/lang/ast/view-elements/qop-desc-view.js +98 -0
  99. package/dist/lang/ast/view-elements/reference-view.d.ts +27 -0
  100. package/dist/lang/ast/view-elements/reference-view.js +155 -0
  101. package/dist/lang/ast/view-elements/refine-utils.d.ts +3 -0
  102. package/dist/lang/ast/view-elements/refine-utils.js +101 -0
  103. package/dist/lang/ast/view-elements/view-arrow.d.ts +19 -0
  104. package/dist/lang/ast/view-elements/view-arrow.js +56 -0
  105. package/dist/lang/ast/view-elements/view-refine.d.ts +19 -0
  106. package/dist/lang/ast/view-elements/view-refine.js +65 -0
  107. package/dist/lang/ast/view-elements/view.d.ts +25 -0
  108. package/dist/lang/ast/view-elements/view.js +48 -0
  109. package/dist/lang/lib/Malloy/MalloyLexer.d.ts +78 -79
  110. package/dist/lang/lib/Malloy/MalloyLexer.js +1101 -1107
  111. package/dist/lang/lib/Malloy/MalloyParser.d.ts +245 -303
  112. package/dist/lang/lib/Malloy/MalloyParser.js +1994 -2663
  113. package/dist/lang/lib/Malloy/MalloyParserListener.d.ts +106 -120
  114. package/dist/lang/lib/Malloy/MalloyParserVisitor.d.ts +64 -74
  115. package/dist/lang/malloy-to-ast.d.ts +25 -23
  116. package/dist/lang/malloy-to-ast.js +61 -137
  117. package/dist/lang/test/annotation.spec.js +1 -1
  118. package/dist/lang/test/field-symbols.spec.js +2 -2
  119. package/dist/lang/test/lenses.spec.js +66 -3
  120. package/dist/lang/test/locations.spec.js +11 -43
  121. package/dist/lang/test/parse.spec.js +39 -102
  122. package/dist/lang/test/query.spec.js +1 -7
  123. package/dist/lang/test/source.spec.js +1 -6
  124. package/dist/lang/test/sql-block.spec.js +6 -8
  125. package/dist/malloy.d.ts +2 -1
  126. package/dist/malloy.js +3 -11
  127. package/dist/model/index.d.ts +1 -1
  128. package/dist/model/index.js +1 -2
  129. package/dist/model/malloy_query.d.ts +2 -3
  130. package/dist/model/malloy_query.js +52 -67
  131. package/dist/model/malloy_types.d.ts +7 -2
  132. package/dist/model/malloy_types.js +6 -2
  133. package/package.json +1 -1
  134. package/dist/lang/ast/elements/pipeline-desc.d.ts +0 -49
  135. package/dist/lang/ast/elements/pipeline-desc.js +0 -170
  136. package/dist/lang/ast/elements/source-query-nodes.d.ts +0 -73
  137. package/dist/lang/ast/elements/source-query-nodes.js +0 -351
  138. package/dist/lang/ast/elements/source-query.d.ts +0 -11
  139. package/dist/lang/ast/field-space/wild-space-field.d.ts +0 -9
  140. package/dist/lang/ast/query-elements/existing-query.d.ts +0 -12
  141. package/dist/lang/ast/query-elements/existing-query.js +0 -89
  142. package/dist/lang/ast/query-elements/full-query.d.ts +0 -11
  143. package/dist/lang/ast/query-elements/full-query.js +0 -130
  144. package/dist/lang/ast/query-properties/refinements.d.ts +0 -31
  145. package/dist/lang/ast/query-properties/refinements.js +0 -199
  146. package/dist/lang/ast/source-properties/turtles.d.ts +0 -5
  147. package/dist/lang/ast/types/explore-field.d.ts +0 -5
  148. package/dist/lang/ast/types/explore-field.js +0 -32
  149. package/dist/lang/ast/types/field-decl.d.ts +0 -7
  150. package/dist/lang/ast/types/field-decl.js +0 -37
  151. package/dist/lang/ast/types/turtle-headed-pipe.d.ts +0 -1
  152. /package/dist/lang/ast/{sources → source-elements}/from-sql-source.d.ts +0 -0
  153. /package/dist/lang/ast/{sources → source-elements}/from-sql-source.js +0 -0
  154. /package/dist/lang/ast/{elements → source-elements}/refined-source.d.ts +0 -0
  155. /package/dist/lang/ast/{elements → source-elements}/source.d.ts +0 -0
  156. /package/dist/lang/ast/{elements → source-elements}/source.js +0 -0
  157. /package/dist/lang/ast/{query-properties → source-properties}/joins.js +0 -0
  158. /package/dist/lang/ast/{elements → statements}/define-query.js +0 -0
  159. /package/dist/lang/ast/{elements → statements}/define-source.js +0 -0
  160. /package/dist/lang/ast/{elements → statements}/import-statement.d.ts +0 -0
  161. /package/dist/lang/ast/{elements → statements}/import-statement.js +0 -0
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { DuckDBDialect, StandardSQLDialect, PostgresDialect, registerDialect, arg, qtz, overload, minScalar, anyExprType, minAggregate, maxScalar, sql, makeParam, sqlFragment, param, spread, Dialect, FUNCTIONS, } from './dialect';
2
2
  export type { DialectFieldList, DialectFunctionOverloadDef, QueryInfo, } from './dialect';
3
3
  export type { QueryDataRow, Fragment, StructDef, StructRelationship, NamedStructDefs, MalloyQueryData, AtomicFieldType as AtomicFieldTypeInner, DateUnit, ExtractUnit, TimestampUnit, TimeFieldType, QueryData, QueryValue, FieldTypeDef, Expr, DialectFragment, TimeValue, FilterExpression, SQLBlock, FieldAtomicDef, FieldDef, FilteredAliasedName, PipeSegment, QueryFieldDef, TurtleDef, SearchValueMapResult, SearchIndexResult, ModelDef, Query, QueryRunStats, NamedQuery, NamedModelObject, ExpressionType, FunctionDef, FunctionOverloadDef, FunctionParameterDef, ExpressionValueType, TypeDesc, FieldValueType, ExpressionTypeDesc, FunctionParamTypeDesc, DocumentLocation, DocumentRange, DocumentPosition, Sampling, TypecastFragment, Annotation, FieldAtomicTypeDef, } from './model';
4
- export { Segment, isFilteredAliasedName, isSamplingEnable, isSamplingPercent, isSamplingRows, mkExpr, flattenQuery, expressionIsCalculation, indent, } from './model';
4
+ export { Segment, isFilteredAliasedName, isSamplingEnable, isSamplingPercent, isSamplingRows, mkExpr, expressionIsCalculation, indent, } from './model';
5
5
  export { HighlightType, MalloyTranslator, } from './lang';
6
6
  export type { LogMessage, TranslateResponse } from './lang';
7
7
  export { Malloy, Runtime, AtomicFieldType, ConnectionRuntime, SingleConnectionRuntime, EmptyURLReader, InMemoryURLReader, FixedConnectionMap, MalloyError, JoinRelationship, SourceRelationship, DateTimeframe, TimestampTimeframe, Result, QueryMaterializer, CSVWriter, JSONWriter, Parse, DataWriter, Explore, } from './malloy';
package/dist/index.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toAsyncGenerator = exports.Explore = exports.DataWriter = exports.Parse = exports.JSONWriter = exports.CSVWriter = exports.QueryMaterializer = exports.Result = exports.TimestampTimeframe = exports.DateTimeframe = exports.SourceRelationship = exports.JoinRelationship = exports.MalloyError = exports.FixedConnectionMap = exports.InMemoryURLReader = exports.EmptyURLReader = exports.SingleConnectionRuntime = exports.ConnectionRuntime = exports.AtomicFieldType = exports.Runtime = exports.Malloy = exports.MalloyTranslator = exports.HighlightType = exports.indent = exports.expressionIsCalculation = exports.flattenQuery = exports.mkExpr = exports.isSamplingRows = exports.isSamplingPercent = exports.isSamplingEnable = exports.isFilteredAliasedName = exports.Segment = exports.FUNCTIONS = exports.Dialect = exports.spread = exports.param = exports.sqlFragment = exports.makeParam = exports.sql = exports.maxScalar = exports.minAggregate = exports.anyExprType = exports.minScalar = exports.overload = exports.qtz = exports.arg = exports.registerDialect = exports.PostgresDialect = exports.StandardSQLDialect = exports.DuckDBDialect = void 0;
4
- exports.Tag = void 0;
3
+ exports.Tag = exports.toAsyncGenerator = exports.Explore = exports.DataWriter = exports.Parse = exports.JSONWriter = exports.CSVWriter = exports.QueryMaterializer = exports.Result = exports.TimestampTimeframe = exports.DateTimeframe = exports.SourceRelationship = exports.JoinRelationship = exports.MalloyError = exports.FixedConnectionMap = exports.InMemoryURLReader = exports.EmptyURLReader = exports.SingleConnectionRuntime = exports.ConnectionRuntime = exports.AtomicFieldType = exports.Runtime = exports.Malloy = exports.MalloyTranslator = exports.HighlightType = exports.indent = exports.expressionIsCalculation = exports.mkExpr = exports.isSamplingRows = exports.isSamplingPercent = exports.isSamplingEnable = exports.isFilteredAliasedName = exports.Segment = exports.FUNCTIONS = exports.Dialect = exports.spread = exports.param = exports.sqlFragment = exports.makeParam = exports.sql = exports.maxScalar = exports.minAggregate = exports.anyExprType = exports.minScalar = exports.overload = exports.qtz = exports.arg = exports.registerDialect = exports.PostgresDialect = exports.StandardSQLDialect = exports.DuckDBDialect = void 0;
5
4
  /*
6
5
  * Copyright 2023 Google LLC
7
6
  *
@@ -51,7 +50,6 @@ Object.defineProperty(exports, "isSamplingEnable", { enumerable: true, get: func
51
50
  Object.defineProperty(exports, "isSamplingPercent", { enumerable: true, get: function () { return model_1.isSamplingPercent; } });
52
51
  Object.defineProperty(exports, "isSamplingRows", { enumerable: true, get: function () { return model_1.isSamplingRows; } });
53
52
  Object.defineProperty(exports, "mkExpr", { enumerable: true, get: function () { return model_1.mkExpr; } });
54
- Object.defineProperty(exports, "flattenQuery", { enumerable: true, get: function () { return model_1.flattenQuery; } });
55
53
  Object.defineProperty(exports, "expressionIsCalculation", { enumerable: true, get: function () { return model_1.expressionIsCalculation; } });
56
54
  Object.defineProperty(exports, "indent", { enumerable: true, get: function () { return model_1.indent; } });
57
55
  var lang_1 = require("./lang");
@@ -0,0 +1,11 @@
1
+ import { QueryFieldDef, TurtleDef } from '../../../model/malloy_types';
2
+ import { ViewFieldDeclaration } from '../source-properties/view-field-declaration';
3
+ import { FieldSpace } from '../types/field-space';
4
+ import { ViewField } from './view-field';
5
+ export declare class ASTViewField extends ViewField {
6
+ readonly view: ViewFieldDeclaration;
7
+ protected name: string;
8
+ constructor(fs: FieldSpace, view: ViewFieldDeclaration, name: string);
9
+ getQueryFieldDef(fs: FieldSpace): QueryFieldDef;
10
+ fieldDef(): TurtleDef;
11
+ }
@@ -22,19 +22,20 @@
22
22
  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
23
  */
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.WildSpaceField = void 0;
26
- const space_field_1 = require("../types/space-field");
27
- class WildSpaceField extends space_field_1.SpaceField {
28
- constructor(wildText) {
29
- super();
30
- this.wildText = wildText;
25
+ exports.ASTViewField = void 0;
26
+ const view_field_1 = require("./view-field");
27
+ class ASTViewField extends view_field_1.ViewField {
28
+ constructor(fs, view, name) {
29
+ super(fs);
30
+ this.view = view;
31
+ this.name = name;
31
32
  }
32
- typeDesc() {
33
- throw new Error('should never ask a wild field for its type');
33
+ getQueryFieldDef(fs) {
34
+ return this.view.getFieldDef(fs);
34
35
  }
35
- getQueryFieldDef(_fs) {
36
- return this.wildText;
36
+ fieldDef() {
37
+ return this.view.getFieldDef(this.inSpace);
37
38
  }
38
39
  }
39
- exports.WildSpaceField = WildSpaceField;
40
- //# sourceMappingURL=wild-space-field.js.map
40
+ exports.ASTViewField = ASTViewField;
41
+ //# sourceMappingURL=ast-view-field.js.map
@@ -31,7 +31,7 @@ const field_utils_1 = require("../../field-utils");
31
31
  const error_factory_1 = require("../error-factory");
32
32
  const space_field_1 = require("../types/space-field");
33
33
  const join_space_field_1 = require("./join-space-field");
34
- const query_space_field_1 = require("./query-space-field");
34
+ const view_field_1 = require("./view-field");
35
35
  const space_param_1 = require("../types/space-param");
36
36
  const space_seed_1 = require("../space-seed");
37
37
  const static_space_1 = require("./static-space");
@@ -93,7 +93,7 @@ class DynamicSpace extends static_space_1.StaticSpace {
93
93
  if (spaceEntry instanceof struct_space_field_base_1.StructSpaceFieldBase) {
94
94
  joins.push([name, spaceEntry]);
95
95
  }
96
- else if (spaceEntry instanceof query_space_field_1.QueryField) {
96
+ else if (spaceEntry instanceof view_field_1.ViewField) {
97
97
  turtles.push([name, spaceEntry]);
98
98
  }
99
99
  else if (spaceEntry instanceof space_field_1.SpaceField) {
@@ -1,7 +1,7 @@
1
1
  import { QueryFieldDef, TurtleDef } from '../../../model/malloy_types';
2
- import { QueryField } from './query-space-field';
2
+ import { ViewField } from './view-field';
3
3
  import { FieldSpace } from '../types/field-space';
4
- export declare class QueryFieldStruct extends QueryField {
4
+ export declare class IRViewField extends ViewField {
5
5
  protected turtleDef: TurtleDef;
6
6
  constructor(fs: FieldSpace, turtleDef: TurtleDef);
7
7
  rename(name: string): void;
@@ -22,9 +22,9 @@
22
22
  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
23
  */
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.QueryFieldStruct = void 0;
26
- const query_space_field_1 = require("./query-space-field");
27
- class QueryFieldStruct extends query_space_field_1.QueryField {
25
+ exports.IRViewField = void 0;
26
+ const view_field_1 = require("./view-field");
27
+ class IRViewField extends view_field_1.ViewField {
28
28
  constructor(fs, turtleDef) {
29
29
  super(fs);
30
30
  this.turtleDef = turtleDef;
@@ -43,5 +43,5 @@ class QueryFieldStruct extends query_space_field_1.QueryField {
43
43
  return this.fieldDef();
44
44
  }
45
45
  }
46
- exports.QueryFieldStruct = QueryFieldStruct;
47
- //# sourceMappingURL=query-field-struct.js.map
46
+ exports.IRViewField = IRViewField;
47
+ //# sourceMappingURL=ir-view-field.js.map
@@ -1,4 +1,4 @@
1
- import { Join } from '../query-properties/joins';
1
+ import { Join } from '../source-properties/joins';
2
2
  import { StructSpaceField } from './static-space';
3
3
  export declare class JoinSpaceField extends StructSpaceField {
4
4
  readonly join: Join;
@@ -5,10 +5,11 @@
5
5
  * expressions in the query is called the "input space". There is a
6
6
  * specialized QuerySpace for each type of query operation.
7
7
  */
8
- import { FieldDeclaration } from '../query-items/field-declaration';
9
- import { Join } from '../query-properties/joins';
8
+ import { AtomicFieldDeclaration } from '../query-items/field-declaration';
9
+ import { Join } from '../source-properties/joins';
10
10
  import { SourceSpec } from '../space-seed';
11
- import { FieldSpace, QueryFieldSpace } from '../types/field-space';
11
+ import { QueryFieldSpace } from '../types/field-space';
12
+ import { QuerySpace } from './query-spaces';
12
13
  import { RefinedSpace } from './refined-space';
13
14
  export declare class QueryInputSpace extends RefinedSpace implements QueryFieldSpace {
14
15
  private queryOutput;
@@ -19,9 +20,9 @@ export declare class QueryInputSpace extends RefinedSpace implements QueryFieldS
19
20
  * @param input The source which might be extended
20
21
  * @param queryOutput MUST BE A QuerySpace
21
22
  */
22
- constructor(input: SourceSpec, queryOutput: FieldSpace);
23
- extendSource(extendField: Join | FieldDeclaration): void;
23
+ constructor(input: SourceSpec, queryOutput: QuerySpace);
24
+ extendSource(extendField: Join | AtomicFieldDeclaration): void;
24
25
  isQueryFieldSpace(): boolean;
25
- outputSpace(): FieldSpace;
26
+ outputSpace(): QuerySpace;
26
27
  inputSpace(): this;
27
28
  }
@@ -23,7 +23,7 @@
23
23
  */
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
25
  exports.QueryInputSpace = void 0;
26
- const joins_1 = require("../query-properties/joins");
26
+ const joins_1 = require("../source-properties/joins");
27
27
  const space_seed_1 = require("../space-seed");
28
28
  const refined_space_1 = require("./refined-space");
29
29
  class QueryInputSpace extends refined_space_1.RefinedSpace {
@@ -13,12 +13,12 @@ import { QueryInputSpace } from './query-input-space';
13
13
  */
14
14
  export declare abstract class QuerySpace extends RefinedSpace implements QueryFieldSpace {
15
15
  readonly queryInputSpace: FieldSpace;
16
+ readonly nestParent: QuerySpace | undefined;
17
+ readonly astEl: MalloyElement;
16
18
  private exprSpace;
17
- astEl?: MalloyElement | undefined;
18
19
  abstract readonly segmentType: 'reduce' | 'project' | 'index';
19
20
  expandedWild: Record<string, string[]>;
20
- nestParent?: QuerySpace;
21
- constructor(queryInputSpace: FieldSpace, refineThis: model.PipeSegment | undefined);
21
+ constructor(queryInputSpace: FieldSpace, refineThis: model.PipeSegment | undefined, nestParent: QuerySpace | undefined, astEl: MalloyElement);
22
22
  private addRefineFromFields;
23
23
  log(s: string): void;
24
24
  pushFields(...defs: MalloyElement[]): void;
@@ -50,7 +50,6 @@ const model = __importStar(require("../../../model/malloy_types"));
50
50
  const field_utils_1 = require("../../field-utils");
51
51
  const space_field_1 = require("../types/space-field");
52
52
  const field_references_1 = require("../query-items/field-references");
53
- const wild_space_field_1 = require("./wild-space-field");
54
53
  const refined_space_1 = require("./refined-space");
55
54
  const column_space_field_1 = require("./column-space-field");
56
55
  const static_space_1 = require("./static-space");
@@ -62,9 +61,11 @@ const query_input_space_1 = require("./query-input-space");
62
61
  * QuerySpace is created.
63
62
  */
64
63
  class QuerySpace extends refined_space_1.RefinedSpace {
65
- constructor(queryInputSpace, refineThis) {
64
+ constructor(queryInputSpace, refineThis, nestParent, astEl) {
66
65
  super(queryInputSpace.emptyStructDef());
67
66
  this.queryInputSpace = queryInputSpace;
67
+ this.nestParent = nestParent;
68
+ this.astEl = astEl;
68
69
  this.expandedWild = {};
69
70
  this.exprSpace = new query_input_space_1.QueryInputSpace(queryInputSpace, this);
70
71
  if (refineThis)
@@ -169,19 +170,16 @@ class QuerySpace extends refined_space_1.RefinedSpace {
169
170
  }
170
171
  const fieldQueryDef = field.getQueryFieldDef(this.exprSpace);
171
172
  if (fieldQueryDef) {
172
- if (field instanceof wild_space_field_1.WildSpaceField) {
173
+ const typeDesc = field.typeDesc();
174
+ // Filter out fields whose type is 'error', which means that a totally bad field
175
+ // isn't sent to the compiler, where it will wig out.
176
+ // TODO Figure out how to make errors generated by `canContain` go in the right place,
177
+ // maybe by adding a logable element to SpaceFields.
178
+ if (typeDesc.dataType !== 'error' &&
179
+ this.canContain(typeDesc) &&
180
+ !isEmptyNest(fieldQueryDef)) {
173
181
  fields.push(fieldQueryDef);
174
182
  }
175
- else {
176
- const typeDesc = field.typeDesc();
177
- // Filter out fields whose type is 'error', which means that a totally bad field
178
- // isn't sent to the compiler, where it will wig out.
179
- // TODO Figure out how to make errors generated by `canContain` go in the right place,
180
- // maybe by adding a logable element to SpaceFields.
181
- if (typeDesc.dataType !== 'error' && this.canContain(typeDesc)) {
182
- fields.push(fieldQueryDef);
183
- }
184
- }
185
183
  }
186
184
  // TODO I removed the error here because during calculation of the refinement space,
187
185
  // (see creation of a QuerySpace) we add references to all the fields from
@@ -262,4 +260,10 @@ class ReduceFieldSpace extends QuerySpace {
262
260
  }
263
261
  }
264
262
  exports.ReduceFieldSpace = ReduceFieldSpace;
263
+ function isEmptyNest(fd) {
264
+ return (typeof fd !== 'string' &&
265
+ !model.isFilteredAliasedName(fd) &&
266
+ fd.type === 'turtle' &&
267
+ fd.pipeline.length === 0);
268
+ }
265
269
  //# sourceMappingURL=query-spaces.js.map
@@ -29,7 +29,7 @@ const space_param_1 = require("../types/space-param");
29
29
  const space_field_1 = require("../types/space-field");
30
30
  const struct_space_field_base_1 = require("./struct-space-field-base");
31
31
  const column_space_field_1 = require("./column-space-field");
32
- const query_field_struct_1 = require("./query-field-struct");
32
+ const ir_view_field_1 = require("./ir-view-field");
33
33
  class StaticSpace {
34
34
  constructor(sourceStructDef) {
35
35
  this.type = 'fieldSpace';
@@ -48,7 +48,7 @@ class StaticSpace {
48
48
  return new StructSpaceField(from);
49
49
  }
50
50
  else if ((0, malloy_types_1.isTurtleDef)(from)) {
51
- return new query_field_struct_1.QueryFieldStruct(this, from);
51
+ return new ir_view_field_1.IRViewField(this, from);
52
52
  }
53
53
  return new column_space_field_1.ColumnSpaceField(from);
54
54
  }
@@ -1,7 +1,7 @@
1
1
  import { FieldDef, QueryFieldDef, TypeDesc } from '../../../model/malloy_types';
2
2
  import { FieldSpace } from '../types/field-space';
3
3
  import { SpaceField } from '../types/space-field';
4
- export declare abstract class QueryField extends SpaceField {
4
+ export declare abstract class ViewField extends SpaceField {
5
5
  protected inSpace: FieldSpace;
6
6
  constructor(inSpace: FieldSpace);
7
7
  abstract getQueryFieldDef(fs: FieldSpace): QueryFieldDef | undefined;
@@ -22,9 +22,9 @@
22
22
  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
23
  */
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.QueryField = void 0;
25
+ exports.ViewField = void 0;
26
26
  const space_field_1 = require("../types/space-field");
27
- class QueryField extends space_field_1.SpaceField {
27
+ class ViewField extends space_field_1.SpaceField {
28
28
  constructor(inSpace) {
29
29
  super();
30
30
  this.inSpace = inSpace;
@@ -33,5 +33,5 @@ class QueryField extends space_field_1.SpaceField {
33
33
  return { dataType: 'turtle', expressionType: 'scalar', evalSpace: 'input' };
34
34
  }
35
35
  }
36
- exports.QueryField = QueryField;
37
- //# sourceMappingURL=query-space-field.js.map
36
+ exports.ViewField = ViewField;
37
+ //# sourceMappingURL=view-field.js.map
@@ -1,14 +1,18 @@
1
1
  export * from './query-properties/nest';
2
- export * from './elements/define-source';
3
- export * from './elements/define-query';
4
- export * from './elements/source';
5
- export * from './elements/refined-source';
6
- export * from './elements/source-query';
7
- export * from './elements/source-query-nodes';
2
+ export * from './statements/define-source';
3
+ export * from './statements/define-query';
4
+ export * from './source-elements/source';
5
+ export * from './source-elements/refined-source';
6
+ export * from './source-query-elements/source-query-element';
7
+ export * from './source-query-elements/sq-arrow';
8
+ export * from './source-query-elements/sq-refine';
9
+ export * from './source-query-elements/sq-source';
10
+ export * from './source-query-elements/sq-reference';
11
+ export * from './source-query-elements/sq-extend';
8
12
  export * from './source-properties/field-list-edit';
9
13
  export * from './source-properties/primary-key';
10
14
  export * from './source-properties/renames';
11
- export * from './source-properties/turtles';
15
+ export * from './source-properties/views';
12
16
  export * from './source-properties/timezone-statement';
13
17
  export * from './expressions/apply';
14
18
  export * from './expressions/binary-numeric';
@@ -51,25 +55,31 @@ export * from './expressions/time-frame';
51
55
  export * from './expressions/top-by';
52
56
  export * from './expressions/unary';
53
57
  export * from './expressions/utils';
54
- export * from './elements/import-statement';
58
+ export * from './statements/import-statement';
55
59
  export * from './query-properties/extend';
56
60
  export * from './parameters/has-parameter';
57
61
  export * from './query-elements/anonymous-query';
58
- export * from './query-elements/existing-query';
59
- export * from './query-elements/full-query';
62
+ export * from './query-elements/query-refine';
63
+ export * from './query-elements/query-arrow';
64
+ export * from './view-elements/view';
65
+ export * from './view-elements/view-arrow';
66
+ export * from './view-elements/view-refine';
67
+ export * from './view-elements/reference-view';
68
+ export * from './view-elements/qop-desc-view';
60
69
  export * from './query-items/field-declaration';
61
70
  export * from './query-items/field-references';
62
71
  export * from './query-properties/aggregate';
63
72
  export * from './query-properties/calculate';
64
73
  export * from './query-properties/declare-fields';
65
- export * from './query-properties/dimensions';
74
+ export * from './source-properties/dimensions';
66
75
  export * from './query-properties/extend';
67
76
  export * from './query-properties/filters';
68
77
  export * from './query-properties/group-by';
69
78
  export * from './query-properties/indexing';
70
- export * from './query-properties/joins';
79
+ export * from './source-properties/joins';
80
+ export * from './source-properties/view-field-declaration';
71
81
  export * from './query-properties/limit';
72
- export * from './query-properties/measures';
82
+ export * from './source-properties/measures';
73
83
  export * from './query-properties/nest';
74
84
  export * from './query-properties/nests';
75
85
  export * from './query-properties/ordering';
@@ -77,11 +87,11 @@ export * from './query-properties/project-statement';
77
87
  export * from './query-properties/qop-desc';
78
88
  export * from './query-properties/sampling';
79
89
  export * from './query-properties/top';
80
- export * from './sources/named-source';
81
- export * from './sources/query-source';
82
- export * from './sources/from-sql-source';
83
- export * from './sources/sql-source';
84
- export * from './sources/table-source';
90
+ export * from './source-elements/named-source';
91
+ export * from './source-elements/query-source';
92
+ export * from './source-elements/from-sql-source';
93
+ export * from './source-elements/sql-source';
94
+ export * from './source-elements/table-source';
85
95
  export * from './sql-elements/sql-statement';
86
96
  export * from './sql-elements/sql-string';
87
97
  export * from './types/annotation-elements';
@@ -95,5 +105,4 @@ export * from './types/malloy-element';
95
105
  export * from './types/query-element';
96
106
  export * from './types/query-item';
97
107
  export * from './types/query-property';
98
- export * from './types/turtle-headed-pipe';
99
108
  export * from './types/query-extend-property';
@@ -37,16 +37,20 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  __exportStar(require("./query-properties/nest"), exports);
40
- __exportStar(require("./elements/define-source"), exports);
41
- __exportStar(require("./elements/define-query"), exports);
42
- __exportStar(require("./elements/source"), exports);
43
- __exportStar(require("./elements/refined-source"), exports);
44
- __exportStar(require("./elements/source-query"), exports);
45
- __exportStar(require("./elements/source-query-nodes"), exports);
40
+ __exportStar(require("./statements/define-source"), exports);
41
+ __exportStar(require("./statements/define-query"), exports);
42
+ __exportStar(require("./source-elements/source"), exports);
43
+ __exportStar(require("./source-elements/refined-source"), exports);
44
+ __exportStar(require("./source-query-elements/source-query-element"), exports);
45
+ __exportStar(require("./source-query-elements/sq-arrow"), exports);
46
+ __exportStar(require("./source-query-elements/sq-refine"), exports);
47
+ __exportStar(require("./source-query-elements/sq-source"), exports);
48
+ __exportStar(require("./source-query-elements/sq-reference"), exports);
49
+ __exportStar(require("./source-query-elements/sq-extend"), exports);
46
50
  __exportStar(require("./source-properties/field-list-edit"), exports);
47
51
  __exportStar(require("./source-properties/primary-key"), exports);
48
52
  __exportStar(require("./source-properties/renames"), exports);
49
- __exportStar(require("./source-properties/turtles"), exports);
53
+ __exportStar(require("./source-properties/views"), exports);
50
54
  __exportStar(require("./source-properties/timezone-statement"), exports);
51
55
  __exportStar(require("./expressions/apply"), exports);
52
56
  __exportStar(require("./expressions/binary-numeric"), exports);
@@ -89,25 +93,31 @@ __exportStar(require("./expressions/time-frame"), exports);
89
93
  __exportStar(require("./expressions/top-by"), exports);
90
94
  __exportStar(require("./expressions/unary"), exports);
91
95
  __exportStar(require("./expressions/utils"), exports);
92
- __exportStar(require("./elements/import-statement"), exports);
96
+ __exportStar(require("./statements/import-statement"), exports);
93
97
  __exportStar(require("./query-properties/extend"), exports);
94
98
  __exportStar(require("./parameters/has-parameter"), exports);
95
99
  __exportStar(require("./query-elements/anonymous-query"), exports);
96
- __exportStar(require("./query-elements/existing-query"), exports);
97
- __exportStar(require("./query-elements/full-query"), exports);
100
+ __exportStar(require("./query-elements/query-refine"), exports);
101
+ __exportStar(require("./query-elements/query-arrow"), exports);
102
+ __exportStar(require("./view-elements/view"), exports);
103
+ __exportStar(require("./view-elements/view-arrow"), exports);
104
+ __exportStar(require("./view-elements/view-refine"), exports);
105
+ __exportStar(require("./view-elements/reference-view"), exports);
106
+ __exportStar(require("./view-elements/qop-desc-view"), exports);
98
107
  __exportStar(require("./query-items/field-declaration"), exports);
99
108
  __exportStar(require("./query-items/field-references"), exports);
100
109
  __exportStar(require("./query-properties/aggregate"), exports);
101
110
  __exportStar(require("./query-properties/calculate"), exports);
102
111
  __exportStar(require("./query-properties/declare-fields"), exports);
103
- __exportStar(require("./query-properties/dimensions"), exports);
112
+ __exportStar(require("./source-properties/dimensions"), exports);
104
113
  __exportStar(require("./query-properties/extend"), exports);
105
114
  __exportStar(require("./query-properties/filters"), exports);
106
115
  __exportStar(require("./query-properties/group-by"), exports);
107
116
  __exportStar(require("./query-properties/indexing"), exports);
108
- __exportStar(require("./query-properties/joins"), exports);
117
+ __exportStar(require("./source-properties/joins"), exports);
118
+ __exportStar(require("./source-properties/view-field-declaration"), exports);
109
119
  __exportStar(require("./query-properties/limit"), exports);
110
- __exportStar(require("./query-properties/measures"), exports);
120
+ __exportStar(require("./source-properties/measures"), exports);
111
121
  __exportStar(require("./query-properties/nest"), exports);
112
122
  __exportStar(require("./query-properties/nests"), exports);
113
123
  __exportStar(require("./query-properties/ordering"), exports);
@@ -115,11 +125,11 @@ __exportStar(require("./query-properties/project-statement"), exports);
115
125
  __exportStar(require("./query-properties/qop-desc"), exports);
116
126
  __exportStar(require("./query-properties/sampling"), exports);
117
127
  __exportStar(require("./query-properties/top"), exports);
118
- __exportStar(require("./sources/named-source"), exports);
119
- __exportStar(require("./sources/query-source"), exports);
120
- __exportStar(require("./sources/from-sql-source"), exports);
121
- __exportStar(require("./sources/sql-source"), exports);
122
- __exportStar(require("./sources/table-source"), exports);
128
+ __exportStar(require("./source-elements/named-source"), exports);
129
+ __exportStar(require("./source-elements/query-source"), exports);
130
+ __exportStar(require("./source-elements/from-sql-source"), exports);
131
+ __exportStar(require("./source-elements/sql-source"), exports);
132
+ __exportStar(require("./source-elements/table-source"), exports);
123
133
  __exportStar(require("./sql-elements/sql-statement"), exports);
124
134
  __exportStar(require("./sql-elements/sql-string"), exports);
125
135
  __exportStar(require("./types/annotation-elements"), exports);
@@ -133,6 +143,5 @@ __exportStar(require("./types/malloy-element"), exports);
133
143
  __exportStar(require("./types/query-element"), exports);
134
144
  __exportStar(require("./types/query-item"), exports);
135
145
  __exportStar(require("./types/query-property"), exports);
136
- __exportStar(require("./types/turtle-headed-pipe"), exports);
137
146
  __exportStar(require("./types/query-extend-property"), exports);
138
147
  //# sourceMappingURL=index.js.map
@@ -5,6 +5,8 @@ import { IndexFieldSpace } from '../field-space/index-field-space';
5
5
  import { QueryProperty } from '../types/query-property';
6
6
  import { QueryBuilder } from '../types/query-builder';
7
7
  import { QueryInputSpace } from '../field-space/query-input-space';
8
+ import { QuerySpace } from '../field-space/query-spaces';
9
+ import { MalloyElement } from '../types/malloy-element';
8
10
  export declare class IndexBuilder implements QueryBuilder {
9
11
  filters: FilterExpression[];
10
12
  limit?: Limit;
@@ -13,7 +15,7 @@ export declare class IndexBuilder implements QueryBuilder {
13
15
  resultFS: IndexFieldSpace;
14
16
  inputFS: QueryInputSpace;
15
17
  readonly type = "index";
16
- constructor(inputFS: FieldSpace, refineThis: PipeSegment | undefined);
18
+ constructor(inputFS: FieldSpace, refineThis: PipeSegment | undefined, isNestIn: QuerySpace | undefined, astEl: MalloyElement);
17
19
  execute(qp: QueryProperty): void;
18
20
  finalize(from: PipeSegment | undefined): PipeSegment;
19
21
  }
@@ -31,10 +31,10 @@ const limit_1 = require("../query-properties/limit");
31
31
  const sampling_1 = require("../query-properties/sampling");
32
32
  const index_field_space_1 = require("../field-space/index-field-space");
33
33
  class IndexBuilder {
34
- constructor(inputFS, refineThis) {
34
+ constructor(inputFS, refineThis, isNestIn, astEl) {
35
35
  this.filters = [];
36
36
  this.type = 'index';
37
- this.resultFS = new index_field_space_1.IndexFieldSpace(inputFS, refineThis);
37
+ this.resultFS = new index_field_space_1.IndexFieldSpace(inputFS, refineThis, isNestIn, astEl);
38
38
  this.inputFS = this.resultFS.inputSpace();
39
39
  }
40
40
  execute(qp) {
@@ -3,9 +3,11 @@ import { FieldSpace } from '../types/field-space';
3
3
  import { ProjectFieldSpace } from '../field-space/project-field-space';
4
4
  import { QueryProperty } from '../types/query-property';
5
5
  import { ReduceBuilder } from './reduce-builder';
6
+ import { QuerySpace } from '../field-space/query-spaces';
7
+ import { MalloyElement } from '../types/malloy-element';
6
8
  export declare class ProjectBuilder extends ReduceBuilder {
7
9
  readonly type = "project";
8
- getResultSpace(fs: FieldSpace, refineThis: PipeSegment | undefined): ProjectFieldSpace;
10
+ getResultSpace(fs: FieldSpace, refineThis: PipeSegment | undefined, isNestIn: QuerySpace | undefined, astEl: MalloyElement): ProjectFieldSpace;
9
11
  execute(qp: QueryProperty): void;
10
12
  finalize(fromSeg: PipeSegment | undefined): PipeSegment;
11
13
  }
@@ -33,8 +33,8 @@ class ProjectBuilder extends reduce_builder_1.ReduceBuilder {
33
33
  super(...arguments);
34
34
  this.type = 'project';
35
35
  }
36
- getResultSpace(fs, refineThis) {
37
- return new project_field_space_1.ProjectFieldSpace(fs, refineThis);
36
+ getResultSpace(fs, refineThis, isNestIn, astEl) {
37
+ return new project_field_space_1.ProjectFieldSpace(fs, refineThis, isNestIn, astEl);
38
38
  }
39
39
  execute(qp) {
40
40
  if (qp.elementType === 'having' || qp instanceof group_by_1.GroupBy) {
@@ -6,6 +6,7 @@ import { QueryProperty } from '../types/query-property';
6
6
  import { QueryBuilder } from '../types/query-builder';
7
7
  import { QuerySpace } from '../field-space/query-spaces';
8
8
  import { QueryInputSpace } from '../field-space/query-input-space';
9
+ import { MalloyElement } from '../types/malloy-element';
9
10
  export declare class ReduceBuilder implements QueryBuilder {
10
11
  inputFS: QueryInputSpace;
11
12
  resultFS: QuerySpace;
@@ -13,8 +14,8 @@ export declare class ReduceBuilder implements QueryBuilder {
13
14
  order?: Top | Ordering;
14
15
  limit?: number;
15
16
  type: 'grouping' | 'project';
16
- constructor(baseFS: FieldSpace, refineThis: PipeSegment | undefined);
17
- getResultSpace(fs: FieldSpace, refineThis: PipeSegment | undefined): QuerySpace;
17
+ constructor(baseFS: FieldSpace, refineThis: PipeSegment | undefined, isNestIn: QuerySpace | undefined, astEl: MalloyElement);
18
+ getResultSpace(fs: FieldSpace, refineThis: PipeSegment | undefined, isNestIn: QuerySpace | undefined, astEl: MalloyElement): QuerySpace;
18
19
  execute(qp: QueryProperty): void;
19
20
  refineFrom(from: PipeSegment | undefined, to: QuerySegment): void;
20
21
  finalize(fromSeg: PipeSegment | undefined): PipeSegment;
@@ -32,14 +32,14 @@ const top_1 = require("../query-properties/top");
32
32
  const query_spaces_1 = require("../field-space/query-spaces");
33
33
  const definition_list_1 = require("../types/definition-list");
34
34
  class ReduceBuilder {
35
- constructor(baseFS, refineThis) {
35
+ constructor(baseFS, refineThis, isNestIn, astEl) {
36
36
  this.filters = [];
37
- this.resultFS = this.getResultSpace(baseFS, refineThis);
37
+ this.resultFS = this.getResultSpace(baseFS, refineThis, isNestIn, astEl);
38
38
  this.inputFS = this.resultFS.inputSpace();
39
39
  this.type = 'grouping';
40
40
  }
41
- getResultSpace(fs, refineThis) {
42
- return new query_spaces_1.ReduceFieldSpace(fs, refineThis);
41
+ getResultSpace(fs, refineThis, isNestIn, astEl) {
42
+ return new query_spaces_1.ReduceFieldSpace(fs, refineThis, isNestIn, astEl);
43
43
  }
44
44
  execute(qp) {
45
45
  if (qp.queryExecute) {
@@ -87,7 +87,7 @@ class ReduceBuilder {
87
87
  }
88
88
  }
89
89
  refineFrom(from, to) {
90
- if (from && from.type !== 'index') {
90
+ if (from && from.type !== 'index' && from.type !== 'raw') {
91
91
  if (!this.order) {
92
92
  if (from.orderBy) {
93
93
  to.orderBy = from.orderBy;
@@ -1,11 +1,11 @@
1
1
  import { Annotation } from '../../../model';
2
2
  import { DocStatement, Document, MalloyElement } from '../types/malloy-element';
3
3
  import { Noteable, extendNoteMethod } from '../types/noteable';
4
- import { SourceQueryNode } from '../elements/source-query';
4
+ import { SourceQueryElement } from '../source-query-elements/source-query-element';
5
5
  export declare class AnonymousQuery extends MalloyElement implements DocStatement, Noteable {
6
- readonly queryExpr: SourceQueryNode;
6
+ readonly queryExpr: SourceQueryElement;
7
7
  elementType: string;
8
- constructor(queryExpr: SourceQueryNode);
8
+ constructor(queryExpr: SourceQueryElement);
9
9
  readonly isNoteableObj = true;
10
10
  extendNote: typeof extendNoteMethod;
11
11
  note?: Annotation;
@@ -0,0 +1,17 @@
1
+ import { Source } from '../source-elements/source';
2
+ import { QueryComp } from '../types/query-comp';
3
+ import { QueryElement } from '../types/query-element';
4
+ import { QueryBase } from './query-base';
5
+ import { View } from '../view-elements/view';
6
+ /**
7
+ * A query operation that adds segments to a LHS source or query.
8
+ *
9
+ * e.g. `flights -> by_carrier`
10
+ */
11
+ export declare class QueryArrow extends QueryBase implements QueryElement {
12
+ readonly source: Source | QueryElement;
13
+ readonly view: View;
14
+ elementType: string;
15
+ constructor(source: Source | QueryElement, view: View);
16
+ queryComp(isRefOk: boolean): QueryComp;
17
+ }