@malloydata/malloy 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +12 -11
  2. package/dist/dialect/duckdb.d.ts +1 -1
  3. package/dist/dialect/postgres.d.ts +1 -1
  4. package/dist/index.d.ts +4 -4
  5. package/dist/lang/ast/ast-expr.d.ts +0 -1
  6. package/dist/lang/field-space.d.ts +9 -7
  7. package/dist/lang/lib/Malloy/MalloyLexer.d.ts +108 -106
  8. package/dist/lang/lib/Malloy/MalloyLexer.js +1019 -1006
  9. package/dist/lang/lib/Malloy/MalloyParser.d.ts +581 -590
  10. package/dist/lang/lib/Malloy/MalloyParser.js +1141 -1202
  11. package/dist/lang/lib/Malloy/MalloyParserListener.d.ts +2015 -0
  12. package/dist/lang/lib/Malloy/MalloyParserListener.js +4 -0
  13. package/dist/lang/lib/Malloy/MalloyParserVisitor.d.ts +1269 -0
  14. package/dist/lang/lib/Malloy/MalloyParserVisitor.js +4 -0
  15. package/dist/lang/parse-to-ast.d.ts +3 -4
  16. package/dist/lang/parse-to-ast.js +1 -1
  17. package/dist/lang/parse-tree-walkers/document-completion-walker.js +2 -0
  18. package/dist/lang/parse-tree-walkers/explore-query-walker.d.ts +2 -2
  19. package/dist/malloy.d.ts +1 -1
  20. package/dist/md5.d.ts +1 -0
  21. package/dist/md5.js +30 -0
  22. package/dist/model/malloy_types.d.ts +3 -1
  23. package/package.json +9 -14
  24. package/dist/connection_utils.js +0 -56
  25. package/dist/dialect/dialect-map.d.ts +0 -3
  26. package/dist/dialect/dialect-map.js +0 -33
  27. package/dist/dialect/dialect.js +0 -77
  28. package/dist/dialect/dialect_map.js +0 -35
  29. package/dist/dialect/duckdb.js +0 -349
  30. package/dist/dialect/index.js +0 -27
  31. package/dist/dialect/postgres.js +0 -308
  32. package/dist/dialect/standardsql.js +0 -361
  33. package/dist/index.js +0 -47
  34. package/dist/lang/ast/apply-expr.js +0 -231
  35. package/dist/lang/ast/ast-expr.js +0 -1051
  36. package/dist/lang/ast/ast-main.js +0 -2086
  37. package/dist/lang/ast/ast-time-expr.js +0 -549
  38. package/dist/lang/ast/ast-types.js +0 -215
  39. package/dist/lang/ast/index.js +0 -34
  40. package/dist/lang/ast/time-utils.js +0 -94
  41. package/dist/lang/field-space.js +0 -629
  42. package/dist/lang/field-utils.js +0 -33
  43. package/dist/lang/index.js +0 -22
  44. package/dist/lang/parse-log.js +0 -41
  45. package/dist/lang/reference-list.js +0 -80
  46. package/dist/lang/space-field.js +0 -346
  47. package/dist/lang/test/document-help-context-walker.spec.js +0 -45
  48. package/dist/lang/test/document-symbol-walker.spec.js +0 -100
  49. package/dist/lang/test/field-symbols.spec.js +0 -172
  50. package/dist/lang/test/parse.spec.js +0 -1936
  51. package/dist/lang/test/test-translator.js +0 -334
  52. package/dist/lang/zone.js +0 -97
  53. package/dist/malloy.js +0 -2354
  54. package/dist/model/index.js +0 -34
  55. package/dist/model/malloy-query.d.ts +0 -313
  56. package/dist/model/malloy-query.js +0 -2603
  57. package/dist/model/malloy-types.d.ts +0 -404
  58. package/dist/model/malloy-types.js +0 -242
  59. package/dist/model/malloy_query.js +0 -2996
  60. package/dist/model/malloy_types.js +0 -283
  61. package/dist/model/sql-block.d.ts +0 -11
  62. package/dist/model/sql-block.js +0 -38
  63. package/dist/model/sql_block.js +0 -41
  64. package/dist/model/utils.js +0 -84
  65. package/dist/runtime-types.d.ts +0 -116
  66. package/dist/runtime-types.js +0 -40
  67. package/dist/runtime_types.js +0 -15
