@malloydata/malloy 0.0.22-dev230207182613 → 0.0.22-dev230207183024
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/connection_utils.js +7 -7
- package/dist/dialect/dialect.d.ts +1 -1
- package/dist/dialect/duckdb.d.ts +1 -1
- package/dist/dialect/duckdb.js +9 -9
- package/dist/dialect/postgres.d.ts +1 -1
- package/dist/dialect/postgres.js +16 -16
- package/dist/dialect/standardsql.d.ts +1 -1
- package/dist/dialect/standardsql.js +8 -8
- package/dist/index.d.ts +6 -6
- package/dist/lang/ast/ast-utils.js +3 -3
- package/dist/lang/ast/elements/define-query.js +4 -4
- package/dist/lang/ast/elements/define-source.d.ts +1 -1
- package/dist/lang/ast/elements/define-source.js +8 -8
- package/dist/lang/ast/elements/import-statement.js +2 -2
- package/dist/lang/ast/elements/pipeline-desc.d.ts +1 -1
- package/dist/lang/ast/elements/pipeline-desc.js +7 -7
- package/dist/lang/ast/elements/refined-source.d.ts +1 -1
- package/dist/lang/ast/elements/refined-source.js +5 -5
- package/dist/lang/ast/elements/source.js +1 -1
- package/dist/lang/ast/error-factory.js +16 -13
- package/dist/lang/ast/expressions/binary-boolean.d.ts +1 -1
- package/dist/lang/ast/expressions/binary-boolean.js +4 -4
- package/dist/lang/ast/expressions/binary-numeric.d.ts +1 -1
- package/dist/lang/ast/expressions/binary-numeric.js +1 -1
- package/dist/lang/ast/expressions/boolean.js +1 -1
- package/dist/lang/ast/expressions/constant-sub-expression.js +7 -7
- package/dist/lang/ast/expressions/expr-aggregate-function.d.ts +3 -3
- package/dist/lang/ast/expressions/expr-aggregate-function.js +12 -12
- package/dist/lang/ast/expressions/expr-alternation-tree.js +3 -3
- package/dist/lang/ast/expressions/expr-asymmetric.d.ts +1 -1
- package/dist/lang/ast/expressions/expr-asymmetric.js +1 -1
- package/dist/lang/ast/expressions/expr-avg.d.ts +1 -1
- package/dist/lang/ast/expressions/expr-avg.js +1 -1
- package/dist/lang/ast/expressions/expr-cast.d.ts +1 -1
- package/dist/lang/ast/expressions/expr-cast.js +26 -4
- package/dist/lang/ast/expressions/expr-compare.d.ts +1 -1
- package/dist/lang/ast/expressions/expr-compare.js +3 -3
- package/dist/lang/ast/expressions/expr-count.js +6 -6
- package/dist/lang/ast/expressions/expr-filter.d.ts +2 -2
- package/dist/lang/ast/expressions/expr-filter.js +8 -8
- package/dist/lang/ast/expressions/expr-func.d.ts +1 -1
- package/dist/lang/ast/expressions/expr-func.js +3 -3
- package/dist/lang/ast/expressions/expr-granular-time.js +7 -7
- package/dist/lang/ast/expressions/expr-id-reference.js +11 -11
- package/dist/lang/ast/expressions/expr-logical-op.js +1 -1
- package/dist/lang/ast/expressions/expr-minus.d.ts +1 -1
- package/dist/lang/ast/expressions/expr-minus.js +3 -3
- package/dist/lang/ast/expressions/expr-not.js +2 -2
- package/dist/lang/ast/expressions/expr-now.js +7 -7
- package/dist/lang/ast/expressions/expr-null.js +3 -3
- package/dist/lang/ast/expressions/expr-number.js +1 -1
- package/dist/lang/ast/expressions/expr-parens.js +2 -2
- package/dist/lang/ast/expressions/expr-regex.js +3 -3
- package/dist/lang/ast/expressions/expr-string.js +6 -6
- package/dist/lang/ast/expressions/expr-sum.d.ts +1 -1
- package/dist/lang/ast/expressions/expr-sum.js +1 -1
- package/dist/lang/ast/expressions/expr-time-extract.d.ts +1 -1
- package/dist/lang/ast/expressions/expr-time-extract.js +29 -29
- package/dist/lang/ast/expressions/expr-time.js +7 -7
- package/dist/lang/ast/expressions/expr-ungroup.d.ts +2 -2
- package/dist/lang/ast/expressions/expr-ungroup.js +11 -8
- package/dist/lang/ast/expressions/for-range.d.ts +1 -1
- package/dist/lang/ast/expressions/for-range.js +1 -1
- package/dist/lang/ast/expressions/granular-literal.js +12 -12
- package/dist/lang/ast/expressions/partial-compare.d.ts +1 -1
- package/dist/lang/ast/expressions/partial-compare.js +1 -1
- package/dist/lang/ast/expressions/pick-when.d.ts +1 -1
- package/dist/lang/ast/expressions/pick-when.js +11 -11
- package/dist/lang/ast/expressions/range.js +4 -4
- package/dist/lang/ast/expressions/top-by.d.ts +1 -1
- package/dist/lang/ast/expressions/top-by.js +4 -4
- package/dist/lang/ast/expressions/unary.js +1 -1
- package/dist/lang/ast/field-space/dynamic-space.d.ts +1 -1
- package/dist/lang/ast/field-space/dynamic-space.js +1 -1
- package/dist/lang/ast/field-space/index-field-space.js +2 -2
- package/dist/lang/ast/field-space/query-field-struct.js +1 -1
- package/dist/lang/ast/field-space/query-space-field.js +1 -1
- package/dist/lang/ast/field-space/query-spaces.js +2 -2
- package/dist/lang/ast/field-space/reference-field.js +1 -1
- package/dist/lang/ast/field-space/rename-space-field.js +2 -2
- package/dist/lang/ast/field-space/static-space.js +8 -8
- package/dist/lang/ast/field-space/struct-space-field-base.js +1 -1
- package/dist/lang/ast/fragtype-utils.js +2 -2
- package/dist/lang/ast/parameters/constant-parameter.js +9 -9
- package/dist/lang/ast/parameters/has-parameter.js +5 -5
- package/dist/lang/ast/query-elements/anonymous-query.js +1 -1
- package/dist/lang/ast/query-elements/existing-query.d.ts +1 -1
- package/dist/lang/ast/query-elements/existing-query.js +11 -11
- package/dist/lang/ast/query-elements/full-query.js +11 -11
- package/dist/lang/ast/query-elements/query-head-struct.js +1 -1
- package/dist/lang/ast/query-items/field-declaration.d.ts +1 -1
- package/dist/lang/ast/query-items/field-declaration.js +11 -11
- package/dist/lang/ast/query-items/field-references.d.ts +1 -1
- package/dist/lang/ast/query-items/field-references.js +1 -1
- package/dist/lang/ast/query-properties/filters.d.ts +1 -1
- package/dist/lang/ast/query-properties/filters.js +7 -7
- package/dist/lang/ast/query-properties/indexing.d.ts +1 -1
- package/dist/lang/ast/query-properties/indexing.js +2 -2
- package/dist/lang/ast/query-properties/joins.d.ts +1 -1
- package/dist/lang/ast/query-properties/joins.js +17 -14
- package/dist/lang/ast/query-properties/nest.js +4 -4
- package/dist/lang/ast/query-properties/ordering.js +2 -2
- package/dist/lang/ast/query-properties/qop-desc.js +1 -1
- package/dist/lang/ast/query-properties/top.js +3 -3
- package/dist/lang/ast/source-properties/field-list-edit.js +1 -1
- package/dist/lang/ast/source-properties/primary-key.js +1 -1
- package/dist/lang/ast/source-properties/renames.js +1 -1
- package/dist/lang/ast/sources/named-source.d.ts +2 -2
- package/dist/lang/ast/sources/named-source.js +6 -6
- package/dist/lang/ast/sources/query-source.d.ts +1 -1
- package/dist/lang/ast/sources/query-source.js +2 -2
- package/dist/lang/ast/sources/table-source.js +7 -5
- package/dist/lang/ast/space-seed.d.ts +1 -1
- package/dist/lang/ast/sql-elements/sql-statement.js +5 -5
- package/dist/lang/ast/sql-elements/sql-string.js +1 -1
- package/dist/lang/ast/struct-utils.js +2 -2
- package/dist/lang/ast/time-utils.js +32 -32
- package/dist/lang/ast/types/expression-def.js +34 -34
- package/dist/lang/ast/types/malloy-element.d.ts +4 -4
- package/dist/lang/ast/types/malloy-element.js +27 -27
- package/dist/lang/ast/types/query-comp.d.ts +1 -1
- package/dist/lang/ast/types/space-field.js +1 -1
- package/dist/lang/ast/types/space-param.js +2 -2
- package/dist/lang/ast/types/turtle-headed-pipe.d.ts +1 -1
- package/dist/lang/ast/types/turtle-headed-pipe.js +1 -1
- package/dist/lang/ast/types/type-desc.d.ts +1 -1
- package/dist/lang/field-utils.d.ts +1 -1
- package/dist/lang/index.d.ts +1 -1
- package/dist/lang/malloy-to-ast.d.ts +1 -1
- package/dist/lang/malloy-to-ast.js +11 -11
- package/dist/lang/parse-error-handler.js +4 -4
- package/dist/lang/parse-malloy.d.ts +4 -4
- package/dist/lang/parse-malloy.js +61 -61
- package/dist/lang/parse-tree-walkers/document-completion-walker.js +16 -16
- package/dist/lang/parse-tree-walkers/document-help-context-walker.js +10 -10
- package/dist/lang/parse-tree-walkers/document-highlight-walker.js +85 -82
- package/dist/lang/parse-tree-walkers/document-symbol-walker.js +40 -40
- package/dist/lang/parse-tree-walkers/find-external-references.d.ts +1 -1
- package/dist/lang/parse-tree-walkers/find-external-references.js +2 -2
- package/dist/lang/reference-list.d.ts +1 -1
- package/dist/lang/test/document-help-context-walker.spec.js +6 -6
- package/dist/lang/test/document-symbol-walker.spec.js +3 -3
- package/dist/lang/test/field-symbols.spec.js +62 -58
- package/dist/lang/test/parse.spec.js +262 -260
- package/dist/lang/test/test-translator.d.ts +1 -1
- package/dist/lang/test/test-translator.js +139 -139
- package/dist/lang/translate-response.d.ts +1 -1
- package/dist/lang/zone.js +5 -5
- package/dist/malloy.d.ts +5 -5
- package/dist/malloy.js +72 -72
- package/dist/model/malloy_query.d.ts +2 -2
- package/dist/model/malloy_query.js +179 -176
- package/dist/model/malloy_types.js +41 -41
- package/dist/model/sql_block.js +2 -2
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DocumentLocation, FieldDef, ModelDef, NamedModelObject, PipeSegment, Query, StructDef, TurtleDef } from "../../model/malloy_types";
|
|
2
2
|
import { MalloyElement } from "../ast";
|
|
3
3
|
import { NameSpace } from "../ast/types/name-space";
|
|
4
4
|
import { ModelEntry } from "../ast/types/model-entry";
|
|
@@ -29,110 +29,110 @@ const ast_1 = require("../ast");
|
|
|
29
29
|
const parse_malloy_1 = require("../parse-malloy");
|
|
30
30
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/explicit-module-boundary-types
|
|
31
31
|
function pretty(thing) {
|
|
32
|
-
return (0, util_1.inspect)(thing, { breakLength: 72, depth: Infinity });
|
|
32
|
+
return (0, util_1.inspect)(thing, { "breakLength": 72, "depth": Infinity });
|
|
33
33
|
}
|
|
34
34
|
exports.pretty = pretty;
|
|
35
35
|
const mockSchema = {
|
|
36
|
-
aTable: {
|
|
37
|
-
type: "struct",
|
|
38
|
-
name: "aTable",
|
|
39
|
-
dialect: "standardsql",
|
|
40
|
-
structSource: { type: "table", tablePath: "aTable" },
|
|
41
|
-
structRelationship: { type: "basetable", connectionName: "test" },
|
|
42
|
-
fields: [
|
|
43
|
-
{ type: "string", name: "astr" },
|
|
44
|
-
{ type: "number", name: "af", numberType: "float" },
|
|
45
|
-
{ type: "number", name: "ai", numberType: "integer" },
|
|
46
|
-
{ type: "date", name: "ad" },
|
|
47
|
-
{ type: "boolean", name: "abool" },
|
|
48
|
-
{ type: "timestamp", name: "ats" }
|
|
49
|
-
]
|
|
36
|
+
"aTable": {
|
|
37
|
+
"type": "struct",
|
|
38
|
+
"name": "aTable",
|
|
39
|
+
"dialect": "standardsql",
|
|
40
|
+
"structSource": { "type": "table", "tablePath": "aTable" },
|
|
41
|
+
"structRelationship": { "type": "basetable", "connectionName": "test" },
|
|
42
|
+
"fields": [
|
|
43
|
+
{ "type": "string", "name": "astr" },
|
|
44
|
+
{ "type": "number", "name": "af", "numberType": "float" },
|
|
45
|
+
{ "type": "number", "name": "ai", "numberType": "integer" },
|
|
46
|
+
{ "type": "date", "name": "ad" },
|
|
47
|
+
{ "type": "boolean", "name": "abool" },
|
|
48
|
+
{ "type": "timestamp", "name": "ats" }
|
|
49
|
+
]
|
|
50
50
|
},
|
|
51
51
|
"malloytest.carriers": {
|
|
52
|
-
type: "struct",
|
|
53
|
-
name: "malloytest.carriers",
|
|
54
|
-
dialect: "standardsql",
|
|
55
|
-
structSource: {
|
|
56
|
-
type: "table",
|
|
57
|
-
tablePath: "malloytest.carriers"
|
|
52
|
+
"type": "struct",
|
|
53
|
+
"name": "malloytest.carriers",
|
|
54
|
+
"dialect": "standardsql",
|
|
55
|
+
"structSource": {
|
|
56
|
+
"type": "table",
|
|
57
|
+
"tablePath": "malloytest.carriers"
|
|
58
58
|
},
|
|
59
|
-
structRelationship: { type: "basetable", connectionName: "bigquery" },
|
|
60
|
-
fields: [
|
|
61
|
-
{ name: "code", type: "string" },
|
|
62
|
-
{ name: "name", type: "string" },
|
|
63
|
-
{ name: "nickname", type: "string" }
|
|
59
|
+
"structRelationship": { "type": "basetable", "connectionName": "bigquery" },
|
|
60
|
+
"fields": [
|
|
61
|
+
{ "name": "code", "type": "string" },
|
|
62
|
+
{ "name": "name", "type": "string" },
|
|
63
|
+
{ "name": "nickname", "type": "string" }
|
|
64
64
|
],
|
|
65
|
-
as: "carriers"
|
|
65
|
+
"as": "carriers"
|
|
66
66
|
},
|
|
67
67
|
"malloytest.flights": {
|
|
68
|
-
type: "struct",
|
|
69
|
-
name: "malloytest.flights",
|
|
70
|
-
dialect: "standardsql",
|
|
71
|
-
structSource: {
|
|
72
|
-
type: "table",
|
|
73
|
-
tablePath: "malloytest.flights"
|
|
68
|
+
"type": "struct",
|
|
69
|
+
"name": "malloytest.flights",
|
|
70
|
+
"dialect": "standardsql",
|
|
71
|
+
"structSource": {
|
|
72
|
+
"type": "table",
|
|
73
|
+
"tablePath": "malloytest.flights"
|
|
74
74
|
},
|
|
75
|
-
structRelationship: { type: "basetable", connectionName: "bigquery" },
|
|
76
|
-
fields: [
|
|
77
|
-
{ name: "carrier", type: "string" },
|
|
78
|
-
{ name: "origin", type: "string" },
|
|
79
|
-
{ name: "destination", type: "string" },
|
|
80
|
-
{ name: "flight_num", type: "string" },
|
|
81
|
-
{ name: "flight_time", type: "number", numberType: "integer" },
|
|
82
|
-
{ name: "tail_num", type: "string" },
|
|
83
|
-
{ name: "dep_time", type: "timestamp" },
|
|
84
|
-
{ name: "arr_time", type: "timestamp" },
|
|
85
|
-
{ name: "dep_delay", type: "number", numberType: "integer" },
|
|
86
|
-
{ name: "arr_delay", type: "number", numberType: "integer" },
|
|
87
|
-
{ name: "taxi_out", type: "number", numberType: "integer" },
|
|
88
|
-
{ name: "taxi_in", type: "number", numberType: "integer" },
|
|
89
|
-
{ name: "distance", type: "number", numberType: "integer" },
|
|
90
|
-
{ name: "cancelled", type: "string" },
|
|
91
|
-
{ name: "diverted", type: "string" },
|
|
92
|
-
{ name: "id2", type: "number", numberType: "integer" }
|
|
75
|
+
"structRelationship": { "type": "basetable", "connectionName": "bigquery" },
|
|
76
|
+
"fields": [
|
|
77
|
+
{ "name": "carrier", "type": "string" },
|
|
78
|
+
{ "name": "origin", "type": "string" },
|
|
79
|
+
{ "name": "destination", "type": "string" },
|
|
80
|
+
{ "name": "flight_num", "type": "string" },
|
|
81
|
+
{ "name": "flight_time", "type": "number", "numberType": "integer" },
|
|
82
|
+
{ "name": "tail_num", "type": "string" },
|
|
83
|
+
{ "name": "dep_time", "type": "timestamp" },
|
|
84
|
+
{ "name": "arr_time", "type": "timestamp" },
|
|
85
|
+
{ "name": "dep_delay", "type": "number", "numberType": "integer" },
|
|
86
|
+
{ "name": "arr_delay", "type": "number", "numberType": "integer" },
|
|
87
|
+
{ "name": "taxi_out", "type": "number", "numberType": "integer" },
|
|
88
|
+
{ "name": "taxi_in", "type": "number", "numberType": "integer" },
|
|
89
|
+
{ "name": "distance", "type": "number", "numberType": "integer" },
|
|
90
|
+
{ "name": "cancelled", "type": "string" },
|
|
91
|
+
{ "name": "diverted", "type": "string" },
|
|
92
|
+
{ "name": "id2", "type": "number", "numberType": "integer" }
|
|
93
93
|
],
|
|
94
|
-
as: "flights"
|
|
94
|
+
"as": "flights"
|
|
95
95
|
},
|
|
96
96
|
"malloytest.airports": {
|
|
97
|
-
type: "struct",
|
|
98
|
-
name: "malloytest.airports",
|
|
99
|
-
dialect: "standardsql",
|
|
100
|
-
structSource: {
|
|
101
|
-
type: "table",
|
|
102
|
-
tablePath: "malloytest.airports"
|
|
97
|
+
"type": "struct",
|
|
98
|
+
"name": "malloytest.airports",
|
|
99
|
+
"dialect": "standardsql",
|
|
100
|
+
"structSource": {
|
|
101
|
+
"type": "table",
|
|
102
|
+
"tablePath": "malloytest.airports"
|
|
103
103
|
},
|
|
104
|
-
structRelationship: { type: "basetable", connectionName: "bigquery" },
|
|
105
|
-
fields: [
|
|
106
|
-
{ name: "id", type: "number", numberType: "integer" },
|
|
107
|
-
{ name: "code", type: "string" },
|
|
108
|
-
{ name: "site_number", type: "string" },
|
|
109
|
-
{ name: "fac_type", type: "string" },
|
|
110
|
-
{ name: "fac_use", type: "string" },
|
|
111
|
-
{ name: "faa_region", type: "string" },
|
|
112
|
-
{ name: "faa_dist", type: "string" },
|
|
113
|
-
{ name: "city", type: "string" },
|
|
114
|
-
{ name: "county", type: "string" },
|
|
115
|
-
{ name: "state", type: "string" },
|
|
116
|
-
{ name: "full_name", type: "string" },
|
|
117
|
-
{ name: "own_type", type: "string" },
|
|
118
|
-
{ name: "longitude", type: "number", numberType: "float" },
|
|
119
|
-
{ name: "latitude", type: "number", numberType: "float" },
|
|
120
|
-
{ name: "elevation", type: "number", numberType: "integer" },
|
|
121
|
-
{ name: "aero_cht", type: "string" },
|
|
122
|
-
{ name: "cbd_dist", type: "number", numberType: "integer" },
|
|
123
|
-
{ name: "cbd_dir", type: "string" },
|
|
124
|
-
{ name: "act_date", type: "string" },
|
|
125
|
-
{ name: "cert", type: "string" },
|
|
126
|
-
{ name: "fed_agree", type: "string" },
|
|
127
|
-
{ name: "cust_intl", type: "string" },
|
|
128
|
-
{ name: "c_ldg_rts", type: "string" },
|
|
129
|
-
{ name: "joint_use", type: "string" },
|
|
130
|
-
{ name: "mil_rts", type: "string" },
|
|
131
|
-
{ name: "cntl_twr", type: "string" },
|
|
132
|
-
{ name: "major", type: "string" }
|
|
104
|
+
"structRelationship": { "type": "basetable", "connectionName": "bigquery" },
|
|
105
|
+
"fields": [
|
|
106
|
+
{ "name": "id", "type": "number", "numberType": "integer" },
|
|
107
|
+
{ "name": "code", "type": "string" },
|
|
108
|
+
{ "name": "site_number", "type": "string" },
|
|
109
|
+
{ "name": "fac_type", "type": "string" },
|
|
110
|
+
{ "name": "fac_use", "type": "string" },
|
|
111
|
+
{ "name": "faa_region", "type": "string" },
|
|
112
|
+
{ "name": "faa_dist", "type": "string" },
|
|
113
|
+
{ "name": "city", "type": "string" },
|
|
114
|
+
{ "name": "county", "type": "string" },
|
|
115
|
+
{ "name": "state", "type": "string" },
|
|
116
|
+
{ "name": "full_name", "type": "string" },
|
|
117
|
+
{ "name": "own_type", "type": "string" },
|
|
118
|
+
{ "name": "longitude", "type": "number", "numberType": "float" },
|
|
119
|
+
{ "name": "latitude", "type": "number", "numberType": "float" },
|
|
120
|
+
{ "name": "elevation", "type": "number", "numberType": "integer" },
|
|
121
|
+
{ "name": "aero_cht", "type": "string" },
|
|
122
|
+
{ "name": "cbd_dist", "type": "number", "numberType": "integer" },
|
|
123
|
+
{ "name": "cbd_dir", "type": "string" },
|
|
124
|
+
{ "name": "act_date", "type": "string" },
|
|
125
|
+
{ "name": "cert", "type": "string" },
|
|
126
|
+
{ "name": "fed_agree", "type": "string" },
|
|
127
|
+
{ "name": "cust_intl", "type": "string" },
|
|
128
|
+
{ "name": "c_ldg_rts", "type": "string" },
|
|
129
|
+
{ "name": "joint_use", "type": "string" },
|
|
130
|
+
{ "name": "mil_rts", "type": "string" },
|
|
131
|
+
{ "name": "cntl_twr", "type": "string" },
|
|
132
|
+
{ "name": "major", "type": "string" }
|
|
133
133
|
],
|
|
134
|
-
as: "airports"
|
|
135
|
-
}
|
|
134
|
+
"as": "airports"
|
|
135
|
+
}
|
|
136
136
|
};
|
|
137
137
|
exports.aTableDef = mockSchema.aTable;
|
|
138
138
|
/**
|
|
@@ -153,7 +153,7 @@ class TestRoot extends ast_1.MalloyElement {
|
|
|
153
153
|
const struct = this.modelDef.contents[name];
|
|
154
154
|
if (struct.type == "struct") {
|
|
155
155
|
const exported = this.modelDef.exports.includes(name);
|
|
156
|
-
return { entry: struct, exported };
|
|
156
|
+
return { "entry": struct, exported };
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
setEntry(_name, _val) {
|
|
@@ -175,50 +175,50 @@ class TestTranslator extends parse_malloy_1.MalloyTranslator {
|
|
|
175
175
|
* }
|
|
176
176
|
*/
|
|
177
177
|
this.internalModel = {
|
|
178
|
-
name: testURI,
|
|
179
|
-
exports: [],
|
|
180
|
-
contents: {
|
|
181
|
-
a: { ...exports.aTableDef, primaryKey: "astr", as: "a" },
|
|
182
|
-
b: { ...exports.aTableDef, primaryKey: "astr", as: "b" },
|
|
183
|
-
ab: {
|
|
178
|
+
"name": testURI,
|
|
179
|
+
"exports": [],
|
|
180
|
+
"contents": {
|
|
181
|
+
"a": { ...exports.aTableDef, "primaryKey": "astr", "as": "a" },
|
|
182
|
+
"b": { ...exports.aTableDef, "primaryKey": "astr", "as": "b" },
|
|
183
|
+
"ab": {
|
|
184
184
|
...exports.aTableDef,
|
|
185
|
-
as: "ab",
|
|
186
|
-
primaryKey: "astr",
|
|
187
|
-
fields: [
|
|
185
|
+
"as": "ab",
|
|
186
|
+
"primaryKey": "astr",
|
|
187
|
+
"fields": [
|
|
188
188
|
...exports.aTableDef.fields,
|
|
189
189
|
{
|
|
190
190
|
...exports.aTableDef,
|
|
191
|
-
as: "b",
|
|
192
|
-
structRelationship: {
|
|
193
|
-
type: "one",
|
|
194
|
-
onExpression: [
|
|
195
|
-
{ type: "field", path: "astr" },
|
|
191
|
+
"as": "b",
|
|
192
|
+
"structRelationship": {
|
|
193
|
+
"type": "one",
|
|
194
|
+
"onExpression": [
|
|
195
|
+
{ "type": "field", "path": "astr" },
|
|
196
196
|
"=",
|
|
197
|
-
{ type: "field", path: "b.astr" }
|
|
198
|
-
]
|
|
199
|
-
}
|
|
197
|
+
{ "type": "field", "path": "b.astr" }
|
|
198
|
+
]
|
|
199
|
+
}
|
|
200
200
|
},
|
|
201
201
|
{
|
|
202
|
-
type: "number",
|
|
203
|
-
name: "acount",
|
|
204
|
-
numberType: "integer",
|
|
205
|
-
expressionType: "aggregate",
|
|
206
|
-
e: ["COUNT()"],
|
|
207
|
-
code: "count()"
|
|
202
|
+
"type": "number",
|
|
203
|
+
"name": "acount",
|
|
204
|
+
"numberType": "integer",
|
|
205
|
+
"expressionType": "aggregate",
|
|
206
|
+
"e": ["COUNT()"],
|
|
207
|
+
"code": "count()"
|
|
208
208
|
},
|
|
209
209
|
{
|
|
210
|
-
type: "turtle",
|
|
211
|
-
name: "aturtle",
|
|
212
|
-
pipeline: [
|
|
210
|
+
"type": "turtle",
|
|
211
|
+
"name": "aturtle",
|
|
212
|
+
"pipeline": [
|
|
213
213
|
{
|
|
214
|
-
type: "reduce",
|
|
215
|
-
fields: ["astr", "acount"]
|
|
216
|
-
}
|
|
217
|
-
]
|
|
218
|
-
}
|
|
219
|
-
]
|
|
220
|
-
}
|
|
221
|
-
}
|
|
214
|
+
"type": "reduce",
|
|
215
|
+
"fields": ["astr", "acount"]
|
|
216
|
+
}
|
|
217
|
+
]
|
|
218
|
+
}
|
|
219
|
+
]
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
222
|
};
|
|
223
223
|
this.grammarRule = rootRule;
|
|
224
224
|
this.importZone.define(testURI, source);
|
|
@@ -246,22 +246,22 @@ class TestTranslator extends parse_malloy_1.MalloyTranslator {
|
|
|
246
246
|
if (whatImports) {
|
|
247
247
|
mysterious = false;
|
|
248
248
|
this.logger.log({
|
|
249
|
-
at: this.defaultLocation(),
|
|
250
|
-
message: `Missing imports: ${whatImports.join(",")}
|
|
249
|
+
"at": this.defaultLocation(),
|
|
250
|
+
"message": `Missing imports: ${whatImports.join(",")}`
|
|
251
251
|
});
|
|
252
252
|
}
|
|
253
253
|
const needThese = this.schemaZone.getUndefined();
|
|
254
254
|
if (needThese) {
|
|
255
255
|
mysterious = false;
|
|
256
256
|
this.logger.log({
|
|
257
|
-
at: this.defaultLocation(),
|
|
258
|
-
message: `Missing schema: ${needThese.join(",")}
|
|
257
|
+
"at": this.defaultLocation(),
|
|
258
|
+
"message": `Missing schema: ${needThese.join(",")}`
|
|
259
259
|
});
|
|
260
260
|
}
|
|
261
261
|
if (mysterious) {
|
|
262
262
|
this.logger.log({
|
|
263
|
-
at: this.defaultLocation(),
|
|
264
|
-
message: "mysterious translation failure"
|
|
263
|
+
"at": this.defaultLocation(),
|
|
264
|
+
"message": "mysterious translation failure"
|
|
265
265
|
});
|
|
266
266
|
}
|
|
267
267
|
}
|
|
@@ -320,19 +320,19 @@ function markSource(unmarked, ...marked) {
|
|
|
320
320
|
code += unmarked[index];
|
|
321
321
|
const lines = code.split("\n");
|
|
322
322
|
const start = {
|
|
323
|
-
line: lines.length - 1,
|
|
324
|
-
character: lines[lines.length - 1].length
|
|
323
|
+
"line": lines.length - 1,
|
|
324
|
+
"character": lines[lines.length - 1].length
|
|
325
325
|
};
|
|
326
326
|
const bitLines = mark.split("\n");
|
|
327
327
|
const location = {
|
|
328
|
-
url: testURI,
|
|
329
|
-
range: {
|
|
328
|
+
"url": testURI,
|
|
329
|
+
"range": {
|
|
330
330
|
start,
|
|
331
|
-
end: {
|
|
332
|
-
line: start.line + bitLines.length - 1,
|
|
333
|
-
character: bitLines.length === 1 ? start.character + mark.length : mark.length
|
|
334
|
-
}
|
|
335
|
-
}
|
|
331
|
+
"end": {
|
|
332
|
+
"line": start.line + bitLines.length - 1,
|
|
333
|
+
"character": bitLines.length === 1 ? start.character + mark.length : mark.length
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
336
|
};
|
|
337
337
|
locations.push(location);
|
|
338
338
|
code += mark;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ModelDef, Query, SQLBlockSource, SQLBlockStructDef } from "../model/malloy_types";
|
|
2
2
|
import { MalloyElement } from "./ast";
|
|
3
3
|
import { LogMessage } from "./parse-log";
|
|
4
4
|
import { DocumentSymbol } from "./parse-tree-walkers/document-symbol-walker";
|
package/dist/lang/zone.js
CHANGED
|
@@ -47,9 +47,9 @@ class Zone {
|
|
|
47
47
|
if (zst.firstReference || !this.location[str]) {
|
|
48
48
|
return zst;
|
|
49
49
|
}
|
|
50
|
-
return { ...zst, firstReference: this.location[str] };
|
|
50
|
+
return { ...zst, "firstReference": this.location[str] };
|
|
51
51
|
}
|
|
52
|
-
return { status: "error", message: "import reference failure" };
|
|
52
|
+
return { "status": "error", "message": "import reference failure" };
|
|
53
53
|
}
|
|
54
54
|
/**
|
|
55
55
|
* Add a symbol and it's definition to the symbol table.
|
|
@@ -57,7 +57,7 @@ class Zone {
|
|
|
57
57
|
* @param val
|
|
58
58
|
*/
|
|
59
59
|
define(str, val) {
|
|
60
|
-
this.zone.set(str, { status: "present", value: val });
|
|
60
|
+
this.zone.set(str, { "status": "present", "value": val });
|
|
61
61
|
}
|
|
62
62
|
/**
|
|
63
63
|
* Add a symbol to the symbol table.
|
|
@@ -67,7 +67,7 @@ class Zone {
|
|
|
67
67
|
reference(str, loc) {
|
|
68
68
|
const zst = this.zone.get(str);
|
|
69
69
|
if ((zst === null || zst === void 0 ? void 0 : zst.status) == undefined) {
|
|
70
|
-
this.zone.set(str, { status: "reference", firstReference: loc });
|
|
70
|
+
this.zone.set(str, { "status": "reference", "firstReference": loc });
|
|
71
71
|
this.location[str] = loc;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
@@ -98,7 +98,7 @@ class Zone {
|
|
|
98
98
|
}
|
|
99
99
|
if (errorData) {
|
|
100
100
|
for (const [errorKey, errorMessage] of Object.entries(errorData)) {
|
|
101
|
-
this.zone.set(errorKey, { status: "error", message: errorMessage });
|
|
101
|
+
this.zone.set(errorKey, { "status": "error", "message": errorMessage });
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
}
|
package/dist/malloy.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { RunSQLOptions } from "./run_sql_options";
|
|
3
|
-
import {
|
|
3
|
+
import { DocumentCompletion as DocumentCompletionDefinition, DocumentHighlight as DocumentHighlightDefinition, DocumentSymbol as DocumentSymbolDefinition, LogMessage, MalloyTranslator } from "./lang";
|
|
4
4
|
import { DocumentHelpContext } from "./lang/parse-tree-walkers/document-help-context-walker";
|
|
5
|
-
import { CompiledQuery, FieldBooleanDef, FieldDateDef, FieldNumberDef, FieldStringDef, FieldTimestampDef, FieldTypeDef, FilterExpression,
|
|
6
|
-
import { LookupConnection, ModelString, ModelURL, QueryString, QueryURL, URLReader
|
|
5
|
+
import { CompiledQuery, DocumentReference, FieldBooleanDef, FieldDateDef, FieldJSONDef, FieldNumberDef, FieldStringDef, FieldTimestampDef, FieldTypeDef, FilterExpression, Query as InternalQuery, ModelDef, DocumentPosition as ModelDocumentPosition, NamedQuery, QueryData, QueryDataRow, QueryResult, SQLBlock, SQLBlockStructDef, SearchIndexResult, SearchValueMapResult, StructDef, TurtleDef } from "./model";
|
|
6
|
+
import { Connection, InfoConnection, LookupConnection, ModelString, ModelURL, QueryString, QueryURL, URLReader } from "./runtime_types";
|
|
7
7
|
export interface Loggable {
|
|
8
8
|
debug: (message?: any, ...optionalParams: any[]) => void;
|
|
9
9
|
info: (message?: any, ...optionalParams: any[]) => void;
|
|
@@ -23,7 +23,7 @@ export declare class Malloy {
|
|
|
23
23
|
* @param urlReader Object capable of fetching URL contents.
|
|
24
24
|
* @returns A (promise of a) `Parse` result.
|
|
25
25
|
*/
|
|
26
|
-
static parse({ url, urlReader
|
|
26
|
+
static parse({ url, urlReader }: {
|
|
27
27
|
url: URL;
|
|
28
28
|
urlReader: URLReader;
|
|
29
29
|
}): Promise<Parse>;
|
|
@@ -47,7 +47,7 @@ export declare class Malloy {
|
|
|
47
47
|
* @param model A compiled model to build upon (optional).
|
|
48
48
|
* @returns A (promise of a) compiled `Model`.
|
|
49
49
|
*/
|
|
50
|
-
static compile({ urlReader, connections, parse, model
|
|
50
|
+
static compile({ urlReader, connections, parse, model }: {
|
|
51
51
|
urlReader: URLReader;
|
|
52
52
|
connections: LookupConnection<InfoConnection>;
|
|
53
53
|
parse: Parse;
|