@malloydata/malloy 0.0.1

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 (104) hide show
  1. package/README.md +39 -0
  2. package/dist/connection_utils.d.ts +1 -0
  3. package/dist/connection_utils.js +56 -0
  4. package/dist/dialect/dialect-map.d.ts +3 -0
  5. package/dist/dialect/dialect-map.js +33 -0
  6. package/dist/dialect/dialect.d.ts +64 -0
  7. package/dist/dialect/dialect.js +64 -0
  8. package/dist/dialect/dialect_map.d.ts +3 -0
  9. package/dist/dialect/dialect_map.js +35 -0
  10. package/dist/dialect/duckdb.d.ts +49 -0
  11. package/dist/dialect/duckdb.js +349 -0
  12. package/dist/dialect/index.d.ts +6 -0
  13. package/dist/dialect/index.js +27 -0
  14. package/dist/dialect/postgres.d.ts +49 -0
  15. package/dist/dialect/postgres.js +308 -0
  16. package/dist/dialect/standardsql.d.ts +46 -0
  17. package/dist/dialect/standardsql.js +361 -0
  18. package/dist/index.d.ts +9 -0
  19. package/dist/index.js +47 -0
  20. package/dist/lang/ast/apply-expr.d.ts +16 -0
  21. package/dist/lang/ast/apply-expr.js +215 -0
  22. package/dist/lang/ast/ast-expr.d.ts +291 -0
  23. package/dist/lang/ast/ast-expr.js +1056 -0
  24. package/dist/lang/ast/ast-main.d.ts +480 -0
  25. package/dist/lang/ast/ast-main.js +2096 -0
  26. package/dist/lang/ast/ast-time-expr.d.ts +109 -0
  27. package/dist/lang/ast/ast-time-expr.js +550 -0
  28. package/dist/lang/ast/ast-types.d.ts +83 -0
  29. package/dist/lang/ast/ast-types.js +215 -0
  30. package/dist/lang/ast/index.d.ts +5 -0
  31. package/dist/lang/ast/index.js +34 -0
  32. package/dist/lang/ast/time-utils.d.ts +8 -0
  33. package/dist/lang/ast/time-utils.js +83 -0
  34. package/dist/lang/field-space.d.ts +157 -0
  35. package/dist/lang/field-space.js +651 -0
  36. package/dist/lang/field-utils.d.ts +5 -0
  37. package/dist/lang/field-utils.js +33 -0
  38. package/dist/lang/index.d.ts +9 -0
  39. package/dist/lang/index.js +22 -0
  40. package/dist/lang/lib/Malloy/MalloyLexer.d.ts +156 -0
  41. package/dist/lang/lib/Malloy/MalloyLexer.js +1163 -0
  42. package/dist/lang/lib/Malloy/MalloyListener.d.ts +2026 -0
  43. package/dist/lang/lib/Malloy/MalloyListener.js +4 -0
  44. package/dist/lang/lib/Malloy/MalloyParser.d.ts +1920 -0
  45. package/dist/lang/lib/Malloy/MalloyParser.js +11790 -0
  46. package/dist/lang/lib/Malloy/MalloyVisitor.d.ts +1276 -0
  47. package/dist/lang/lib/Malloy/MalloyVisitor.js +4 -0
  48. package/dist/lang/parse-log.d.ts +27 -0
  49. package/dist/lang/parse-log.js +41 -0
  50. package/dist/lang/parse-malloy.d.ts +245 -0
  51. package/dist/lang/parse-malloy.js +729 -0
  52. package/dist/lang/parse-to-ast.d.ts +156 -0
  53. package/dist/lang/parse-to-ast.js +945 -0
  54. package/dist/lang/parse-tree-walkers/document-completion-walker.d.ts +10 -0
  55. package/dist/lang/parse-tree-walkers/document-completion-walker.js +136 -0
  56. package/dist/lang/parse-tree-walkers/document-help-context-walker.d.ts +9 -0
  57. package/dist/lang/parse-tree-walkers/document-help-context-walker.js +97 -0
  58. package/dist/lang/parse-tree-walkers/document-highlight-walker.d.ts +83 -0
  59. package/dist/lang/parse-tree-walkers/document-highlight-walker.js +375 -0
  60. package/dist/lang/parse-tree-walkers/document-symbol-walker.d.ts +11 -0
  61. package/dist/lang/parse-tree-walkers/document-symbol-walker.js +172 -0
  62. package/dist/lang/parse-tree-walkers/explore-query-walker.d.ts +34 -0
  63. package/dist/lang/parse-tree-walkers/explore-query-walker.js +64 -0
  64. package/dist/lang/parse-tree-walkers/find-external-references.d.ts +11 -0
  65. package/dist/lang/parse-tree-walkers/find-external-references.js +51 -0
  66. package/dist/lang/reference-list.d.ts +10 -0
  67. package/dist/lang/reference-list.js +80 -0
  68. package/dist/lang/space-field.d.ts +119 -0
  69. package/dist/lang/space-field.js +339 -0
  70. package/dist/lang/test/document-help-context-walker.spec.d.ts +1 -0
  71. package/dist/lang/test/document-help-context-walker.spec.js +45 -0
  72. package/dist/lang/test/document-symbol-walker.spec.d.ts +1 -0
  73. package/dist/lang/test/document-symbol-walker.spec.js +100 -0
  74. package/dist/lang/test/field-symbols.spec.d.ts +1 -0
  75. package/dist/lang/test/field-symbols.spec.js +172 -0
  76. package/dist/lang/test/parse.spec.d.ts +12 -0
  77. package/dist/lang/test/parse.spec.js +1936 -0
  78. package/dist/lang/test/test-translator.d.ts +38 -0
  79. package/dist/lang/test/test-translator.js +334 -0
  80. package/dist/lang/zone.d.ts +57 -0
  81. package/dist/lang/zone.js +97 -0
  82. package/dist/malloy.d.ts +1134 -0
  83. package/dist/malloy.js +2354 -0
  84. package/dist/model/index.d.ts +2 -0
  85. package/dist/model/index.js +34 -0
  86. package/dist/model/malloy-query.d.ts +313 -0
  87. package/dist/model/malloy-query.js +2603 -0
  88. package/dist/model/malloy-types.d.ts +404 -0
  89. package/dist/model/malloy-types.js +242 -0
  90. package/dist/model/malloy_query.d.ts +353 -0
  91. package/dist/model/malloy_query.js +2990 -0
  92. package/dist/model/malloy_types.d.ts +502 -0
  93. package/dist/model/malloy_types.js +283 -0
  94. package/dist/model/sql-block.d.ts +11 -0
  95. package/dist/model/sql-block.js +38 -0
  96. package/dist/model/sql_block.d.ts +11 -0
  97. package/dist/model/sql_block.js +41 -0
  98. package/dist/model/utils.d.ts +21 -0
  99. package/dist/model/utils.js +84 -0
  100. package/dist/runtime-types.d.ts +116 -0
  101. package/dist/runtime-types.js +40 -0
  102. package/dist/runtime_types.d.ts +119 -0
  103. package/dist/runtime_types.js +15 -0
  104. package/package.json +36 -0