@@ -1,34 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright 2021 Google LLC
4
- *
5
- * This program is free software; you can redistribute it and/or
6
- * modify it under the terms of the GNU General Public License
7
- * version 2 as published by the Free Software Foundation.
8
- *
9
- * This program is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- */
14
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
- if (k2 === undefined) k2 = k;
16
- var desc = Object.getOwnPropertyDescriptor(m, k);
17
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
18
- desc = { enumerable: true, get: function() { return m[k]; } };
19
- }
20
- Object.defineProperty(o, k2, desc);
21
- }) : (function(o, m, k, k2) {
22
- if (k2 === undefined) k2 = k;
23
- o[k2] = m[k];
24
- }));
25
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.QueryModel = exports.Segment = void 0;
30
- __exportStar(require("./malloy_types"), exports);
31
- var malloy_query_1 = require("./malloy_query");
32
- Object.defineProperty(exports, "Segment", { enumerable: true, get: function () { return malloy_query_1.Segment; } });
33
- Object.defineProperty(exports, "QueryModel", { enumerable: true, get: function () { return malloy_query_1.QueryModel; } });
34
- //# sourceMappingURL=index.js.map
@@ -1,313 +0,0 @@
1
- import { Dialect, DialectFieldList } from "../dialect";
2
- import { FieldDef, FieldRef, FilterExpression, ModelDef, Query, QueryFieldDef, StructDef, StructRef, OrderBy, ResultMetadataDef, Expr, FieldFragment, AggregateFragment, CompiledQuery, FilterFragment, PipeSegment, TurtleDef, QuerySegment, Filtered, ParameterFragment, Parameter, JoinRelationship } from "./malloy-types";
3
- import { AndChain } from "./utils";
4
- import { ResultStructMetadataDef } from ".";
5
- interface TurtleDefPlus extends TurtleDef, Filtered {
6
- }
7
- declare class StageWriter {
8
- withs: string[];
9
- udfs: string[];
10
- pdts: string[];
11
- stagePrefix: string;
12
- parent: StageWriter | undefined;
13
- constructor(parent: StageWriter | undefined);
14
- getName(id: number): string;
15
- root(): StageWriter;
16
- addStage(sql: string): string;
17
- addUDF(stageWriter: StageWriter, dialect: Dialect): string;
18
- addPDT(baseName: string, dialect: Dialect): string;
19
- combineStages(includeLastStage: boolean): {
20
- sql: string;
21
- lastStageName: string | undefined;
22
- };
23
- /** emit the SQL for all the stages. */
24
- generateSQLStages(): string;
25
- }
26
- declare type QuerySomething = QueryField | QueryStruct | QueryTurtle;
27
- declare class GenerateState {
28
- whereSQL?: string;
29
- applyValue?: string;
30
- withWhere(s?: string): GenerateState;
31
- withApply(s: string): GenerateState;
32
- }
33
- declare abstract class QueryNode {
34
- fieldDef: FieldDef;
35
- constructor(fieldDef: FieldDef);
36
- getIdentifier(): string;
37
- getChildByName(_name: string): QuerySomething | undefined;
38
- }
39
- declare class QueryField extends QueryNode {
40
- fieldDef: FieldDef;
41
- parent: QueryStruct;
42
- constructor(fieldDef: FieldDef, parent: QueryStruct);
43
- mayNeedUniqueKey(): boolean;
44
- getJoinableParent(): QueryStruct;
45
- caseGroup(groupSets: number[], s: string): string;
46
- getFullOutputName(): string;
47
- generateFieldFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: FieldFragment, state: GenerateState): string;
48
- generateParameterFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: ParameterFragment, state: GenerateState): string;
49
- generateFilterFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: FilterFragment, state: GenerateState): string;
50
- generateDimFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateFragment, state: GenerateState): string;
51
- generateDistinctKeyIfNecessary(resultSet: FieldInstanceResult, context: QueryStruct, structPath: string | undefined): string | undefined;
52
- generateSumFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateFragment, state: GenerateState): string;
53
- generateSymmetricFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateFragment, state: GenerateState): string;
54
- generateAvgFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateFragment, state: GenerateState): string;
55
- generateCountFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateFragment, state: GenerateState): string;
56
- generateExpressionFromExpr(resultSet: FieldInstanceResult, context: QueryStruct, e: Expr, state?: GenerateState): string;
57
- generateExpression(resultSet: FieldInstanceResult): string;
58
- }
59
- declare class QueryAtomicField extends QueryField {
60
- includeInWildcard(): boolean;
61
- isAggregate(): boolean;
62
- getFilterList(): FilterExpression[];
63
- }
64
- declare class QueryFieldBoolean extends QueryAtomicField {
65
- }
66
- declare class QueryFieldStruct extends QueryAtomicField {
67
- primaryKey: string;
68
- constructor(fieldDef: FieldDef, parent: QueryStruct, primaryKey: string);
69
- getName(): string;
70
- getAsJoinedStructDef(foreignKeyName: string): StructDef;
71
- }
72
- declare type FieldUsage = {
73
- type: "result";
74
- resultIndex: number;
75
- } | {
76
- type: "where";
77
- } | {
78
- type: "dependant";
79
- };
80
- declare type FieldInstanceType = "field" | "query";
81
- interface FieldInstance {
82
- type: FieldInstanceType;
83
- groupSet: number;
84
- root(): FieldInstanceResultRoot;
85
- }
86
- declare class FieldInstanceField implements FieldInstance {
87
- type: FieldInstanceType;
88
- f: QueryField;
89
- fieldUsage: FieldUsage;
90
- groupSet: number;
91
- parent: FieldInstanceResult;
92
- constructor(f: QueryField, fieldUsage: FieldUsage, parent: FieldInstanceResult);
93
- root(): FieldInstanceResultRoot;
94
- }
95
- declare type RepeatedResultType = "nested" | "inline_all_numbers" | "inline";
96
- declare class FieldInstanceResult implements FieldInstance {
97
- type: FieldInstanceType;
98
- allFields: Map<string, FieldInstance>;
99
- groupSet: number;
100
- depth: number;
101
- parent: FieldInstanceResult | undefined;
102
- childGroups: number[];
103
- turtleDef: TurtleDef;
104
- firstSegment: PipeSegment;
105
- hasHaving: boolean;
106
- constructor(turtleDef: TurtleDef, parent: FieldInstanceResult | undefined);
107
- addField(as: string, field: QueryField, usage: FieldUsage): void;
108
- add(name: string, f: FieldInstance): void;
109
- hasField(name: string): boolean;
110
- getField(name: string): FieldInstanceField;
111
- getFieldByNumber(index: number): {
112
- name: string;
113
- fif: FieldInstanceField;
114
- };
115
- computeGroups(nextGroupSetNumber: number, depth: number): {
116
- nextGroupSetNumber: number;
117
- maxDepth: number;
118
- children: number[];
119
- isComplex: boolean;
120
- };
121
- fields(fn?: undefined | ((field: FieldInstanceField) => boolean)): FieldInstanceField[];
122
- fieldNames(fn: undefined | ((field: FieldInstanceField) => boolean)): string[];
123
- getRepeatedResultType(): RepeatedResultType;
124
- structs(): FieldInstanceResult[];
125
- selectStructs(result: FieldInstanceResult[], fn: (result: FieldInstanceResult) => boolean): FieldInstanceResult[];
126
- calculateDefaultOrderBy(): OrderBy[];
127
- addStructToJoin(qs: QueryStruct, query: QueryQuery, mayNeedUniqueKey: boolean, joinStack: string[]): void;
128
- findJoins(query: QueryQuery): void;
129
- root(): FieldInstanceResultRoot;
130
- }
131
- declare class FieldInstanceResultRoot extends FieldInstanceResult {
132
- joins: Map<string, JoinInstance>;
133
- havings: AndChain;
134
- constructor(turtleDef: TurtleDef);
135
- root(): FieldInstanceResultRoot;
136
- calculateSymmetricAggregates(): void;
137
- }
138
- declare class JoinInstance {
139
- mayNeedUniqueKey: boolean;
140
- makeUniqueKey: boolean;
141
- leafiest: boolean;
142
- parent: JoinInstance | undefined;
143
- queryStruct: QueryStruct;
144
- joinFilterConditions?: QueryFieldBoolean[];
145
- alias: string;
146
- children: JoinInstance[];
147
- constructor(queryStruct: QueryStruct, alias: string, parent: JoinInstance | undefined);
148
- parentRelationship(): "root" | JoinRelationship;
149
- getDialectFieldList(): DialectFieldList;
150
- }
151
- /** nested query */
152
- declare class QueryTurtle extends QueryField {
153
- }
154
- /**
155
- * Used by the translator to get the output StructDef of a pipe segment
156
- *
157
- * half translated to the new world of types ..
158
- */
159
- export declare class Segment {
160
- static nextStructDef(structDef: StructDef, segment: PipeSegment): StructDef;
161
- }
162
- declare type StageGroupMaping = {
163
- fromGroup: number;
164
- toGroup: number;
165
- };
166
- declare type StageOutputContext = {
167
- sql: string[];
168
- dimensionIndexes: number[];
169
- fieldIndex: number;
170
- groupsAggregated: StageGroupMaping[];
171
- };
172
- /** Query builder object. */
173
- declare class QueryQuery extends QueryField {
174
- fieldDef: TurtleDef;
175
- firstSegment: PipeSegment;
176
- prepared: boolean;
177
- maxDepth: number;
178
- maxGroupSet: number;
179
- rootResult: FieldInstanceResultRoot;
180
- resultStage: string | undefined;
181
- stageWriter: StageWriter | undefined;
182
- constructor(fieldDef: TurtleDef, parent: QueryStruct, stageWriter: StageWriter | undefined);
183
- static makeQuery(fieldDef: TurtleDef, parentStruct: QueryStruct, stageWriter?: StageWriter | undefined): QueryQuery;
184
- getFieldList(): QueryFieldDef[];
185
- expandField(f: QueryFieldDef): {
186
- as: string;
187
- field: QuerySomething;
188
- };
189
- expandDependantField(resultStruct: FieldInstanceResult, fieldRef: FieldRef): void;
190
- expandWildCardStruct(struct: QueryStruct, expandChildren: boolean, filter?: ((qf: QueryNode) => boolean) | undefined): string[];
191
- expandWildCards(fields: QueryFieldDef[], filter?: ((qf: QueryNode) => boolean) | undefined): QueryFieldDef[];
192
- addDependantPath(resultStruct: FieldInstanceResult, context: QueryStruct, path: string, mayNeedUniqueKey: boolean, joinStack: string[]): void;
193
- addDependantExpr(resultStruct: FieldInstanceResult, context: QueryStruct, e: Expr, joinStack: string[]): void;
194
- addDependancies(resultStruct: FieldInstanceResult, field: QueryField): void;
195
- expandFields(resultStruct: FieldInstanceResult): void;
196
- expandFilters(resultStruct: FieldInstanceResult): void;
197
- generateSQLFilters(resultStruct: FieldInstanceResult, which: "where" | "having", filterList?: FilterExpression[] | undefined): AndChain;
198
- prepare(_stageWriter: StageWriter | undefined): void;
199
- getResultMetadata(fi: FieldInstance): ResultStructMetadataDef | ResultMetadataDef | undefined;
200
- /** returns a fields and primary key of a struct for this query */
201
- getResultStructDef(resultStruct?: FieldInstanceResult, isRoot?: boolean): StructDef;
202
- generateSQLJoinBlock(stageWriter: StageWriter, ji: JoinInstance): string;
203
- generateSQLJoins(stageWriter: StageWriter): string;
204
- genereateSQLOrderBy(queryDef: QuerySegment, resultStruct: FieldInstanceResult): string;
205
- generateSimpleSQL(stageWriter: StageWriter): string;
206
- generateStage0Fields(resultSet: FieldInstanceResult, output: StageOutputContext, stageWriter: StageWriter): void;
207
- generateSQLWhereChildren(resultStruct: FieldInstanceResult): AndChain;
208
- generateSQLWhereTurtled(): string;
209
- generateSQLHavingLimit(stageWriter: StageWriter, lastStageName: string): string;
210
- generateSQLStage0(stageWriter: StageWriter): string;
211
- generateDepthNFields(depth: number, resultSet: FieldInstanceResult, output: StageOutputContext, stageWriter: StageWriter): void;
212
- generateSQLDepthN(depth: number, stageWriter: StageWriter, stageName: string): string;
213
- genereateSQLCombineTurtles(stageWriter: StageWriter, stage0Name: string): string;
214
- generateTurtleSQL(resultStruct: FieldInstanceResult, stageWriter: StageWriter): string;
215
- generateTurtlePipelineSQL(fi: FieldInstanceResult, stageWriter: StageWriter): {
216
- structDef: StructDef;
217
- hasPipeline: boolean;
218
- };
219
- generateComplexSQL(stageWriter: StageWriter): string;
220
- generateSQL(stageWriter: StageWriter): string;
221
- toMalloy(): string;
222
- generateSQLFromPipeline(stageWriter: StageWriter): {
223
- lastStageName: string;
224
- outputStruct: StructDef;
225
- };
226
- }
227
- /** Structure object as it is used to build a query */
228
- declare class QueryStruct extends QueryNode {
229
- fieldDef: StructDef;
230
- parent: QueryStruct | undefined;
231
- model: QueryModel;
232
- nameMap: Map<string, QuerySomething>;
233
- pathAliasMap: Map<string, string>;
234
- dialect: Dialect;
235
- connectionName: string;
236
- constructor(fieldDef: StructDef, parent: {
237
- struct: QueryStruct;
238
- } | {
239
- model: QueryModel;
240
- });
241
- parameters(): Record<string, Parameter>;
242
- addFieldsFromFieldList(fields: FieldDef[]): void;
243
- getAliasIdentifier(): string;
244
- getAsQueryField(): QueryFieldStruct;
245
- getIdentifier(): string;
246
- getFullOutputName(): string;
247
- needsSymetricCalculation(resultSet: FieldInstanceResult): boolean;
248
- getJoinableParent(): QueryStruct;
249
- addFieldToNameMap(as: string, n: QuerySomething): void;
250
- /** the the primary key or throw an error. */
251
- getPrimaryKeyField(fieldDef: FieldDef): QueryAtomicField;
252
- /**
253
- * called after all structure has been loaded. Examine this structure to see
254
- * if if it is based on a query and if it is, add the output fields (unless
255
- * they exist) to the structure.
256
- */
257
- resolveQueryFields(): void;
258
- getModel(): QueryModel;
259
- setParent(parent: {
260
- struct: QueryStruct;
261
- } | {
262
- model: QueryModel;
263
- }): void;
264
- /** makes a new queryable field object from a fieldDef */
265
- makeQueryField(field: FieldDef): QueryField;
266
- /**
267
- * return a field if it exists, make one if we are passed a field definition.
268
- */
269
- getOrMakeField(fieldRef: FieldRef): QuerySomething;
270
- /** returns a dimension for the given name or make one. */
271
- getOrMakeDimension(fieldRef: FieldRef): QueryAtomicField;
272
- structSourceSQL(stageWriter: StageWriter): string;
273
- root(): QueryStruct;
274
- primaryKey(): QueryAtomicField | undefined;
275
- /** get the componennts of a field path */
276
- static resolvePath(name: string): string[];
277
- getChildByName(name: string): QuerySomething | undefined;
278
- /** convert a name into a field reference */
279
- getFieldByName(name: string): QuerySomething;
280
- getQueryFieldByName(name: string): QuerySomething;
281
- getDimensionOrMeasureByName(name: string): QueryAtomicField;
282
- /** returns a query object for the given name */
283
- getDimensionByName(name: string): QueryAtomicField;
284
- /** returns a query object for the given name */
285
- getStructByName(name: string): QueryStruct;
286
- getDistinctKey(): QueryAtomicField;
287
- flattenTurtleDef(turtleDef: TurtleDef | TurtleDefPlus): TurtleDef;
288
- }
289
- /** the resulting SQL and the shape of the data at each stage of the pipeline */
290
- interface QueryResults {
291
- lastStageName: string;
292
- stageWriter: StageWriter;
293
- structs: StructDef[];
294
- malloy: string;
295
- connectionName: string;
296
- }
297
- /** start here */
298
- export declare class QueryModel {
299
- dialect: Dialect;
300
- modelDef: ModelDef | undefined;
301
- structs: Map<string, QueryStruct>;
302
- constructor(modelDef: ModelDef | undefined);
303
- loadModelFromDef(modelDef: ModelDef): void;
304
- parseQueryPath(name: string): {
305
- struct: QueryStruct;
306
- queryName: string;
307
- };
308
- getStructByName(name: string): QueryStruct;
309
- getStructFromRef(structRef: StructRef): QueryStruct;
310
- loadQuery(query: Query, stageWriter: StageWriter | undefined, emitFinalStage?: boolean): QueryResults;
311
- compileQuery(query: Query): CompiledQuery;
312
- }
313
- export {};