@malloydata/malloy 0.0.304 → 0.0.305
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/duckdb/duckdb.d.ts +1 -1
- package/dist/dialect/duckdb/duckdb.js +2 -6
- package/dist/dialect/mysql/mysql.d.ts +1 -1
- package/dist/dialect/mysql/mysql.js +2 -6
- package/dist/dialect/postgres/postgres.d.ts +1 -1
- package/dist/dialect/postgres/postgres.js +2 -6
- package/dist/dialect/snowflake/snowflake.d.ts +1 -1
- package/dist/dialect/snowflake/snowflake.js +2 -5
- package/dist/dialect/standardsql/standardsql.d.ts +1 -1
- package/dist/dialect/standardsql/standardsql.js +2 -6
- package/dist/dialect/trino/trino.d.ts +1 -1
- package/dist/dialect/trino/trino.js +2 -6
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -3
- package/dist/lang/ast/expressions/expr-aggregate-function.js +12 -2
- package/dist/lang/ast/expressions/expr-count.js +3 -1
- package/dist/lang/ast/expressions/expr-func.js +34 -10
- package/dist/lang/ast/expressions/expr-props.js +1 -1
- package/dist/lang/ast/expressions/expr-ungroup.js +7 -3
- package/dist/lang/ast/expressions/function-ordering.d.ts +19 -5
- package/dist/lang/ast/expressions/function-ordering.js +61 -9
- package/dist/lang/ast/field-space/include-utils.js +1 -1
- package/dist/lang/ast/field-space/index-field-space.js +3 -1
- package/dist/lang/ast/field-space/query-spaces.js +20 -11
- package/dist/lang/ast/query-builders/index-builder.js +1 -1
- package/dist/lang/ast/query-builders/reduce-builder.js +1 -1
- package/dist/lang/ast/query-elements/query-arrow.js +14 -4
- package/dist/lang/ast/query-elements/query-base.d.ts +1 -0
- package/dist/lang/ast/query-elements/query-base.js +14 -4
- package/dist/lang/ast/query-elements/query-refine.js +2 -0
- package/dist/lang/ast/query-properties/drill.js +1 -1
- package/dist/lang/ast/source-properties/join.js +6 -2
- package/dist/lang/ast/statements/define-source.js +1 -1
- package/dist/lang/ast/types/expr-value.js +1 -1
- package/dist/lang/ast/view-elements/reference-view.js +4 -1
- package/dist/lang/ast/view-elements/refine-utils.js +1 -1
- package/dist/{model/composite_source_utils.d.ts → lang/composite-source-utils.d.ts} +4 -17
- package/dist/{model/composite_source_utils.js → lang/composite-source-utils.js} +274 -44
- package/dist/lang/test/parse-expects.d.ts +1 -1
- package/dist/lang/test/parse-expects.js +6 -2
- package/dist/lang/test/test-translator.js +1 -1
- package/dist/malloy.js +1 -1
- package/dist/model/expression_compiler.d.ts +27 -0
- package/dist/model/expression_compiler.js +780 -0
- package/dist/model/field_instance.d.ts +108 -0
- package/dist/model/field_instance.js +520 -0
- package/dist/model/index.d.ts +5 -1
- package/dist/model/index.js +25 -4
- package/dist/model/join_instance.d.ts +18 -0
- package/dist/model/join_instance.js +71 -0
- package/dist/model/malloy_types.d.ts +48 -2
- package/dist/model/malloy_types.js +39 -1
- package/dist/model/query_model.d.ts +2 -0
- package/dist/model/query_model.js +7 -0
- package/dist/model/query_model_contract.d.ts +32 -0
- package/dist/model/query_model_contract.js +7 -0
- package/dist/model/query_model_impl.d.ts +30 -0
- package/dist/model/query_model_impl.js +266 -0
- package/dist/model/query_node.d.ts +132 -0
- package/dist/model/query_node.js +638 -0
- package/dist/model/query_query.d.ts +86 -0
- package/dist/model/query_query.js +1724 -0
- package/dist/model/sql_block.js +2 -2
- package/dist/model/stage_writer.d.ts +25 -0
- package/dist/model/stage_writer.js +120 -0
- package/dist/model/utils.d.ts +18 -1
- package/dist/model/utils.js +66 -1
- package/dist/to_stable.js +3 -4
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -4
- package/dist/model/malloy_query.d.ts +0 -391
- package/dist/model/malloy_query.js +0 -3926
|
@@ -1,391 +0,0 @@
|
|
|
1
|
-
import type * as Malloy from '@malloydata/malloy-interfaces';
|
|
2
|
-
import type { QueryInfo, Dialect, DialectFieldList } from '../dialect';
|
|
3
|
-
import type { AggregateFunctionType, CompiledQuery, Expr, FieldDef, Filtered, FunctionOverloadDef, FunctionParameterDef, JoinRelationship, ModelDef, OrderBy, OutputFieldNode, ParameterNode, PipeSegment, Query, QueryFieldDef, QuerySegment, RefToField, ResultMetadataDef, ResultStructMetadataDef, SearchIndexResult, SegmentFieldDef, StructDef, StructRef, TurtleDef, FunctionOrderBy, Argument, AggregateExpr, FilterCondition, GenericSQLExpr, FieldnameNode, FunctionCallNode, UngroupNode, SourceReferenceNode, SpreadExpr, FilteredExpr, SourceDef, BooleanFieldDef, QueryResultDef, QueryToMaterialize, PrepareResultOptions, CaseExpr, BasicAtomicDef, AtomicFieldDef, FilterMatchExpr } from './malloy_types';
|
|
4
|
-
import type { Connection } from '../connection/types';
|
|
5
|
-
import { AndChain } from './utils';
|
|
6
|
-
import type { EventStream } from '../runtime_types';
|
|
7
|
-
import type { Tag } from '@malloydata/malloy-tag';
|
|
8
|
-
interface TurtleDefPlus extends TurtleDef, Filtered {
|
|
9
|
-
}
|
|
10
|
-
/** Parent from QueryStruct. */
|
|
11
|
-
export declare interface ParentQueryStruct {
|
|
12
|
-
struct: QueryStruct;
|
|
13
|
-
}
|
|
14
|
-
/** Parent from QueryModel. */
|
|
15
|
-
export declare interface ParentQueryModel {
|
|
16
|
-
model: QueryModel;
|
|
17
|
-
}
|
|
18
|
-
interface OutputPipelinedSQL {
|
|
19
|
-
sqlFieldName: string;
|
|
20
|
-
pipelineSQL: string;
|
|
21
|
-
}
|
|
22
|
-
type UniqueKeyPossibleUse = AggregateFunctionType | 'generic_asymmetric_aggregate';
|
|
23
|
-
declare class UniqueKeyUse extends Set<UniqueKeyPossibleUse> {
|
|
24
|
-
add_use(k: UniqueKeyPossibleUse | undefined): this | undefined;
|
|
25
|
-
hasAsymetricFunctions(): boolean;
|
|
26
|
-
}
|
|
27
|
-
declare class StageWriter {
|
|
28
|
-
parent: StageWriter | undefined;
|
|
29
|
-
withs: string[];
|
|
30
|
-
udfs: string[];
|
|
31
|
-
pdts: string[];
|
|
32
|
-
dependenciesToMaterialize: Record<string, QueryToMaterialize>;
|
|
33
|
-
stagePrefix: string;
|
|
34
|
-
useCTE: boolean;
|
|
35
|
-
constructor(useCTE: boolean | undefined, parent: StageWriter | undefined);
|
|
36
|
-
getName(id: number): string;
|
|
37
|
-
root(): StageWriter;
|
|
38
|
-
addStage(sql: string): string;
|
|
39
|
-
addUDF(stageWriter: StageWriter, dialect: Dialect, structDef: StructDef): string;
|
|
40
|
-
addMaterializedQuery(fieldName: string, query: Query, materializatedTablePrefix?: string): string;
|
|
41
|
-
addPDT(baseName: string, dialect: Dialect): string;
|
|
42
|
-
combineStages(includeLastStage: boolean): {
|
|
43
|
-
sql: string;
|
|
44
|
-
lastStageName: string | undefined;
|
|
45
|
-
};
|
|
46
|
-
/** emit the SQL for all the stages. */
|
|
47
|
-
generateSQLStages(): string;
|
|
48
|
-
generateCoorelatedSubQuery(dialect: Dialect, structDef: StructDef): string;
|
|
49
|
-
}
|
|
50
|
-
declare class GenerateState {
|
|
51
|
-
whereSQL?: string;
|
|
52
|
-
applyValue?: string;
|
|
53
|
-
totalGroupSet: number;
|
|
54
|
-
withWhere(s?: string): GenerateState;
|
|
55
|
-
withApply(s: string): GenerateState;
|
|
56
|
-
withTotal(groupSet: number): GenerateState;
|
|
57
|
-
}
|
|
58
|
-
declare abstract class QueryNode {
|
|
59
|
-
readonly referenceId: string;
|
|
60
|
-
constructor(referenceId?: string);
|
|
61
|
-
abstract getIdentifier(): string;
|
|
62
|
-
getChildByName(_name: string): QueryField | undefined;
|
|
63
|
-
}
|
|
64
|
-
declare class QueryField extends QueryNode {
|
|
65
|
-
fieldDef: FieldDef;
|
|
66
|
-
parent: QueryStruct;
|
|
67
|
-
constructor(fieldDef: FieldDef, parent: QueryStruct, referenceId?: string);
|
|
68
|
-
getIdentifier(): string;
|
|
69
|
-
uniqueKeyPossibleUse(): UniqueKeyPossibleUse | undefined;
|
|
70
|
-
getJoinableParent(): QueryStruct;
|
|
71
|
-
isAtomic(): boolean;
|
|
72
|
-
caseGroup(groupSets: number[], s: string): string;
|
|
73
|
-
getFullOutputName(): string;
|
|
74
|
-
generateFieldFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: FieldnameNode, state: GenerateState): string;
|
|
75
|
-
generateOutputFieldFragment(resultSet: FieldInstanceResult, _context: QueryStruct, frag: OutputFieldNode, _state: GenerateState): string;
|
|
76
|
-
stringsFromSQLExpression(resultSet: FieldInstanceResult, context: QueryStruct, e: GenericSQLExpr, state: GenerateState): Generator<string, void, unknown>;
|
|
77
|
-
private getParameterMap;
|
|
78
|
-
private expandFunctionCall;
|
|
79
|
-
getFunctionOrderBy(resultSet: FieldInstanceResult, context: QueryStruct, state: GenerateState, orderBy: FunctionOrderBy[], args: Expr[], overload: FunctionOverloadDef): string | undefined;
|
|
80
|
-
generateAsymmetricStringAggExpression(resultSet: FieldInstanceResult, context: QueryStruct, value: Expr, separator: Expr | undefined, distinctKey: string, orderBy: FunctionOrderBy[] | undefined, dialectName: string, state: GenerateState): string;
|
|
81
|
-
getParamForArgIndex(params: FunctionParameterDef[], argIndex: number): FunctionParameterDef;
|
|
82
|
-
generateFunctionCallExpression(resultSet: FieldInstanceResult, context: QueryStruct, frag: FunctionCallNode, state: GenerateState): string;
|
|
83
|
-
generateSpread(_resultSet: FieldInstanceResult, _context: QueryStruct, _frag: SpreadExpr, _state: GenerateState): string;
|
|
84
|
-
generateParameterFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: ParameterNode, state: GenerateState): string;
|
|
85
|
-
generateFilterFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: FilteredExpr, state: GenerateState): string;
|
|
86
|
-
generateDimFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: Expr, state: GenerateState): string;
|
|
87
|
-
generateUngroupedFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: UngroupNode, state: GenerateState): string;
|
|
88
|
-
generateDistinctKeyIfNecessary(resultSet: FieldInstanceResult, context: QueryStruct, structPath: string[] | undefined): string | undefined;
|
|
89
|
-
generateSumFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateExpr, state: GenerateState): string;
|
|
90
|
-
generateSymmetricFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateExpr, state: GenerateState): string;
|
|
91
|
-
generateAvgFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateExpr, state: GenerateState): string;
|
|
92
|
-
generateCountFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateExpr, state: GenerateState): string;
|
|
93
|
-
generateSourceReference(resultSet: FieldInstanceResult, context: QueryStruct, expr: SourceReferenceNode): string;
|
|
94
|
-
getAnalyticPartitions(resultStruct: FieldInstanceResult, extraPartitionFields?: string[]): string[];
|
|
95
|
-
generateAnalyticFragment(dialect: string, resultStruct: FieldInstanceResult, context: QueryStruct, expr: Expr, overload: FunctionOverloadDef, state: GenerateState, args: Expr[], partitionByFields?: string[], funcOrdering?: string): string;
|
|
96
|
-
generateCaseSQL(pf: CaseExpr): string;
|
|
97
|
-
exprToSQL(resultSet: FieldInstanceResult, context: QueryStruct, exprToTranslate: Expr, state?: GenerateState): string;
|
|
98
|
-
generateAppliedFilter(context: QueryStruct, filterMatchExpr: FilterMatchExpr): string;
|
|
99
|
-
isNestedInParent(parentDef: FieldDef): boolean;
|
|
100
|
-
isArrayElement(parentDef: FieldDef): boolean;
|
|
101
|
-
generateExpression(resultSet: FieldInstanceResult): string;
|
|
102
|
-
includeInWildcard(): boolean;
|
|
103
|
-
}
|
|
104
|
-
type QueryBasicField = QueryAtomicField<BasicAtomicDef>;
|
|
105
|
-
declare abstract class QueryAtomicField<T extends AtomicFieldDef> extends QueryField {
|
|
106
|
-
fieldDef: T;
|
|
107
|
-
constructor(fieldDef: T, parent: QueryStruct, refId?: string);
|
|
108
|
-
includeInWildcard(): boolean;
|
|
109
|
-
getFilterList(): FilterCondition[];
|
|
110
|
-
}
|
|
111
|
-
declare class QueryFieldBoolean extends QueryAtomicField<BooleanFieldDef> {
|
|
112
|
-
}
|
|
113
|
-
type FieldUsage = {
|
|
114
|
-
type: 'result';
|
|
115
|
-
resultIndex: number;
|
|
116
|
-
} | {
|
|
117
|
-
type: 'where';
|
|
118
|
-
} | {
|
|
119
|
-
type: 'dependant';
|
|
120
|
-
};
|
|
121
|
-
type FieldInstanceType = 'field' | 'query';
|
|
122
|
-
interface FieldInstance {
|
|
123
|
-
type: FieldInstanceType;
|
|
124
|
-
root(): FieldInstanceResultRoot;
|
|
125
|
-
}
|
|
126
|
-
declare class FieldInstanceField implements FieldInstance {
|
|
127
|
-
f: QueryField;
|
|
128
|
-
fieldUsage: FieldUsage;
|
|
129
|
-
parent: FieldInstanceResult;
|
|
130
|
-
readonly drillExpression: Malloy.Expression | undefined;
|
|
131
|
-
type: FieldInstanceType;
|
|
132
|
-
additionalGroupSets: number[];
|
|
133
|
-
analyticalSQL: string | undefined;
|
|
134
|
-
partitionSQL: string | undefined;
|
|
135
|
-
constructor(f: QueryField, fieldUsage: FieldUsage, parent: FieldInstanceResult, drillExpression: Malloy.Expression | undefined);
|
|
136
|
-
root(): FieldInstanceResultRoot;
|
|
137
|
-
getSQL(): string;
|
|
138
|
-
getAnalyticalSQL(forPartition: boolean): string;
|
|
139
|
-
}
|
|
140
|
-
type RepeatedResultType = 'nested' | 'inline_all_numbers' | 'inline';
|
|
141
|
-
type UngroupSet = {
|
|
142
|
-
type: 'all' | 'exclude';
|
|
143
|
-
fields: string[];
|
|
144
|
-
groupSet: number;
|
|
145
|
-
};
|
|
146
|
-
declare class FieldInstanceResult implements FieldInstance {
|
|
147
|
-
turtleDef: TurtleDef;
|
|
148
|
-
parent: FieldInstanceResult | undefined;
|
|
149
|
-
type: FieldInstanceType;
|
|
150
|
-
allFields: Map<string, FieldInstance>;
|
|
151
|
-
groupSet: number;
|
|
152
|
-
depth: number;
|
|
153
|
-
childGroups: number[];
|
|
154
|
-
firstSegment: PipeSegment;
|
|
155
|
-
hasHaving: boolean;
|
|
156
|
-
ungroupedSets: Map<string, UngroupSet>;
|
|
157
|
-
resultUsesUngrouped: boolean;
|
|
158
|
-
constructor(turtleDef: TurtleDef, parent: FieldInstanceResult | undefined);
|
|
159
|
-
/**
|
|
160
|
-
* Information about the query containing this result set. Invented
|
|
161
|
-
* to pass on timezone information, but maybe more things will
|
|
162
|
-
* eventually go in here.
|
|
163
|
-
* @returns QueryInfo
|
|
164
|
-
*/
|
|
165
|
-
getQueryInfo(): QueryInfo;
|
|
166
|
-
addField(as: string, field: QueryField, usage: FieldUsage, drillExpression: Malloy.Expression | undefined): void;
|
|
167
|
-
parentGroupSet(): number;
|
|
168
|
-
add(name: string, f: FieldInstance): void;
|
|
169
|
-
hasField(name: string): boolean;
|
|
170
|
-
getField(name: string): FieldInstanceField;
|
|
171
|
-
getFieldByNumber(index: number): {
|
|
172
|
-
name: string;
|
|
173
|
-
fif: FieldInstanceField;
|
|
174
|
-
};
|
|
175
|
-
computeGroups(nextGroupSetNumber: number, depth: number): {
|
|
176
|
-
nextGroupSetNumber: number;
|
|
177
|
-
maxDepth: number;
|
|
178
|
-
children: number[];
|
|
179
|
-
isComplex: boolean;
|
|
180
|
-
};
|
|
181
|
-
fields(fn?: undefined | ((field: FieldInstanceField) => boolean)): FieldInstanceField[];
|
|
182
|
-
fieldNames(fn: undefined | ((field: FieldInstanceField) => boolean)): string[];
|
|
183
|
-
getRepeatedResultType(): RepeatedResultType;
|
|
184
|
-
structs(): FieldInstanceResult[];
|
|
185
|
-
selectStructs(result: FieldInstanceResult[], fn: (result: FieldInstanceResult) => boolean): FieldInstanceResult[];
|
|
186
|
-
calculateDefaultOrderBy(): OrderBy[];
|
|
187
|
-
addStructToJoin(qs: QueryStruct, query: QueryQuery, uniqueKeyPossibleUse: UniqueKeyPossibleUse | undefined, joinStack: string[]): void;
|
|
188
|
-
findJoins(query: QueryQuery): void;
|
|
189
|
-
root(): FieldInstanceResultRoot;
|
|
190
|
-
getUngroupPartitions(ungroupSet: UngroupSet | undefined): FieldInstanceField[];
|
|
191
|
-
assignFieldsToGroups(): void;
|
|
192
|
-
}
|
|
193
|
-
declare class FieldInstanceResultRoot extends FieldInstanceResult {
|
|
194
|
-
joins: Map<string, JoinInstance>;
|
|
195
|
-
havings: AndChain;
|
|
196
|
-
isComplexQuery: boolean;
|
|
197
|
-
queryUsesPartitioning: boolean;
|
|
198
|
-
computeOnlyGroups: number[];
|
|
199
|
-
elimatedComputeGroups: boolean;
|
|
200
|
-
constructor(turtleDef: TurtleDef);
|
|
201
|
-
root(): FieldInstanceResultRoot;
|
|
202
|
-
eliminateComputeGroupsSQL(): string;
|
|
203
|
-
calculateSymmetricAggregates(): void;
|
|
204
|
-
}
|
|
205
|
-
declare class JoinInstance {
|
|
206
|
-
queryStruct: QueryStruct;
|
|
207
|
-
alias: string;
|
|
208
|
-
parent: JoinInstance | undefined;
|
|
209
|
-
uniqueKeyPossibleUses: UniqueKeyUse;
|
|
210
|
-
makeUniqueKey: boolean;
|
|
211
|
-
leafiest: boolean;
|
|
212
|
-
joinFilterConditions?: QueryFieldBoolean[];
|
|
213
|
-
children: JoinInstance[];
|
|
214
|
-
constructor(queryStruct: QueryStruct, alias: string, parent: JoinInstance | undefined);
|
|
215
|
-
parentRelationship(): 'root' | JoinRelationship;
|
|
216
|
-
forceAllSymmetricCalculations(): boolean;
|
|
217
|
-
getDialectFieldList(): DialectFieldList;
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Used by the translator to get the output StructDef of a pipe segment
|
|
221
|
-
*
|
|
222
|
-
* half translated to the new world of types ..
|
|
223
|
-
*/
|
|
224
|
-
export declare class Segment {
|
|
225
|
-
static nextStructDef(structDef: SourceDef, segment: PipeSegment): QueryResultDef;
|
|
226
|
-
}
|
|
227
|
-
export declare function getResultStructDefForView(source: SourceDef, view: TurtleDef): SourceDef;
|
|
228
|
-
export declare function getResultStructDefForQuery(model: ModelDef, query: Query): SourceDef;
|
|
229
|
-
type StageGroupMaping = {
|
|
230
|
-
fromGroup: number;
|
|
231
|
-
toGroup: number;
|
|
232
|
-
};
|
|
233
|
-
type StageOutputContext = {
|
|
234
|
-
sql: string[];
|
|
235
|
-
lateralJoinSQLExpressions: string[];
|
|
236
|
-
dimensionIndexes: number[];
|
|
237
|
-
fieldIndex: number;
|
|
238
|
-
groupsAggregated: StageGroupMaping[];
|
|
239
|
-
outputPipelinedSQL: OutputPipelinedSQL[];
|
|
240
|
-
};
|
|
241
|
-
/** Query builder object. */
|
|
242
|
-
declare class QueryQuery extends QueryField {
|
|
243
|
-
fieldDef: TurtleDef;
|
|
244
|
-
firstSegment: PipeSegment;
|
|
245
|
-
prepared: boolean;
|
|
246
|
-
maxDepth: number;
|
|
247
|
-
maxGroupSet: number;
|
|
248
|
-
rootResult: FieldInstanceResultRoot;
|
|
249
|
-
resultStage: string | undefined;
|
|
250
|
-
stageWriter: StageWriter | undefined;
|
|
251
|
-
isJoinedSubquery: boolean;
|
|
252
|
-
constructor(fieldDef: TurtleDef, parent: QueryStruct, stageWriter: StageWriter | undefined, isJoinedSubquery: boolean);
|
|
253
|
-
static makeQuery(fieldDef: TurtleDef, parentStruct: QueryStruct, stageWriter: StageWriter | undefined, isJoinedSubquery: boolean): QueryQuery;
|
|
254
|
-
inNestedPipeline(): boolean;
|
|
255
|
-
expandField(f: QueryFieldDef): {
|
|
256
|
-
as: string;
|
|
257
|
-
field: QueryField;
|
|
258
|
-
};
|
|
259
|
-
addDependantPath(resultStruct: FieldInstanceResult, context: QueryStruct, path: string[], uniqueKeyPossibleUse: UniqueKeyPossibleUse | undefined, joinStack: string[]): void;
|
|
260
|
-
findRecordAliases(context: QueryStruct, path: string[]): void;
|
|
261
|
-
addDependantExpr(resultStruct: FieldInstanceResult, context: QueryStruct, e: Expr, joinStack: string[]): void;
|
|
262
|
-
addDependancies(resultStruct: FieldInstanceResult, field: QueryField): void;
|
|
263
|
-
getSegmentFields(resultStruct: FieldInstanceResult): SegmentFieldDef[];
|
|
264
|
-
private getDrillExpression;
|
|
265
|
-
expandFields(resultStruct: FieldInstanceResult): void;
|
|
266
|
-
expandFilters(resultStruct: FieldInstanceResult): void;
|
|
267
|
-
generateSQLFilters(resultStruct: FieldInstanceResult, which: 'where' | 'having'): AndChain;
|
|
268
|
-
prepare(_stageWriter: StageWriter | undefined): void;
|
|
269
|
-
addAlwaysJoins(rootResult: FieldInstanceResultRoot): void;
|
|
270
|
-
getResultMetadata(fi: FieldInstance): ResultStructMetadataDef | ResultMetadataDef | undefined;
|
|
271
|
-
/** returns a fields and primary key of a struct for this query */
|
|
272
|
-
getResultStructDef(resultStruct?: FieldInstanceResult, isRoot?: boolean): QueryResultDef;
|
|
273
|
-
generateSQLJoinBlock(stageWriter: StageWriter, ji: JoinInstance, depth: number): string;
|
|
274
|
-
generateSQLPassthroughKeys(qs: QueryStruct): string;
|
|
275
|
-
generateSQLJoins(stageWriter: StageWriter): string;
|
|
276
|
-
genereateSQLOrderBy(queryDef: QuerySegment, resultStruct: FieldInstanceResult): string;
|
|
277
|
-
generateSimpleSQL(stageWriter: StageWriter): string;
|
|
278
|
-
generatePipelinedStages(outputPipelinedSQL: OutputPipelinedSQL[], lastStageName: string, stageWriter: StageWriter): string;
|
|
279
|
-
generateStage0Fields(resultSet: FieldInstanceResult, output: StageOutputContext, stageWriter: StageWriter): void;
|
|
280
|
-
generateSQLWhereChildren(resultStruct: FieldInstanceResult): AndChain;
|
|
281
|
-
generateSQLWhereTurtled(): string;
|
|
282
|
-
generateSQLHavingLimit(stageWriter: StageWriter, lastStageName: string): string;
|
|
283
|
-
generateSQLStage0(stageWriter: StageWriter): string;
|
|
284
|
-
generateDepthNFields(depth: number, resultSet: FieldInstanceResult, output: StageOutputContext, stageWriter: StageWriter): void;
|
|
285
|
-
generateSQLDepthN(depth: number, stageWriter: StageWriter, stageName: string): string;
|
|
286
|
-
genereateSQLCombineTurtles(stageWriter: StageWriter, stage0Name: string): string;
|
|
287
|
-
buildDialectFieldList(resultStruct: FieldInstanceResult): DialectFieldList;
|
|
288
|
-
generateTurtleSQL(resultStruct: FieldInstanceResult, stageWriter: StageWriter, sqlFieldName: string, outputPipelinedSQL: OutputPipelinedSQL[]): string;
|
|
289
|
-
generateTurtlePipelineSQL(fi: FieldInstanceResult, stageWriter: StageWriter, sourceSQLExpression: string): {
|
|
290
|
-
structDef: QueryResultDef;
|
|
291
|
-
pipeOut: any;
|
|
292
|
-
repeatedResultType: RepeatedResultType;
|
|
293
|
-
};
|
|
294
|
-
generateComplexSQL(stageWriter: StageWriter): string;
|
|
295
|
-
generateSQL(stageWriter: StageWriter): string;
|
|
296
|
-
generateSQLFromPipeline(stageWriter: StageWriter): {
|
|
297
|
-
lastStageName: string;
|
|
298
|
-
outputStruct: QueryResultDef;
|
|
299
|
-
};
|
|
300
|
-
}
|
|
301
|
-
/** Structure object as it is used to build a query */
|
|
302
|
-
declare class QueryStruct {
|
|
303
|
-
structDef: StructDef;
|
|
304
|
-
readonly sourceArguments: Record<string, Argument> | undefined;
|
|
305
|
-
readonly prepareResultOptions: PrepareResultOptions;
|
|
306
|
-
parent: QueryStruct | undefined;
|
|
307
|
-
model: QueryModel;
|
|
308
|
-
nameMap: Map<string, QueryField>;
|
|
309
|
-
pathAliasMap: Map<string, string>;
|
|
310
|
-
dialect: Dialect;
|
|
311
|
-
connectionName: string;
|
|
312
|
-
recordAlias?: string;
|
|
313
|
-
constructor(structDef: StructDef, sourceArguments: Record<string, Argument> | undefined, parent: ParentQueryStruct | ParentQueryModel, prepareResultOptions: PrepareResultOptions);
|
|
314
|
-
private _modelTag;
|
|
315
|
-
modelCompilerFlags(): Tag;
|
|
316
|
-
protected findFirstDialect(): string;
|
|
317
|
-
informOfAliasValue(av: string): void;
|
|
318
|
-
maybeEmitParameterizedSourceUsage(): void;
|
|
319
|
-
private resolveParentParameterReferences;
|
|
320
|
-
private _arguments;
|
|
321
|
-
arguments(): Record<string, Argument>;
|
|
322
|
-
private addFieldsFromFieldList;
|
|
323
|
-
getAliasIdentifier(): string;
|
|
324
|
-
getSQLIdentifier(): string;
|
|
325
|
-
sqlChildReference(name: string, expand: {
|
|
326
|
-
result: FieldInstanceResult;
|
|
327
|
-
field: QueryField;
|
|
328
|
-
} | undefined): string;
|
|
329
|
-
getIdentifier(): string;
|
|
330
|
-
getFullOutputName(): string;
|
|
331
|
-
needsSymetricCalculation(resultSet: FieldInstanceResult): boolean;
|
|
332
|
-
unnestWithNumbers(): boolean;
|
|
333
|
-
getJoinableParent(): QueryStruct;
|
|
334
|
-
addFieldToNameMap(as: string, n: QueryField): void;
|
|
335
|
-
/** the the primary key or throw an error. */
|
|
336
|
-
getPrimaryKeyField(fieldDef: FieldDef): QueryBasicField;
|
|
337
|
-
/**
|
|
338
|
-
* called after all structure has been loaded. Examine this structure to see
|
|
339
|
-
* if if it is based on a query and if it is, add the output fields (unless
|
|
340
|
-
* they exist) to the structure.
|
|
341
|
-
*/
|
|
342
|
-
resolveQueryFields(): void;
|
|
343
|
-
getModel(): QueryModel;
|
|
344
|
-
get eventStream(): EventStream | undefined;
|
|
345
|
-
setParent(parent: ParentQueryStruct | ParentQueryModel): void;
|
|
346
|
-
/** makes a new queryable field object from a fieldDef */
|
|
347
|
-
makeQueryField(field: FieldDef, referenceId?: string): QueryField;
|
|
348
|
-
structSourceSQL(stageWriter: StageWriter): string;
|
|
349
|
-
root(): QueryStruct;
|
|
350
|
-
primaryKey(): QueryBasicField | undefined;
|
|
351
|
-
getChildByName(name: string): QueryField | undefined;
|
|
352
|
-
/** convert a path into a field reference */
|
|
353
|
-
getFieldByName(path: string[]): QueryField;
|
|
354
|
-
getQueryFieldByName(name: string[]): QueryField;
|
|
355
|
-
getQueryFieldReference(f: RefToField): QueryField;
|
|
356
|
-
getDimensionOrMeasureByName(name: string[]): QueryField;
|
|
357
|
-
/** returns a query object for the given name */
|
|
358
|
-
getDimensionByName(name: string[]): QueryBasicField;
|
|
359
|
-
/** returns a query object for the given name */
|
|
360
|
-
getStructByName(name: string[]): QueryStruct;
|
|
361
|
-
getDistinctKey(): QueryBasicField;
|
|
362
|
-
applyStructFiltersToTurtleDef(turtleDef: TurtleDef | TurtleDefPlus): TurtleDef;
|
|
363
|
-
}
|
|
364
|
-
/** the resulting SQL and the shape of the data at each stage of the pipeline */
|
|
365
|
-
interface QueryResults {
|
|
366
|
-
lastStageName: string;
|
|
367
|
-
stageWriter: StageWriter;
|
|
368
|
-
structs: SourceDef[];
|
|
369
|
-
malloy: string;
|
|
370
|
-
connectionName: string;
|
|
371
|
-
}
|
|
372
|
-
/** start here */
|
|
373
|
-
export declare class QueryModel {
|
|
374
|
-
readonly eventStream?: EventStream | undefined;
|
|
375
|
-
dialect: Dialect;
|
|
376
|
-
modelDef: ModelDef | undefined;
|
|
377
|
-
structs: Map<string, QueryStruct>;
|
|
378
|
-
constructor(modelDef: ModelDef | undefined, eventStream?: EventStream | undefined);
|
|
379
|
-
loadModelFromDef(modelDef: ModelDef): void;
|
|
380
|
-
getStructByName(name: string): QueryStruct;
|
|
381
|
-
getStructFromRef(structRef: StructRef, sourceArguments: Record<string, Argument> | undefined, prepareResultOptions?: PrepareResultOptions): QueryStruct;
|
|
382
|
-
loadQuery(query: Query, stageWriter: StageWriter | undefined, prepareResultOptions?: PrepareResultOptions, emitFinalStage?: boolean, isJoinedSubquery?: boolean): QueryResults;
|
|
383
|
-
addDefaultRowLimit(query: Query, defaultRowLimit?: number): {
|
|
384
|
-
query: Query;
|
|
385
|
-
addedDefaultRowLimit?: number;
|
|
386
|
-
};
|
|
387
|
-
compileQuery(query: Query, prepareResultOptions?: PrepareResultOptions, finalize?: boolean): CompiledQuery;
|
|
388
|
-
exploreSearchSQLMap: Map<any, any>;
|
|
389
|
-
searchIndex(connection: Connection, explore: string, searchValue: string, limit?: number, searchField?: string | undefined): Promise<SearchIndexResult[] | undefined>;
|
|
390
|
-
}
|
|
391
|
-
export {};
|