@malloydata/malloy 0.0.225-dev250111002123 → 0.0.225-dev250113203344
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/dialect/dialect.d.ts +1 -1
- package/dist/dialect/dialect.js +2 -1
- package/dist/dialect/mysql/mysql.d.ts +1 -1
- package/dist/dialect/mysql/mysql.js +2 -2
- package/dist/lang/ast/expressions/expr-not.js +6 -0
- package/dist/lang/ast/expressions/expr-null.d.ts +19 -1
- package/dist/lang/ast/expressions/expr-null.js +49 -1
- package/dist/lang/ast/statements/import-statement.js +2 -1
- package/dist/lang/ast/types/document-compile-result.d.ts +1 -3
- package/dist/lang/ast/types/expression-def.js +11 -35
- package/dist/lang/ast/types/malloy-element.d.ts +1 -3
- package/dist/lang/ast/types/malloy-element.js +11 -26
- package/dist/lang/index.d.ts +1 -1
- package/dist/lang/index.js +2 -1
- package/dist/lang/lib/Malloy/MalloyParser.d.ts +53 -29
- package/dist/lang/lib/Malloy/MalloyParser.js +1881 -1728
- package/dist/lang/lib/Malloy/MalloyParserListener.d.ts +27 -5
- package/dist/lang/lib/Malloy/MalloyParserVisitor.d.ts +17 -3
- package/dist/lang/malloy-to-ast.d.ts +3 -1
- package/dist/lang/malloy-to-ast.js +33 -21
- package/dist/lang/parse-malloy.d.ts +21 -6
- package/dist/lang/parse-malloy.js +86 -24
- package/dist/lang/test/annotation.spec.js +5 -5
- package/dist/lang/test/expressions.spec.js +23 -25
- package/dist/lang/test/imports.spec.js +29 -1
- package/dist/lang/test/parameters.spec.js +1 -1
- package/dist/lang/test/parse-expects.js +1 -1
- package/dist/lang/test/pretranslate.spec.d.ts +1 -0
- package/dist/lang/test/pretranslate.spec.js +80 -0
- package/dist/lang/test/query.spec.js +6 -6
- package/dist/lang/test/sql-block.spec.js +3 -3
- package/dist/lang/test/test-translator.js +9 -9
- package/dist/lang/translate-response.d.ts +2 -6
- package/dist/malloy.d.ts +1 -2
- package/dist/malloy.js +16 -11
- package/dist/model/malloy_types.d.ts +5 -0
- package/package.json +1 -1
|
@@ -62,9 +62,9 @@ export declare abstract class Dialect {
|
|
|
62
62
|
supportsCountApprox: boolean;
|
|
63
63
|
supportsHyperLogLog: boolean;
|
|
64
64
|
supportsFullJoin: boolean;
|
|
65
|
-
nativeBoolean: boolean;
|
|
66
65
|
nestedArrays: boolean;
|
|
67
66
|
compoundObjectInSchema: boolean;
|
|
67
|
+
booleanAsNumbers: boolean;
|
|
68
68
|
abstract getDialectFunctionOverrides(): {
|
|
69
69
|
[name: string]: DialectFunctionOverloadDef[];
|
|
70
70
|
};
|
package/dist/dialect/dialect.js
CHANGED
|
@@ -85,11 +85,12 @@ class Dialect {
|
|
|
85
85
|
this.supportsHyperLogLog = false;
|
|
86
86
|
// MYSQL doesn't have full join, maybe others.
|
|
87
87
|
this.supportsFullJoin = true;
|
|
88
|
-
this.nativeBoolean = true;
|
|
89
88
|
// Can have arrays of arrays
|
|
90
89
|
this.nestedArrays = true;
|
|
91
90
|
// An array or record will reveal type of contents on schema read
|
|
92
91
|
this.compoundObjectInSchema = true;
|
|
92
|
+
// No true boolean type, e.g. true=1 and false=0, set this to true
|
|
93
|
+
this.booleanAsNumbers = false;
|
|
93
94
|
}
|
|
94
95
|
sqlFinalStage(_lastStageName, _fields) {
|
|
95
96
|
throw new Error('Dialect has no final Stage but called Anyway');
|
|
@@ -22,13 +22,13 @@ export declare class MySQLDialect extends Dialect {
|
|
|
22
22
|
supportsQualify: boolean;
|
|
23
23
|
supportsNesting: boolean;
|
|
24
24
|
experimental: boolean;
|
|
25
|
-
nativeBoolean: boolean;
|
|
26
25
|
supportsFullJoin: boolean;
|
|
27
26
|
supportsPipelinesInViews: boolean;
|
|
28
27
|
readsNestedData: boolean;
|
|
29
28
|
supportsComplexFilteredSources: boolean;
|
|
30
29
|
supportsArraysInData: boolean;
|
|
31
30
|
compoundObjectInSchema: boolean;
|
|
31
|
+
booleanAsNumbers: boolean;
|
|
32
32
|
malloyTypeToSQLType(malloyType: AtomicTypeDef): string;
|
|
33
33
|
sqlTypeToMalloyType(sqlType: string): LeafAtomicTypeDef;
|
|
34
34
|
quoteTablePath(tablePath: string): string;
|
|
@@ -80,7 +80,7 @@ class MySQLDialect extends dialect_1.Dialect {
|
|
|
80
80
|
this.defaultDecimalType = 'DECIMAL';
|
|
81
81
|
this.udfPrefix = 'ms_temp.__udf';
|
|
82
82
|
this.hasFinalStage = false;
|
|
83
|
-
// TODO: this may not be enough for
|
|
83
|
+
// TODO: this may not be enough for larger casts.
|
|
84
84
|
this.stringTypeName = 'VARCHAR(255)';
|
|
85
85
|
this.divisionIsInteger = true;
|
|
86
86
|
this.supportsSumDistinctFunction = true;
|
|
@@ -94,13 +94,13 @@ class MySQLDialect extends dialect_1.Dialect {
|
|
|
94
94
|
this.supportsQualify = false;
|
|
95
95
|
this.supportsNesting = true;
|
|
96
96
|
this.experimental = false;
|
|
97
|
-
this.nativeBoolean = false;
|
|
98
97
|
this.supportsFullJoin = false;
|
|
99
98
|
this.supportsPipelinesInViews = false;
|
|
100
99
|
this.readsNestedData = false;
|
|
101
100
|
this.supportsComplexFilteredSources = false;
|
|
102
101
|
this.supportsArraysInData = false;
|
|
103
102
|
this.compoundObjectInSchema = false;
|
|
103
|
+
this.booleanAsNumbers = true;
|
|
104
104
|
}
|
|
105
105
|
malloyTypeToSQLType(malloyType) {
|
|
106
106
|
switch (malloyType.type) {
|
|
@@ -55,7 +55,13 @@ class ExprNot extends unary_1.Unary {
|
|
|
55
55
|
this.legalChildTypes = [TDU.boolT, TDU.nullT];
|
|
56
56
|
}
|
|
57
57
|
getExpression(fs) {
|
|
58
|
+
var _a;
|
|
58
59
|
const notThis = this.expr.getExpression(fs);
|
|
60
|
+
if ((_a = fs.dialectObj()) === null || _a === void 0 ? void 0 : _a.booleanAsNumbers) {
|
|
61
|
+
if (this.legalChildTypes.find(t => t.type === 'number') === undefined) {
|
|
62
|
+
this.legalChildTypes.push(TDU.numberT);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
59
65
|
const doNot = this.typeCheck(this.expr, notThis);
|
|
60
66
|
return {
|
|
61
67
|
...notThis,
|
|
@@ -1,6 +1,24 @@
|
|
|
1
|
+
import { BinaryMalloyOperator, FieldSpace } from '..';
|
|
1
2
|
import { ExprValue } from '../types/expr-value';
|
|
2
|
-
import { ExpressionDef } from '../types/expression-def';
|
|
3
|
+
import { ATNodeType, ExpressionDef } from '../types/expression-def';
|
|
3
4
|
export declare class ExprNULL extends ExpressionDef {
|
|
4
5
|
elementType: string;
|
|
5
6
|
getExpression(): ExprValue;
|
|
7
|
+
apply(fs: FieldSpace, op: BinaryMalloyOperator, left: ExpressionDef): ExprValue;
|
|
8
|
+
}
|
|
9
|
+
export declare class PartialIsNull extends ExpressionDef {
|
|
10
|
+
readonly op: '=' | '!=';
|
|
11
|
+
elementType: string;
|
|
12
|
+
constructor(op: '=' | '!=');
|
|
13
|
+
apply(fs: FieldSpace, op: string, expr: ExpressionDef): ExprValue;
|
|
14
|
+
requestExpression(_fs: FieldSpace): ExprValue | undefined;
|
|
15
|
+
getExpression(_fs: FieldSpace): ExprValue;
|
|
16
|
+
atNodeType(): ATNodeType;
|
|
17
|
+
}
|
|
18
|
+
export declare class ExprIsNull extends ExpressionDef {
|
|
19
|
+
readonly expr: ExpressionDef;
|
|
20
|
+
readonly op: '=' | '!=';
|
|
21
|
+
elementType: string;
|
|
22
|
+
constructor(expr: ExpressionDef, op: '=' | '!=');
|
|
23
|
+
getExpression(fs: FieldSpace): ExprValue;
|
|
6
24
|
}
|
|
@@ -22,9 +22,18 @@
|
|
|
22
22
|
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
23
23
|
*/
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.ExprNULL = void 0;
|
|
25
|
+
exports.ExprIsNull = exports.PartialIsNull = exports.ExprNULL = void 0;
|
|
26
26
|
const expr_value_1 = require("../types/expr-value");
|
|
27
27
|
const expression_def_1 = require("../types/expression-def");
|
|
28
|
+
function doIsNull(fs, op, expr) {
|
|
29
|
+
const nullCmp = expr.getExpression(fs);
|
|
30
|
+
nullCmp.type = 'boolean';
|
|
31
|
+
nullCmp.value = {
|
|
32
|
+
node: op === '=' ? 'is-null' : 'is-not-null',
|
|
33
|
+
e: nullCmp.value,
|
|
34
|
+
};
|
|
35
|
+
return nullCmp;
|
|
36
|
+
}
|
|
28
37
|
class ExprNULL extends expression_def_1.ExpressionDef {
|
|
29
38
|
constructor() {
|
|
30
39
|
super(...arguments);
|
|
@@ -36,6 +45,45 @@ class ExprNULL extends expression_def_1.ExpressionDef {
|
|
|
36
45
|
value: { node: 'null' },
|
|
37
46
|
});
|
|
38
47
|
}
|
|
48
|
+
apply(fs, op, left) {
|
|
49
|
+
if (op === '!=' || op === '=') {
|
|
50
|
+
return doIsNull(fs, op, left);
|
|
51
|
+
}
|
|
52
|
+
return super.apply(fs, op, left, true);
|
|
53
|
+
}
|
|
39
54
|
}
|
|
40
55
|
exports.ExprNULL = ExprNULL;
|
|
56
|
+
class PartialIsNull extends expression_def_1.ExpressionDef {
|
|
57
|
+
constructor(op) {
|
|
58
|
+
super();
|
|
59
|
+
this.op = op;
|
|
60
|
+
this.elementType = '<=> NULL';
|
|
61
|
+
}
|
|
62
|
+
apply(fs, op, expr) {
|
|
63
|
+
return doIsNull(fs, this.op, expr);
|
|
64
|
+
}
|
|
65
|
+
requestExpression(_fs) {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
getExpression(_fs) {
|
|
69
|
+
return this.loggedErrorExpr('partial-as-value', 'Partial null check does not have a value');
|
|
70
|
+
}
|
|
71
|
+
atNodeType() {
|
|
72
|
+
return expression_def_1.ATNodeType.Partial;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.PartialIsNull = PartialIsNull;
|
|
76
|
+
class ExprIsNull extends expression_def_1.ExpressionDef {
|
|
77
|
+
constructor(expr, op) {
|
|
78
|
+
super();
|
|
79
|
+
this.expr = expr;
|
|
80
|
+
this.op = op;
|
|
81
|
+
this.elementType = 'is null';
|
|
82
|
+
this.has({ expr });
|
|
83
|
+
}
|
|
84
|
+
getExpression(fs) {
|
|
85
|
+
return doIsNull(fs, this.op, this.expr);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.ExprIsNull = ExprIsNull;
|
|
41
89
|
//# sourceMappingURL=expr-null.js.map
|
|
@@ -82,8 +82,9 @@ class ImportStatement extends malloy_element_1.ListOf {
|
|
|
82
82
|
this.logError('no-translator-for-import', 'Cannot import without translation context');
|
|
83
83
|
}
|
|
84
84
|
else if (this.fullURL) {
|
|
85
|
+
const pretranslated = trans.root.pretranslatedModels.get(this.fullURL);
|
|
85
86
|
const src = trans.root.importZone.getEntry(this.fullURL);
|
|
86
|
-
if (src.status === 'present') {
|
|
87
|
+
if (pretranslated || src.status === 'present') {
|
|
87
88
|
const importable = trans.getChildExports(this.fullURL);
|
|
88
89
|
if (this.notEmpty()) {
|
|
89
90
|
// just import the named objects
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { ModelDef
|
|
1
|
+
import { ModelDef } from '../../../model/malloy_types';
|
|
2
2
|
import { ModelDataRequest } from '../../translate-response';
|
|
3
3
|
export interface DocumentCompileResult {
|
|
4
4
|
modelDef: ModelDef;
|
|
5
|
-
queryList: Query[];
|
|
6
|
-
sqlBlocks: SQLSourceDef[];
|
|
7
5
|
needs: ModelDataRequest;
|
|
8
6
|
}
|
|
@@ -251,22 +251,7 @@ function regexEqual(left, right) {
|
|
|
251
251
|
}
|
|
252
252
|
return undefined;
|
|
253
253
|
}
|
|
254
|
-
function nullCompare(left, op, right) {
|
|
255
|
-
const not = op === '!=' || op === '!~';
|
|
256
|
-
const nullCmp = not ? 'is-not-null' : 'is-null';
|
|
257
|
-
if (left.type === 'null' || right.type === 'null') {
|
|
258
|
-
if (left.type !== 'null') {
|
|
259
|
-
return { node: nullCmp, e: left.value };
|
|
260
|
-
}
|
|
261
|
-
if (right.type !== 'null') {
|
|
262
|
-
return { node: nullCmp, e: right.value };
|
|
263
|
-
}
|
|
264
|
-
return { node: not ? 'false' : 'true' };
|
|
265
|
-
}
|
|
266
|
-
return undefined;
|
|
267
|
-
}
|
|
268
254
|
function equality(fs, left, op, right) {
|
|
269
|
-
var _a;
|
|
270
255
|
const lhs = left.getExpression(fs);
|
|
271
256
|
const rhs = right.getExpression(fs);
|
|
272
257
|
const node = (0, binary_operators_1.getExprNode)(op);
|
|
@@ -289,29 +274,20 @@ function equality(fs, left, op, right) {
|
|
|
289
274
|
node,
|
|
290
275
|
kids: { left: lhs.value, right: rhs.value },
|
|
291
276
|
};
|
|
292
|
-
if (lhs.type !== 'error' &&
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
regexCmp = { node: 'not', e: { ...regexCmp } };
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
else {
|
|
304
|
-
throw new TypeMismatch("Incompatible types for match('~') operator");
|
|
305
|
-
}
|
|
306
|
-
value = regexCmp;
|
|
277
|
+
if (lhs.type !== 'error' &&
|
|
278
|
+
rhs.type !== 'error' &&
|
|
279
|
+
(op === '~' || op === '!~')) {
|
|
280
|
+
if (lhs.type !== 'string' || rhs.type !== 'string') {
|
|
281
|
+
let regexCmp = regexEqual(lhs, rhs);
|
|
282
|
+
if (regexCmp) {
|
|
283
|
+
if (op[0] === '!') {
|
|
284
|
+
regexCmp = { node: 'not', e: { ...regexCmp } };
|
|
307
285
|
}
|
|
308
|
-
break;
|
|
309
286
|
}
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
value = (_a = nullCompare(lhs, op, rhs)) !== null && _a !== void 0 ? _a : value;
|
|
313
|
-
break;
|
|
287
|
+
else {
|
|
288
|
+
throw new TypeMismatch("Incompatible types for match('~') operator");
|
|
314
289
|
}
|
|
290
|
+
value = regexCmp;
|
|
315
291
|
}
|
|
316
292
|
}
|
|
317
293
|
return (0, expr_value_1.computedExprValue)({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Annotation, DocumentLocation, DocumentReference, ModelDef, ModelAnnotation, NamedModelObject, Query,
|
|
1
|
+
import { Annotation, DocumentLocation, DocumentReference, ModelDef, ModelAnnotation, NamedModelObject, Query, StructDef } from '../../../model/malloy_types';
|
|
2
2
|
import { Tag } from '../../../tags';
|
|
3
3
|
import { LogMessageOptions, MessageLogger, MessageParameterType, MessageCode } from '../../parse-log';
|
|
4
4
|
import { MalloyTranslation } from '../../parse-malloy';
|
|
@@ -121,7 +121,6 @@ export declare class Document extends MalloyElement implements NameSpace {
|
|
|
121
121
|
globalNameSpace: NameSpace;
|
|
122
122
|
documentModel: Record<string, ModelEntry>;
|
|
123
123
|
queryList: Query[];
|
|
124
|
-
sqlBlocks: SQLSourceDef[];
|
|
125
124
|
statements: DocStatementList;
|
|
126
125
|
didInitModel: boolean;
|
|
127
126
|
annotation: Annotation;
|
|
@@ -134,7 +133,6 @@ export declare class Document extends MalloyElement implements NameSpace {
|
|
|
134
133
|
hasAnnotation(): boolean;
|
|
135
134
|
currentModelAnnotation(): ModelAnnotation | undefined;
|
|
136
135
|
modelDef(): ModelDef;
|
|
137
|
-
defineSQL(sql: SQLSourceDef, name?: string): boolean;
|
|
138
136
|
getEntry(str: string): ModelEntry;
|
|
139
137
|
setEntry(str: string, ent: ModelEntry): void;
|
|
140
138
|
/**
|
|
@@ -430,7 +430,6 @@ class Document extends MalloyElement {
|
|
|
430
430
|
this.globalNameSpace = new global_name_space_1.GlobalNameSpace();
|
|
431
431
|
this.documentModel = {};
|
|
432
432
|
this.queryList = [];
|
|
433
|
-
this.sqlBlocks = [];
|
|
434
433
|
this.didInitModel = false;
|
|
435
434
|
this.annotation = {};
|
|
436
435
|
this.experiments = new tags_1.Tag({});
|
|
@@ -445,7 +444,6 @@ class Document extends MalloyElement {
|
|
|
445
444
|
}
|
|
446
445
|
this.documentModel = {};
|
|
447
446
|
this.queryList = [];
|
|
448
|
-
this.sqlBlocks = [];
|
|
449
447
|
if (extendingModelDef) {
|
|
450
448
|
if (extendingModelDef.annotation) {
|
|
451
449
|
this.annotation.inherits = extendingModelDef.annotation;
|
|
@@ -471,11 +469,6 @@ class Document extends MalloyElement {
|
|
|
471
469
|
q.modelAnnotation = modelDef.annotation;
|
|
472
470
|
}
|
|
473
471
|
}
|
|
474
|
-
for (const q of this.sqlBlocks) {
|
|
475
|
-
if (q.modelAnnotation === undefined && modelDef.annotation) {
|
|
476
|
-
q.modelAnnotation = modelDef.annotation;
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
472
|
}
|
|
480
473
|
if (modelDef.annotation) {
|
|
481
474
|
for (const sd of this.modelAnnotationTodoList) {
|
|
@@ -483,9 +476,10 @@ class Document extends MalloyElement {
|
|
|
483
476
|
}
|
|
484
477
|
}
|
|
485
478
|
const ret = {
|
|
486
|
-
modelDef
|
|
487
|
-
|
|
488
|
-
|
|
479
|
+
modelDef: {
|
|
480
|
+
...modelDef,
|
|
481
|
+
queryList: this.queryList,
|
|
482
|
+
},
|
|
489
483
|
needs,
|
|
490
484
|
};
|
|
491
485
|
return ret;
|
|
@@ -505,7 +499,13 @@ class Document extends MalloyElement {
|
|
|
505
499
|
}
|
|
506
500
|
}
|
|
507
501
|
modelDef() {
|
|
508
|
-
const def = {
|
|
502
|
+
const def = {
|
|
503
|
+
name: '',
|
|
504
|
+
exports: [],
|
|
505
|
+
contents: {},
|
|
506
|
+
queryList: [],
|
|
507
|
+
dependencies: {},
|
|
508
|
+
};
|
|
509
509
|
if (this.hasAnnotation()) {
|
|
510
510
|
def.annotation = this.currentModelAnnotation();
|
|
511
511
|
}
|
|
@@ -524,21 +524,6 @@ class Document extends MalloyElement {
|
|
|
524
524
|
}
|
|
525
525
|
return def;
|
|
526
526
|
}
|
|
527
|
-
defineSQL(sql, name) {
|
|
528
|
-
const ret = {
|
|
529
|
-
...sql,
|
|
530
|
-
as: `$${this.sqlBlocks.length}`,
|
|
531
|
-
};
|
|
532
|
-
if (name) {
|
|
533
|
-
if (this.getEntry(name)) {
|
|
534
|
-
return false;
|
|
535
|
-
}
|
|
536
|
-
ret.as = name;
|
|
537
|
-
this.setEntry(name, { entry: ret });
|
|
538
|
-
}
|
|
539
|
-
this.sqlBlocks.push(ret);
|
|
540
|
-
return true;
|
|
541
|
-
}
|
|
542
527
|
getEntry(str) {
|
|
543
528
|
var _a;
|
|
544
529
|
return (_a = this.globalNameSpace.getEntry(str)) !== null && _a !== void 0 ? _a : this.documentModel[str];
|
package/dist/lang/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { MalloyTranslator } from './parse-malloy';
|
|
1
|
+
export { MalloyTranslator, MalloyTranslation } from './parse-malloy';
|
|
2
2
|
export type { UpdateData, SchemaData, URLData, SQLSources as SQLBlockData, } from './parse-malloy';
|
|
3
3
|
export type { TranslateResponse } from './translate-response';
|
|
4
4
|
export { exploreQueryWalkerBuilder } from './parse-tree-walkers/explore-query-walker';
|
package/dist/lang/index.js
CHANGED
|
@@ -22,9 +22,10 @@
|
|
|
22
22
|
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
23
23
|
*/
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.exploreQueryWalkerBuilder = exports.MalloyTranslator = void 0;
|
|
25
|
+
exports.exploreQueryWalkerBuilder = exports.MalloyTranslation = exports.MalloyTranslator = void 0;
|
|
26
26
|
var parse_malloy_1 = require("./parse-malloy");
|
|
27
27
|
Object.defineProperty(exports, "MalloyTranslator", { enumerable: true, get: function () { return parse_malloy_1.MalloyTranslator; } });
|
|
28
|
+
Object.defineProperty(exports, "MalloyTranslation", { enumerable: true, get: function () { return parse_malloy_1.MalloyTranslation; } });
|
|
28
29
|
var explore_query_walker_1 = require("./parse-tree-walkers/explore-query-walker");
|
|
29
30
|
Object.defineProperty(exports, "exploreQueryWalkerBuilder", { enumerable: true, get: function () { return explore_query_walker_1.exploreQueryWalkerBuilder; } });
|
|
30
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -296,32 +296,34 @@ export declare class MalloyParser extends Parser {
|
|
|
296
296
|
static readonly RULE_ungroup = 121;
|
|
297
297
|
static readonly RULE_malloyOrSQLType = 122;
|
|
298
298
|
static readonly RULE_fieldExpr = 123;
|
|
299
|
-
static readonly
|
|
300
|
-
static readonly
|
|
301
|
-
static readonly
|
|
302
|
-
static readonly
|
|
303
|
-
static readonly
|
|
304
|
-
static readonly
|
|
305
|
-
static readonly
|
|
306
|
-
static readonly
|
|
307
|
-
static readonly
|
|
308
|
-
static readonly
|
|
309
|
-
static readonly
|
|
310
|
-
static readonly
|
|
311
|
-
static readonly
|
|
312
|
-
static readonly
|
|
313
|
-
static readonly
|
|
314
|
-
static readonly
|
|
315
|
-
static readonly
|
|
316
|
-
static readonly
|
|
317
|
-
static readonly
|
|
318
|
-
static readonly
|
|
319
|
-
static readonly
|
|
320
|
-
static readonly
|
|
321
|
-
static readonly
|
|
322
|
-
static readonly
|
|
323
|
-
static readonly
|
|
324
|
-
static readonly
|
|
299
|
+
static readonly RULE_partialCompare = 124;
|
|
300
|
+
static readonly RULE_partialTest = 125;
|
|
301
|
+
static readonly RULE_partialAllowedFieldExpr = 126;
|
|
302
|
+
static readonly RULE_fieldExprList = 127;
|
|
303
|
+
static readonly RULE_pickStatement = 128;
|
|
304
|
+
static readonly RULE_pick = 129;
|
|
305
|
+
static readonly RULE_caseStatement = 130;
|
|
306
|
+
static readonly RULE_caseWhen = 131;
|
|
307
|
+
static readonly RULE_recordKey = 132;
|
|
308
|
+
static readonly RULE_recordElement = 133;
|
|
309
|
+
static readonly RULE_argumentList = 134;
|
|
310
|
+
static readonly RULE_fieldNameList = 135;
|
|
311
|
+
static readonly RULE_fieldCollection = 136;
|
|
312
|
+
static readonly RULE_collectionWildCard = 137;
|
|
313
|
+
static readonly RULE_starQualified = 138;
|
|
314
|
+
static readonly RULE_taggedRef = 139;
|
|
315
|
+
static readonly RULE_refExpr = 140;
|
|
316
|
+
static readonly RULE_collectionMember = 141;
|
|
317
|
+
static readonly RULE_fieldPath = 142;
|
|
318
|
+
static readonly RULE_joinName = 143;
|
|
319
|
+
static readonly RULE_fieldName = 144;
|
|
320
|
+
static readonly RULE_sqlExploreNameRef = 145;
|
|
321
|
+
static readonly RULE_nameSQLBlock = 146;
|
|
322
|
+
static readonly RULE_connectionName = 147;
|
|
323
|
+
static readonly RULE_debugExpr = 148;
|
|
324
|
+
static readonly RULE_debugPartial = 149;
|
|
325
|
+
static readonly RULE_experimentalStatementForTesting = 150;
|
|
326
|
+
static readonly RULE_closeCurly = 151;
|
|
325
327
|
static readonly ruleNames: string[];
|
|
326
328
|
private static readonly _LITERAL_NAMES;
|
|
327
329
|
private static readonly _SYMBOLIC_NAMES;
|
|
@@ -459,6 +461,8 @@ export declare class MalloyParser extends Parser {
|
|
|
459
461
|
malloyOrSQLType(): MalloyOrSQLTypeContext;
|
|
460
462
|
fieldExpr(): FieldExprContext;
|
|
461
463
|
fieldExpr(_p: number): FieldExprContext;
|
|
464
|
+
partialCompare(): PartialCompareContext;
|
|
465
|
+
partialTest(): PartialTestContext;
|
|
462
466
|
partialAllowedFieldExpr(): PartialAllowedFieldExprContext;
|
|
463
467
|
fieldExprList(): FieldExprListContext;
|
|
464
468
|
pickStatement(): PickStatementContext;
|
|
@@ -2330,7 +2334,7 @@ export declare class ExprWarnLikeContext extends FieldExprContext {
|
|
|
2330
2334
|
exitRule(listener: MalloyParserListener): void;
|
|
2331
2335
|
accept<Result>(visitor: MalloyParserVisitor<Result>): Result;
|
|
2332
2336
|
}
|
|
2333
|
-
export declare class
|
|
2337
|
+
export declare class ExprNullCheckContext extends FieldExprContext {
|
|
2334
2338
|
fieldExpr(): FieldExprContext;
|
|
2335
2339
|
IS(): TerminalNode;
|
|
2336
2340
|
NULL(): TerminalNode;
|
|
@@ -2483,11 +2487,31 @@ export declare class ExprUngroupContext extends FieldExprContext {
|
|
|
2483
2487
|
exitRule(listener: MalloyParserListener): void;
|
|
2484
2488
|
accept<Result>(visitor: MalloyParserVisitor<Result>): Result;
|
|
2485
2489
|
}
|
|
2490
|
+
export declare class PartialCompareContext extends ParserRuleContext {
|
|
2491
|
+
compareOp(): CompareOpContext;
|
|
2492
|
+
fieldExpr(): FieldExprContext;
|
|
2493
|
+
constructor(parent: ParserRuleContext | undefined, invokingState: number);
|
|
2494
|
+
get ruleIndex(): number;
|
|
2495
|
+
enterRule(listener: MalloyParserListener): void;
|
|
2496
|
+
exitRule(listener: MalloyParserListener): void;
|
|
2497
|
+
accept<Result>(visitor: MalloyParserVisitor<Result>): Result;
|
|
2498
|
+
}
|
|
2499
|
+
export declare class PartialTestContext extends ParserRuleContext {
|
|
2500
|
+
partialCompare(): PartialCompareContext | undefined;
|
|
2501
|
+
IS(): TerminalNode | undefined;
|
|
2502
|
+
NULL(): TerminalNode | undefined;
|
|
2503
|
+
NOT(): TerminalNode | undefined;
|
|
2504
|
+
constructor(parent: ParserRuleContext | undefined, invokingState: number);
|
|
2505
|
+
get ruleIndex(): number;
|
|
2506
|
+
enterRule(listener: MalloyParserListener): void;
|
|
2507
|
+
exitRule(listener: MalloyParserListener): void;
|
|
2508
|
+
accept<Result>(visitor: MalloyParserVisitor<Result>): Result;
|
|
2509
|
+
}
|
|
2486
2510
|
export declare class PartialAllowedFieldExprContext extends ParserRuleContext {
|
|
2511
|
+
partialTest(): PartialTestContext | undefined;
|
|
2487
2512
|
OPAREN(): TerminalNode | undefined;
|
|
2488
|
-
fieldExpr(): FieldExprContext;
|
|
2489
2513
|
CPAREN(): TerminalNode | undefined;
|
|
2490
|
-
|
|
2514
|
+
fieldExpr(): FieldExprContext | undefined;
|
|
2491
2515
|
constructor(parent: ParserRuleContext | undefined, invokingState: number);
|
|
2492
2516
|
get ruleIndex(): number;
|
|
2493
2517
|
enterRule(listener: MalloyParserListener): void;
|