@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.
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -3
- package/dist/lang/ast/field-space/ast-view-field.d.ts +11 -0
- package/dist/lang/ast/field-space/{wild-space-field.js → ast-view-field.js} +13 -12
- package/dist/lang/ast/field-space/dynamic-space.js +2 -2
- package/dist/lang/ast/field-space/{query-field-struct.d.ts → ir-view-field.d.ts} +2 -2
- package/dist/lang/ast/field-space/{query-field-struct.js → ir-view-field.js} +5 -5
- package/dist/lang/ast/field-space/join-space-field.d.ts +1 -1
- package/dist/lang/ast/field-space/query-input-space.d.ts +7 -6
- package/dist/lang/ast/field-space/query-input-space.js +1 -1
- package/dist/lang/ast/field-space/query-spaces.d.ts +3 -3
- package/dist/lang/ast/field-space/query-spaces.js +17 -13
- package/dist/lang/ast/field-space/static-space.js +2 -2
- package/dist/lang/ast/field-space/{query-space-field.d.ts → view-field.d.ts} +1 -1
- package/dist/lang/ast/field-space/{query-space-field.js → view-field.js} +4 -4
- package/dist/lang/ast/index.d.ts +28 -19
- package/dist/lang/ast/index.js +28 -19
- package/dist/lang/ast/query-builders/index-builder.d.ts +3 -1
- package/dist/lang/ast/query-builders/index-builder.js +2 -2
- package/dist/lang/ast/query-builders/project-builder.d.ts +3 -1
- package/dist/lang/ast/query-builders/project-builder.js +2 -2
- package/dist/lang/ast/query-builders/reduce-builder.d.ts +3 -2
- package/dist/lang/ast/query-builders/reduce-builder.js +5 -5
- package/dist/lang/ast/query-elements/anonymous-query.d.ts +3 -3
- package/dist/lang/ast/query-elements/query-arrow.d.ts +17 -0
- package/dist/lang/ast/query-elements/query-arrow.js +84 -0
- package/dist/lang/ast/query-elements/query-base.d.ts +7 -0
- package/dist/lang/ast/query-elements/query-base.js +38 -0
- package/dist/lang/ast/query-elements/query-head-struct.d.ts +1 -1
- package/dist/lang/ast/query-elements/query-head-struct.js +2 -2
- package/dist/lang/ast/query-elements/query-raw.d.ts +20 -0
- package/dist/lang/ast/query-elements/query-raw.js +65 -0
- package/dist/lang/ast/query-elements/query-reference.d.ts +16 -0
- package/dist/lang/ast/query-elements/query-reference.js +80 -0
- package/dist/lang/ast/query-elements/query-refine.d.ts +16 -0
- package/dist/lang/ast/query-elements/query-refine.js +56 -0
- package/dist/lang/ast/query-items/field-declaration.d.ts +14 -14
- package/dist/lang/ast/query-items/field-declaration.js +10 -10
- package/dist/lang/ast/query-items/field-references.d.ts +1 -1
- package/dist/lang/ast/query-items/field-references.js +4 -4
- package/dist/lang/ast/query-properties/declare-fields.d.ts +3 -3
- package/dist/lang/ast/query-properties/nest.d.ts +3 -57
- package/dist/lang/ast/query-properties/nest.js +17 -272
- package/dist/lang/ast/query-properties/nests.d.ts +3 -3
- package/dist/lang/ast/query-properties/qop-desc.d.ts +1 -1
- package/dist/lang/ast/query-properties/qop-desc.js +9 -13
- package/dist/lang/ast/query-utils.d.ts +2 -4
- package/dist/lang/ast/query-utils.js +5 -2
- package/dist/lang/ast/{sources → source-elements}/named-source.d.ts +1 -1
- package/dist/lang/ast/{sources → source-elements}/named-source.js +1 -1
- package/dist/lang/ast/{sources → source-elements}/query-source.d.ts +1 -1
- package/dist/lang/ast/{sources → source-elements}/query-source.js +5 -3
- package/dist/lang/ast/{elements → source-elements}/refined-source.js +3 -3
- package/dist/lang/ast/{sources → source-elements}/sql-source.d.ts +1 -1
- package/dist/lang/ast/{sources → source-elements}/sql-source.js +1 -1
- package/dist/lang/ast/{sources → source-elements}/table-source.d.ts +1 -1
- package/dist/lang/ast/{sources → source-elements}/table-source.js +1 -1
- package/dist/lang/ast/{query-properties → source-properties}/dimensions.d.ts +1 -1
- package/dist/lang/ast/{query-properties → source-properties}/dimensions.js +1 -1
- package/dist/lang/ast/{query-properties → source-properties}/joins.d.ts +6 -6
- package/dist/lang/ast/{query-properties → source-properties}/measures.d.ts +1 -1
- package/dist/lang/ast/{query-properties → source-properties}/measures.js +1 -1
- package/dist/lang/ast/source-properties/view-field-declaration.d.ts +18 -0
- package/dist/lang/ast/source-properties/view-field-declaration.js +57 -0
- package/dist/lang/ast/source-properties/views.d.ts +5 -0
- package/dist/lang/ast/source-properties/{turtles.js → views.js} +4 -4
- package/dist/lang/ast/source-query-elements/source-query-element.d.ts +17 -0
- package/dist/lang/ast/{elements/source-query.js → source-query-elements/source-query-element.js} +11 -5
- package/dist/lang/ast/source-query-elements/sq-arrow.d.ts +22 -0
- package/dist/lang/ast/source-query-elements/sq-arrow.js +70 -0
- package/dist/lang/ast/source-query-elements/sq-extend.d.ts +19 -0
- package/dist/lang/ast/source-query-elements/sq-extend.js +59 -0
- package/dist/lang/ast/source-query-elements/sq-reference.d.ts +18 -0
- package/dist/lang/ast/source-query-elements/sq-reference.js +89 -0
- package/dist/lang/ast/source-query-elements/sq-refine.d.ts +18 -0
- package/dist/lang/ast/source-query-elements/sq-refine.js +70 -0
- package/dist/lang/ast/source-query-elements/sq-source.d.ts +17 -0
- package/dist/lang/ast/source-query-elements/sq-source.js +59 -0
- package/dist/lang/ast/sql-elements/sql-string.d.ts +2 -2
- package/dist/lang/ast/sql-elements/sql-string.js +3 -3
- package/dist/lang/ast/{elements → statements}/define-query.d.ts +3 -3
- package/dist/lang/ast/{elements → statements}/define-source.d.ts +3 -3
- package/dist/lang/ast/types/field-collection-member.d.ts +2 -2
- package/dist/lang/ast/types/field-collection-member.js +1 -1
- package/dist/lang/ast/types/field-space.d.ts +2 -1
- package/dist/lang/ast/types/pipeline-comp.d.ts +7 -0
- package/dist/lang/ast/types/{turtle-headed-pipe.js → pipeline-comp.js} +1 -4
- package/dist/lang/ast/types/query-comp.d.ts +1 -0
- package/dist/lang/ast/types/query-element.d.ts +6 -3
- package/dist/lang/ast/types/query-element.js +8 -3
- package/dist/lang/ast/types/query-extend-property.d.ts +3 -3
- package/dist/lang/ast/types/query-extend-property.js +3 -3
- package/dist/lang/ast/types/query-item.d.ts +3 -3
- package/dist/lang/ast/types/source-property.d.ts +3 -3
- package/dist/lang/ast/types/source-property.js +3 -3
- package/dist/lang/ast/types/space-entry.d.ts +1 -1
- package/dist/lang/ast/view-elements/qop-desc-view.d.ts +19 -0
- package/dist/lang/ast/view-elements/qop-desc-view.js +98 -0
- package/dist/lang/ast/view-elements/reference-view.d.ts +27 -0
- package/dist/lang/ast/view-elements/reference-view.js +155 -0
- package/dist/lang/ast/view-elements/refine-utils.d.ts +3 -0
- package/dist/lang/ast/view-elements/refine-utils.js +101 -0
- package/dist/lang/ast/view-elements/view-arrow.d.ts +19 -0
- package/dist/lang/ast/view-elements/view-arrow.js +56 -0
- package/dist/lang/ast/view-elements/view-refine.d.ts +19 -0
- package/dist/lang/ast/view-elements/view-refine.js +65 -0
- package/dist/lang/ast/view-elements/view.d.ts +25 -0
- package/dist/lang/ast/view-elements/view.js +48 -0
- package/dist/lang/lib/Malloy/MalloyLexer.d.ts +78 -79
- package/dist/lang/lib/Malloy/MalloyLexer.js +1101 -1107
- package/dist/lang/lib/Malloy/MalloyParser.d.ts +245 -303
- package/dist/lang/lib/Malloy/MalloyParser.js +1994 -2663
- package/dist/lang/lib/Malloy/MalloyParserListener.d.ts +106 -120
- package/dist/lang/lib/Malloy/MalloyParserVisitor.d.ts +64 -74
- package/dist/lang/malloy-to-ast.d.ts +25 -23
- package/dist/lang/malloy-to-ast.js +61 -137
- package/dist/lang/test/annotation.spec.js +1 -1
- package/dist/lang/test/field-symbols.spec.js +2 -2
- package/dist/lang/test/lenses.spec.js +66 -3
- package/dist/lang/test/locations.spec.js +11 -43
- package/dist/lang/test/parse.spec.js +39 -102
- package/dist/lang/test/query.spec.js +1 -7
- package/dist/lang/test/source.spec.js +1 -6
- package/dist/lang/test/sql-block.spec.js +6 -8
- package/dist/malloy.d.ts +2 -1
- package/dist/malloy.js +3 -11
- package/dist/model/index.d.ts +1 -1
- package/dist/model/index.js +1 -2
- package/dist/model/malloy_query.d.ts +2 -3
- package/dist/model/malloy_query.js +52 -67
- package/dist/model/malloy_types.d.ts +7 -2
- package/dist/model/malloy_types.js +6 -2
- package/package.json +1 -1
- package/dist/lang/ast/elements/pipeline-desc.d.ts +0 -49
- package/dist/lang/ast/elements/pipeline-desc.js +0 -170
- package/dist/lang/ast/elements/source-query-nodes.d.ts +0 -73
- package/dist/lang/ast/elements/source-query-nodes.js +0 -351
- package/dist/lang/ast/elements/source-query.d.ts +0 -11
- package/dist/lang/ast/field-space/wild-space-field.d.ts +0 -9
- package/dist/lang/ast/query-elements/existing-query.d.ts +0 -12
- package/dist/lang/ast/query-elements/existing-query.js +0 -89
- package/dist/lang/ast/query-elements/full-query.d.ts +0 -11
- package/dist/lang/ast/query-elements/full-query.js +0 -130
- package/dist/lang/ast/query-properties/refinements.d.ts +0 -31
- package/dist/lang/ast/query-properties/refinements.js +0 -199
- package/dist/lang/ast/source-properties/turtles.d.ts +0 -5
- package/dist/lang/ast/types/explore-field.d.ts +0 -5
- package/dist/lang/ast/types/explore-field.js +0 -32
- package/dist/lang/ast/types/field-decl.d.ts +0 -7
- package/dist/lang/ast/types/field-decl.js +0 -37
- package/dist/lang/ast/types/turtle-headed-pipe.d.ts +0 -1
- /package/dist/lang/ast/{sources → source-elements}/from-sql-source.d.ts +0 -0
- /package/dist/lang/ast/{sources → source-elements}/from-sql-source.js +0 -0
- /package/dist/lang/ast/{elements → source-elements}/refined-source.d.ts +0 -0
- /package/dist/lang/ast/{elements → source-elements}/source.d.ts +0 -0
- /package/dist/lang/ast/{elements → source-elements}/source.js +0 -0
- /package/dist/lang/ast/{query-properties → source-properties}/joins.js +0 -0
- /package/dist/lang/ast/{elements → statements}/define-query.js +0 -0
- /package/dist/lang/ast/{elements → statements}/define-source.js +0 -0
- /package/dist/lang/ast/{elements → statements}/import-statement.d.ts +0 -0
- /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,
|
|
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.
|
|
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.
|
|
26
|
-
const
|
|
27
|
-
class
|
|
28
|
-
constructor(
|
|
29
|
-
super();
|
|
30
|
-
this.
|
|
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
|
-
|
|
33
|
-
|
|
33
|
+
getQueryFieldDef(fs) {
|
|
34
|
+
return this.view.getFieldDef(fs);
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
-
return this.
|
|
36
|
+
fieldDef() {
|
|
37
|
+
return this.view.getFieldDef(this.inSpace);
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
|
-
exports.
|
|
40
|
-
//# sourceMappingURL=
|
|
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
|
|
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
|
|
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 {
|
|
2
|
+
import { ViewField } from './view-field';
|
|
3
3
|
import { FieldSpace } from '../types/field-space';
|
|
4
|
-
export declare class
|
|
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.
|
|
26
|
-
const
|
|
27
|
-
class
|
|
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.
|
|
47
|
-
//# sourceMappingURL=
|
|
46
|
+
exports.IRViewField = IRViewField;
|
|
47
|
+
//# sourceMappingURL=ir-view-field.js.map
|
|
@@ -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 {
|
|
9
|
-
import { Join } from '../
|
|
8
|
+
import { AtomicFieldDeclaration } from '../query-items/field-declaration';
|
|
9
|
+
import { Join } from '../source-properties/joins';
|
|
10
10
|
import { SourceSpec } from '../space-seed';
|
|
11
|
-
import {
|
|
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:
|
|
23
|
-
extendSource(extendField: Join |
|
|
23
|
+
constructor(input: SourceSpec, queryOutput: QuerySpace);
|
|
24
|
+
extendSource(extendField: Join | AtomicFieldDeclaration): void;
|
|
24
25
|
isQueryFieldSpace(): boolean;
|
|
25
|
-
outputSpace():
|
|
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("../
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
25
|
+
exports.ViewField = void 0;
|
|
26
26
|
const space_field_1 = require("../types/space-field");
|
|
27
|
-
class
|
|
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.
|
|
37
|
-
//# sourceMappingURL=
|
|
36
|
+
exports.ViewField = ViewField;
|
|
37
|
+
//# sourceMappingURL=view-field.js.map
|
package/dist/lang/ast/index.d.ts
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
export * from './query-properties/nest';
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './elements/source';
|
|
5
|
-
export * from './elements/refined-source';
|
|
6
|
-
export * from './elements/source-query';
|
|
7
|
-
export * from './
|
|
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/
|
|
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 './
|
|
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/
|
|
59
|
-
export * from './query-elements/
|
|
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 './
|
|
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 './
|
|
79
|
+
export * from './source-properties/joins';
|
|
80
|
+
export * from './source-properties/view-field-declaration';
|
|
71
81
|
export * from './query-properties/limit';
|
|
72
|
-
export * from './
|
|
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 './
|
|
81
|
-
export * from './
|
|
82
|
-
export * from './
|
|
83
|
-
export * from './
|
|
84
|
-
export * from './
|
|
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';
|
package/dist/lang/ast/index.js
CHANGED
|
@@ -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("./
|
|
41
|
-
__exportStar(require("./
|
|
42
|
-
__exportStar(require("./elements/source"), exports);
|
|
43
|
-
__exportStar(require("./elements/refined-source"), exports);
|
|
44
|
-
__exportStar(require("./elements/source-query"), exports);
|
|
45
|
-
__exportStar(require("./
|
|
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/
|
|
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("./
|
|
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/
|
|
97
|
-
__exportStar(require("./query-elements/
|
|
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("./
|
|
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("./
|
|
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("./
|
|
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("./
|
|
119
|
-
__exportStar(require("./
|
|
120
|
-
__exportStar(require("./
|
|
121
|
-
__exportStar(require("./
|
|
122
|
-
__exportStar(require("./
|
|
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 {
|
|
4
|
+
import { SourceQueryElement } from '../source-query-elements/source-query-element';
|
|
5
5
|
export declare class AnonymousQuery extends MalloyElement implements DocStatement, Noteable {
|
|
6
|
-
readonly queryExpr:
|
|
6
|
+
readonly queryExpr: SourceQueryElement;
|
|
7
7
|
elementType: string;
|
|
8
|
-
constructor(queryExpr:
|
|
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
|
+
}
|