@@ -0,0 +1,353 @@
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, DialectFragment, UngroupFragment } from "./malloy_types";
3
+ import { AndChain } from "./utils";
4
+ import { ResultStructMetadataDef, SearchIndexResult } from ".";
5
+ import { Connection } from "..";
6
+ interface TurtleDefPlus extends TurtleDef, Filtered {
7
+ }
8
+ interface OutputPipelinedSQL {
9
+ sqlFieldName: string;
10
+ pipelineSQL: string;
11
+ }
12
+ declare class StageWriter {
13
+ withs: string[];
14
+ udfs: string[];
15
+ pdts: string[];
16
+ stagePrefix: string;
17
+ parent: StageWriter | undefined;
18
+ useCTE: boolean;
19
+ constructor(useCTE: boolean | undefined, parent: StageWriter | undefined);
20
+ getName(id: number): string;
21
+ root(): StageWriter;
22
+ addStage(sql: string): string;
23
+ addUDF(stageWriter: StageWriter, dialect: Dialect, structDef: StructDef): string;
24
+ addPDT(baseName: string, dialect: Dialect): string;
25
+ combineStages(includeLastStage: boolean): {
26
+ sql: string;
27
+ lastStageName: string | undefined;
28
+ };
29
+ /** emit the SQL for all the stages. */
30
+ generateSQLStages(): string;
31
+ generateCoorelatedSubQuery(dialect: Dialect, structDef: StructDef): string;
32
+ }
33
+ declare type QuerySomething = QueryField | QueryStruct | QueryTurtle;
34
+ declare class GenerateState {
35
+ whereSQL?: string;
36
+ applyValue?: string;
37
+ totalGroupSet: number;
38
+ withWhere(s?: string): GenerateState;
39
+ withApply(s: string): GenerateState;
40
+ withTotal(groupSet: number): GenerateState;
41
+ }
42
+ declare abstract class QueryNode {
43
+ fieldDef: FieldDef;
44
+ constructor(fieldDef: FieldDef);
45
+ getIdentifier(): string;
46
+ getChildByName(_name: string): QuerySomething | undefined;
47
+ }
48
+ declare class QueryField extends QueryNode {
49
+ fieldDef: FieldDef;
50
+ parent: QueryStruct;
51
+ constructor(fieldDef: FieldDef, parent: QueryStruct);
52
+ mayNeedUniqueKey(): boolean;
53
+ getJoinableParent(): QueryStruct;
54
+ caseGroup(groupSets: number[], s: string): string;
55
+ getFullOutputName(): string;
56
+ generateFieldFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: FieldFragment, state: GenerateState): string;
57
+ generateParameterFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: ParameterFragment, state: GenerateState): string;
58
+ generateFilterFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: FilterFragment, state: GenerateState): string;
59
+ generateDimFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateFragment, state: GenerateState): string;
60
+ generateUngroupedFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: UngroupFragment, state: GenerateState): string;
61
+ generateDistinctKeyIfNecessary(resultSet: FieldInstanceResult, context: QueryStruct, structPath: string | undefined): string | undefined;
62
+ generateSumFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateFragment, state: GenerateState): string;
63
+ generateSymmetricFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateFragment, state: GenerateState): string;
64
+ generateAvgFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateFragment, state: GenerateState): string;
65
+ generateCountFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateFragment, state: GenerateState): string;
66
+ generateDialect(resultSet: FieldInstanceResult, context: QueryStruct, expr: DialectFragment, state: GenerateState): string;
67
+ generateExpressionFromExpr(resultSet: FieldInstanceResult, context: QueryStruct, e: Expr, state?: GenerateState): string;
68
+ getExpr(): Expr;
69
+ generateExpression(resultSet: FieldInstanceResult): string;
70
+ }
71
+ declare class QueryAtomicField extends QueryField {
72
+ includeInWildcard(): boolean;
73
+ isAggregate(): boolean;
74
+ getFilterList(): FilterExpression[];
75
+ hasExpression(): boolean;
76
+ }
77
+ declare class QueryFieldBoolean extends QueryAtomicField {
78
+ }
79
+ declare class QueryFieldStruct extends QueryAtomicField {
80
+ primaryKey: string;
81
+ constructor(fieldDef: FieldDef, parent: QueryStruct, primaryKey: string);
82
+ getName(): string;
83
+ getAsJoinedStructDef(foreignKeyName: string): StructDef;
84
+ }
85
+ declare type FieldUsage = {
86
+ type: "result";
87
+ resultIndex: number;
88
+ } | {
89
+ type: "where";
90
+ } | {
91
+ type: "dependant";
92
+ };
93
+ declare type FieldInstanceType = "field" | "query";
94
+ interface FieldInstance {
95
+ type: FieldInstanceType;
96
+ root(): FieldInstanceResultRoot;
97
+ }
98
+ declare class FieldInstanceField implements FieldInstance {
99
+ type: FieldInstanceType;
100
+ f: QueryField;
101
+ fieldUsage: FieldUsage;
102
+ additionalGroupSets: number[];
103
+ parent: FieldInstanceResult;
104
+ partitionSQL: string | undefined;
105
+ constructor(f: QueryField, fieldUsage: FieldUsage, parent: FieldInstanceResult);
106
+ root(): FieldInstanceResultRoot;
107
+ getSQL(): string;
108
+ getPartitionSQL(): string;
109
+ }
110
+ declare type RepeatedResultType = "nested" | "inline_all_numbers" | "inline";
111
+ declare type UngroupSet = {
112
+ type: "all" | "exclude";
113
+ fields: string[];
114
+ groupSet: number;
115
+ };
116
+ declare class FieldInstanceResult implements FieldInstance {
117
+ type: FieldInstanceType;
118
+ allFields: Map<string, FieldInstance>;
119
+ groupSet: number;
120
+ depth: number;
121
+ parent: FieldInstanceResult | undefined;
122
+ childGroups: number[];
123
+ turtleDef: TurtleDef;
124
+ firstSegment: PipeSegment;
125
+ hasHaving: boolean;
126
+ ungroupedSets: Map<string, UngroupSet>;
127
+ resultUsesUngrouped: boolean;
128
+ constructor(turtleDef: TurtleDef, parent: FieldInstanceResult | undefined);
129
+ addField(as: string, field: QueryField, usage: FieldUsage): void;
130
+ parentGroupSet(): number;
131
+ add(name: string, f: FieldInstance): void;
132
+ hasField(name: string): boolean;
133
+ getField(name: string): FieldInstanceField;
134
+ getFieldByNumber(index: number): {
135
+ name: string;
136
+ fif: FieldInstanceField;
137
+ };
138
+ computeGroups(nextGroupSetNumber: number, depth: number): {
139
+ nextGroupSetNumber: number;
140
+ maxDepth: number;
141
+ children: number[];
142
+ isComplex: boolean;
143
+ };
144
+ fields(fn?: undefined | ((field: FieldInstanceField) => boolean)): FieldInstanceField[];
145
+ fieldNames(fn: undefined | ((field: FieldInstanceField) => boolean)): string[];
146
+ getRepeatedResultType(): RepeatedResultType;
147
+ structs(): FieldInstanceResult[];
148
+ selectStructs(result: FieldInstanceResult[], fn: (result: FieldInstanceResult) => boolean): FieldInstanceResult[];
149
+ calculateDefaultOrderBy(): OrderBy[];
150
+ addStructToJoin(qs: QueryStruct, query: QueryQuery, mayNeedUniqueKey: boolean, joinStack: string[]): void;
151
+ findJoins(query: QueryQuery): void;
152
+ root(): FieldInstanceResultRoot;
153
+ getUngroupPartitions(ungroupSet: UngroupSet | undefined): FieldInstanceField[];
154
+ assignFieldsToGroups(): void;
155
+ }
156
+ declare class FieldInstanceResultRoot extends FieldInstanceResult {
157
+ joins: Map<string, JoinInstance>;
158
+ havings: AndChain;
159
+ isComplexQuery: boolean;
160
+ queryUsesUngrouped: boolean;
161
+ computeOnlyGroups: number[];
162
+ elimatedComputeGroups: boolean;
163
+ constructor(turtleDef: TurtleDef);
164
+ root(): FieldInstanceResultRoot;
165
+ eliminateComputeGroupsSQL(): string;
166
+ calculateSymmetricAggregates(): void;
167
+ }
168
+ declare class JoinInstance {
169
+ mayNeedUniqueKey: boolean;
170
+ makeUniqueKey: boolean;
171
+ leafiest: boolean;
172
+ parent: JoinInstance | undefined;
173
+ queryStruct: QueryStruct;
174
+ joinFilterConditions?: QueryFieldBoolean[];
175
+ alias: string;
176
+ children: JoinInstance[];
177
+ constructor(queryStruct: QueryStruct, alias: string, parent: JoinInstance | undefined);
178
+ parentRelationship(): "root" | JoinRelationship;
179
+ getDialectFieldList(): DialectFieldList;
180
+ }
181
+ /** nested query */
182
+ declare class QueryTurtle extends QueryField {
183
+ }
184
+ /**
185
+ * Used by the translator to get the output StructDef of a pipe segment
186
+ *
187
+ * half translated to the new world of types ..
188
+ */
189
+ export declare class Segment {
190
+ static nextStructDef(structDef: StructDef, segment: PipeSegment): StructDef;
191
+ }
192
+ declare type StageGroupMaping = {
193
+ fromGroup: number;
194
+ toGroup: number;
195
+ };
196
+ declare type StageOutputContext = {
197
+ sql: string[];
198
+ lateralJoinSQLExpressions: string[];
199
+ dimensionIndexes: number[];
200
+ fieldIndex: number;
201
+ groupsAggregated: StageGroupMaping[];
202
+ outputPipelinedSQL: OutputPipelinedSQL[];
203
+ };
204
+ /** Query builder object. */
205
+ declare class QueryQuery extends QueryField {
206
+ fieldDef: TurtleDef;
207
+ firstSegment: PipeSegment;
208
+ prepared: boolean;
209
+ maxDepth: number;
210
+ maxGroupSet: number;
211
+ rootResult: FieldInstanceResultRoot;
212
+ resultStage: string | undefined;
213
+ stageWriter: StageWriter | undefined;
214
+ constructor(fieldDef: TurtleDef, parent: QueryStruct, stageWriter: StageWriter | undefined);
215
+ static makeQuery(fieldDef: TurtleDef, parentStruct: QueryStruct, stageWriter?: StageWriter | undefined): QueryQuery;
216
+ getFieldList(): QueryFieldDef[];
217
+ expandField(f: QueryFieldDef): {
218
+ as: string;
219
+ field: QuerySomething;
220
+ };
221
+ expandDependantField(resultStruct: FieldInstanceResult, fieldRef: FieldRef): void;
222
+ expandWildCardStruct(struct: QueryStruct, expandChildren: boolean, filter?: ((qf: QueryNode) => boolean) | undefined): string[];
223
+ expandWildCards(fields: QueryFieldDef[], filter?: ((qf: QueryNode) => boolean) | undefined): QueryFieldDef[];
224
+ addDependantPath(resultStruct: FieldInstanceResult, context: QueryStruct, path: string, mayNeedUniqueKey: boolean, joinStack: string[]): void;
225
+ addDependantExpr(resultStruct: FieldInstanceResult, context: QueryStruct, e: Expr, joinStack: string[]): void;
226
+ addDependancies(resultStruct: FieldInstanceResult, field: QueryField): void;
227
+ expandFields(resultStruct: FieldInstanceResult): void;
228
+ expandFilters(resultStruct: FieldInstanceResult): void;
229
+ generateSQLFilters(resultStruct: FieldInstanceResult, which: "where" | "having", filterList?: FilterExpression[] | undefined): AndChain;
230
+ prepare(_stageWriter: StageWriter | undefined): void;
231
+ getResultMetadata(fi: FieldInstance): ResultStructMetadataDef | ResultMetadataDef | undefined;
232
+ /** returns a fields and primary key of a struct for this query */
233
+ getResultStructDef(resultStruct?: FieldInstanceResult, isRoot?: boolean): StructDef;
234
+ generateSQLJoinBlock(stageWriter: StageWriter, ji: JoinInstance): string;
235
+ generateSQLJoins(stageWriter: StageWriter): string;
236
+ genereateSQLOrderBy(queryDef: QuerySegment, resultStruct: FieldInstanceResult): string;
237
+ generateSimpleSQL(stageWriter: StageWriter): string;
238
+ generatePipelinedStages(outputPipelinedSQL: OutputPipelinedSQL[], lastStageName: string, stageWriter: StageWriter): string;
239
+ generateStage0Fields(resultSet: FieldInstanceResult, output: StageOutputContext, stageWriter: StageWriter): void;
240
+ generateSQLWhereChildren(resultStruct: FieldInstanceResult): AndChain;
241
+ generateSQLWhereTurtled(): string;
242
+ generateSQLHavingLimit(stageWriter: StageWriter, lastStageName: string): string;
243
+ generateSQLStage0(stageWriter: StageWriter): string;
244
+ generateDepthNFields(depth: number, resultSet: FieldInstanceResult, output: StageOutputContext, stageWriter: StageWriter): void;
245
+ generateSQLDepthN(depth: number, stageWriter: StageWriter, stageName: string): string;
246
+ genereateSQLCombineTurtles(stageWriter: StageWriter, stage0Name: string): string;
247
+ generateTurtleSQL(resultStruct: FieldInstanceResult, stageWriter: StageWriter, sqlFieldName: string, outputPipelinedSQL: OutputPipelinedSQL[]): string;
248
+ generateTurtlePipelineSQL(fi: FieldInstanceResult, stageWriter: StageWriter, sourceSQLExpression: string): {
249
+ structDef: StructDef;
250
+ pipeOut: {
251
+ lastStageName: string;
252
+ outputStruct: StructDef;
253
+ } | undefined;
254
+ };
255
+ generateComplexSQL(stageWriter: StageWriter): string;
256
+ generateSQL(stageWriter: StageWriter): string;
257
+ toMalloy(): string;
258
+ generateSQLFromPipeline(stageWriter: StageWriter): {
259
+ lastStageName: string;
260
+ outputStruct: StructDef;
261
+ };
262
+ }
263
+ /** Structure object as it is used to build a query */
264
+ declare class QueryStruct extends QueryNode {
265
+ fieldDef: StructDef;
266
+ parent: QueryStruct | undefined;
267
+ model: QueryModel;
268
+ nameMap: Map<string, QuerySomething>;
269
+ pathAliasMap: Map<string, string>;
270
+ dialect: Dialect;
271
+ connectionName: string;
272
+ constructor(fieldDef: StructDef, parent: {
273
+ struct: QueryStruct;
274
+ } | {
275
+ model: QueryModel;
276
+ });
277
+ parameters(): Record<string, Parameter>;
278
+ addFieldsFromFieldList(fields: FieldDef[]): void;
279
+ getAliasIdentifier(): string;
280
+ getAsQueryField(): QueryFieldStruct;
281
+ getSQLIdentifier(): string;
282
+ getIdentifier(): string;
283
+ getFullOutputName(): string;
284
+ needsSymetricCalculation(resultSet: FieldInstanceResult): boolean;
285
+ unnestWithNumbers(): boolean;
286
+ getJoinableParent(): QueryStruct;
287
+ addFieldToNameMap(as: string, n: QuerySomething): void;
288
+ /** the the primary key or throw an error. */
289
+ getPrimaryKeyField(fieldDef: FieldDef): QueryAtomicField;
290
+ /**
291
+ * called after all structure has been loaded. Examine this structure to see
292
+ * if if it is based on a query and if it is, add the output fields (unless
293
+ * they exist) to the structure.
294
+ */
295
+ resolveQueryFields(): void;
296
+ getModel(): QueryModel;
297
+ setParent(parent: {
298
+ struct: QueryStruct;
299
+ } | {
300
+ model: QueryModel;
301
+ }): void;
302
+ /** makes a new queryable field object from a fieldDef */
303
+ makeQueryField(field: FieldDef): QueryField;
304
+ /**
305
+ * return a field if it exists, make one if we are passed a field definition.
306
+ */
307
+ getOrMakeField(fieldRef: FieldRef): QuerySomething;
308
+ /** returns a dimension for the given name or make one. */
309
+ getOrMakeDimension(fieldRef: FieldRef): QueryAtomicField;
310
+ structSourceSQL(stageWriter: StageWriter): string;
311
+ root(): QueryStruct;
312
+ primaryKey(): QueryAtomicField | undefined;
313
+ /** get the componennts of a field path */
314
+ static resolvePath(name: string): string[];
315
+ getChildByName(name: string): QuerySomething | undefined;
316
+ /** convert a name into a field reference */
317
+ getFieldByName(name: string): QuerySomething;
318
+ getQueryFieldByName(name: string): QuerySomething;
319
+ getDimensionOrMeasureByName(name: string): QueryAtomicField;
320
+ /** returns a query object for the given name */
321
+ getDimensionByName(name: string): QueryAtomicField;
322
+ /** returns a query object for the given name */
323
+ getStructByName(name: string): QueryStruct;
324
+ getDistinctKey(): QueryAtomicField;
325
+ flattenTurtleDef(turtleDef: TurtleDef | TurtleDefPlus): TurtleDef;
326
+ }
327
+ /** the resulting SQL and the shape of the data at each stage of the pipeline */
328
+ interface QueryResults {
329
+ lastStageName: string;
330
+ stageWriter: StageWriter;
331
+ structs: StructDef[];
332
+ malloy: string;
333
+ connectionName: string;
334
+ }
335
+ /** start here */
336
+ export declare class QueryModel {
337
+ dialect: Dialect;
338
+ modelDef: ModelDef | undefined;
339
+ structs: Map<string, QueryStruct>;
340
+ constructor(modelDef: ModelDef | undefined);
341
+ loadModelFromDef(modelDef: ModelDef): void;
342
+ parseQueryPath(name: string): {
343
+ struct: QueryStruct;
344
+ queryName: string;
345
+ };
346
+ getStructByName(name: string): QueryStruct;
347
+ getStructFromRef(structRef: StructRef): QueryStruct;
348
+ loadQuery(query: Query, stageWriter: StageWriter | undefined, emitFinalStage?: boolean): QueryResults;
349
+ compileQuery(query: Query, finalize?: boolean): CompiledQuery;
350
+ exploreSearchSQLMap: Map<any, any>;
351
+ searchIndex(connection: Connection, explore: string, searchValue: string, limit?: number, searchField?: string | undefined): Promise<SearchIndexResult[] | undefined>;
352
+ }
353
+ export {};