@malloydata/malloy 0.0.242-dev250313002313 → 0.0.242-dev250313045635
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 +7 -3
- package/dist/dialect/dialect.js +25 -12
- package/dist/lang/ast/expressions/expr-filter-expr.d.ts +11 -0
- package/dist/lang/ast/expressions/expr-filter-expr.js +61 -0
- package/dist/lang/ast/index.d.ts +1 -0
- package/dist/lang/ast/index.js +1 -0
- package/dist/lang/lib/Malloy/MalloyLexer.d.ts +64 -58
- package/dist/lang/lib/Malloy/MalloyLexer.js +1216 -1158
- package/dist/lang/lib/Malloy/MalloyParser.d.ts +109 -61
- package/dist/lang/lib/Malloy/MalloyParser.js +2059 -1734
- package/dist/lang/lib/Malloy/MalloyParserListener.d.ts +46 -0
- package/dist/lang/lib/Malloy/MalloyParserVisitor.d.ts +29 -0
- package/dist/lang/malloy-to-ast.d.ts +2 -0
- package/dist/lang/malloy-to-ast.js +19 -1
- package/dist/lang/parse-log.d.ts +2 -0
- package/dist/lang/test/expr-to-str.d.ts +9 -0
- package/dist/lang/test/expr-to-str.js +124 -0
- package/dist/lang/test/parse-expects.js +2 -91
- package/dist/model/filter_compilers.d.ts +5 -0
- package/dist/model/filter_compilers.js +160 -0
- package/dist/model/malloy_query.js +12 -4
- package/dist/model/malloy_types.d.ts +12 -2
- package/dist/model/malloy_types.js +6 -2
- package/package.json +4 -3
|
@@ -25,7 +25,7 @@ export type AnyExpr = ExprE | ExprOptionalE | ExprWithKids | ExprLeaf;
|
|
|
25
25
|
export declare function exprHasKids(e: AnyExpr): e is ExprWithKids;
|
|
26
26
|
export declare function exprHasE(e: AnyExpr): e is ExprE;
|
|
27
27
|
export declare function exprIsLeaf(e: AnyExpr): boolean;
|
|
28
|
-
export type Expr = BinaryExpr | UnaryExpr | FunctionCallNode | OutputFieldNode | FilterCondition | FilteredExpr | AggregateExpr | EmptyExpr | UngroupNode | FunctionParameterNode | SpreadExpr | AggregateOrderByNode | AggregateLimitNode | FieldnameNode | SourceReferenceNode | ParameterNode | NowNode | MeasureTimeExpr | TimeExtractExpr | TimeDeltaExpr | TimeTruncExpr | TimeLiteralNode | TypecastExpr | RegexMatchExpr | RegexLiteralNode | StringLiteralNode | NumberLiteralNode | BooleanLiteralNode | RecordLiteralNode | ArrayLiteralNode | FunctionOrderBy | GenericSQLExpr | NullNode | CaseExpr | InCompareExpr | CompositeFieldExpr | ErrorNode;
|
|
28
|
+
export type Expr = BinaryExpr | UnaryExpr | FunctionCallNode | OutputFieldNode | FilterCondition | FilteredExpr | AggregateExpr | EmptyExpr | UngroupNode | FunctionParameterNode | SpreadExpr | AggregateOrderByNode | AggregateLimitNode | FieldnameNode | SourceReferenceNode | ParameterNode | NowNode | MeasureTimeExpr | TimeExtractExpr | TimeDeltaExpr | TimeTruncExpr | TimeLiteralNode | TypecastExpr | RegexMatchExpr | RegexLiteralNode | FilterMatchExpr | StringLiteralNode | NumberLiteralNode | BooleanLiteralNode | RecordLiteralNode | ArrayLiteralNode | FunctionOrderBy | GenericSQLExpr | NullNode | CaseExpr | InCompareExpr | CompositeFieldExpr | ErrorNode;
|
|
29
29
|
export type BinaryOperator = '+' | '-' | '*' | '%' | '/' | 'and' | 'or' | '=' | '!=' | '>' | '<' | '>=' | '<=' | 'coalesce' | 'like' | '!like';
|
|
30
30
|
export interface BinaryExpr extends ExprWithKids {
|
|
31
31
|
node: BinaryOperator;
|
|
@@ -170,6 +170,16 @@ export interface RegexMatchExpr extends ExprWithKids {
|
|
|
170
170
|
regex: Expr;
|
|
171
171
|
};
|
|
172
172
|
}
|
|
173
|
+
export type FilterExprType = 'string' | 'number' | 'boolean' | 'date' | 'timestamp';
|
|
174
|
+
export declare function isFilterExprType(s: string): s is FilterExprType;
|
|
175
|
+
export interface FilterMatchExpr extends ExprE {
|
|
176
|
+
node: 'filterMatch';
|
|
177
|
+
dataType: FilterExprType;
|
|
178
|
+
notMatch?: true;
|
|
179
|
+
filter: {
|
|
180
|
+
operator: string;
|
|
181
|
+
};
|
|
182
|
+
}
|
|
173
183
|
export interface TimeLiteralNode extends ExprLeaf {
|
|
174
184
|
node: 'timeLiteral';
|
|
175
185
|
literal: string;
|
|
@@ -627,7 +637,7 @@ export type SourceDef = TableSourceDef | SQLSourceDef | QuerySourceDef | QueryRe
|
|
|
627
637
|
/** Is this the "FROM" table of a query tree */
|
|
628
638
|
export declare function isBaseTable(def: StructDef): def is SourceDef;
|
|
629
639
|
export type StructDef = SourceDef | RecordDef | ArrayDef;
|
|
630
|
-
export type NonAtomicType = Exclude<JoinElementType, 'array' | 'record'> | 'turtle' | 'null' | 'duration' | 'regular expression';
|
|
640
|
+
export type NonAtomicType = Exclude<JoinElementType, 'array' | 'record'> | 'turtle' | 'null' | 'duration' | 'regular expression' | 'filter expression';
|
|
631
641
|
export interface NonAtomicTypeDef {
|
|
632
642
|
type: NonAtomicType;
|
|
633
643
|
}
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
24
24
|
*/
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
27
|
-
exports.TD = exports.isValueDate = exports.isValueTimestamp = exports.isValueBoolean = exports.isValueNumber = exports.isValueString = exports.isAtomic = exports.isTurtle = exports.getIdentifier = exports.isLeafAtomic = exports.mergeEvalSpaces = exports.isLiteral = exports.isBaseTable = void 0;
|
|
26
|
+
exports.sourceBase = exports.isSegmentSQL = exports.isIndexSegment = exports.isRawSegment = exports.isSamplingEnable = exports.isSamplingPercent = exports.isSamplingRows = exports.isQuerySegment = exports.isProjectSegment = exports.isPartialSegment = exports.isReduceSegment = exports.structHasErrors = exports.segmentHasErrors = exports.refIsStructDef = exports.ValueType = exports.isExtractUnit = exports.isTimestampUnit = exports.isDateUnit = exports.isJoinedSource = exports.isJoined = exports.isJoinable = exports.isMatrixOperation = exports.isScalarArray = exports.isRepeatedRecord = exports.isRepeatedRecordFunctionParam = exports.mkArrayDef = exports.mkFieldDef = exports.fieldIsIntrinsic = exports.isCastType = exports.canOrderBy = exports.isAtomicFieldType = exports.isTemporalType = exports.hasExpression = exports.maxOfExpressionTypes = exports.maxExpressionType = exports.isExpressionTypeLEQ = exports.expressionIsAnalytic = exports.expressionIsCalculation = exports.expressionInvolvesAggregate = exports.expressionIsUngroupedAggregate = exports.expressionIsAggregate = exports.expressionIsScalar = exports.paramHasValue = exports.isFilterExprType = exports.isRawCast = exports.mkTemporal = exports.isAsymmetricExpr = exports.exprIsLeaf = exports.exprHasE = exports.exprHasKids = void 0;
|
|
27
|
+
exports.TD = exports.isValueDate = exports.isValueTimestamp = exports.isValueBoolean = exports.isValueNumber = exports.isValueString = exports.isAtomic = exports.isTurtle = exports.getIdentifier = exports.isLeafAtomic = exports.mergeEvalSpaces = exports.isLiteral = exports.isBaseTable = exports.isSourceDef = void 0;
|
|
28
28
|
function exprHasKids(e) {
|
|
29
29
|
return 'kids' in e;
|
|
30
30
|
}
|
|
@@ -69,6 +69,10 @@ function isRawCast(te) {
|
|
|
69
69
|
return 'dstSQLType' in te;
|
|
70
70
|
}
|
|
71
71
|
exports.isRawCast = isRawCast;
|
|
72
|
+
function isFilterExprType(s) {
|
|
73
|
+
return ['string', 'number', 'boolean', 'date', 'timestamp'].includes(s);
|
|
74
|
+
}
|
|
75
|
+
exports.isFilterExprType = isFilterExprType;
|
|
72
76
|
function paramHasValue(p) {
|
|
73
77
|
return p.value !== null;
|
|
74
78
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@malloydata/malloy",
|
|
3
|
-
"version": "0.0.242-
|
|
3
|
+
"version": "0.0.242-dev250313045635",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dist/index.js",
|
|
@@ -41,8 +41,9 @@
|
|
|
41
41
|
"generate-version-file": "VERSION=$(npm pkg get version --workspaces=false | tr -d \\\")\necho \"// generated with 'generate-version-file' script; do not edit manually\\nexport const MALLOY_VERSION = '$VERSION';\" > src/version.ts"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@malloydata/malloy-
|
|
45
|
-
"@malloydata/malloy-
|
|
44
|
+
"@malloydata/malloy-filter": "^0.0.242-dev250313045635",
|
|
45
|
+
"@malloydata/malloy-interfaces": "^0.0.242-dev250313045635",
|
|
46
|
+
"@malloydata/malloy-tag": "^0.0.242-dev250313045635",
|
|
46
47
|
"antlr4ts": "^0.5.0-alpha.4",
|
|
47
48
|
"assert": "^2.0.0",
|
|
48
49
|
"jest-diff": "^29.6.2",
|