@malloydata/malloy 0.0.195-dev241003204905 → 0.0.195-dev241007154000
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/connection/base_connection.d.ts +21 -7
- package/dist/connection/base_connection.js +62 -0
- package/dist/connection/types.d.ts +5 -5
- package/dist/dialect/dialect.d.ts +5 -3
- package/dist/dialect/dialect.js +15 -0
- package/dist/dialect/duckdb/duckdb.d.ts +3 -3
- package/dist/dialect/duckdb/duckdb.js +8 -3
- package/dist/dialect/postgres/postgres.d.ts +3 -3
- package/dist/dialect/postgres/postgres.js +5 -2
- package/dist/dialect/snowflake/snowflake.d.ts +3 -3
- package/dist/dialect/snowflake/snowflake.js +4 -1
- package/dist/dialect/standardsql/standardsql.d.ts +3 -3
- package/dist/dialect/standardsql/standardsql.js +5 -2
- package/dist/dialect/trino/trino.d.ts +3 -3
- package/dist/dialect/trino/trino.js +35 -3
- package/dist/index.d.ts +4 -4
- package/dist/index.js +6 -2
- package/dist/lang/ast/error-factory.d.ts +4 -3
- package/dist/lang/ast/error-factory.js +27 -17
- package/dist/lang/ast/expressions/constant-expression.d.ts +1 -0
- package/dist/lang/ast/expressions/constant-expression.js +3 -0
- package/dist/lang/ast/expressions/expr-aggregate-function.d.ts +3 -7
- package/dist/lang/ast/expressions/expr-aggregate-function.js +50 -54
- package/dist/lang/ast/expressions/expr-cast.js +2 -4
- package/dist/lang/ast/expressions/expr-func.js +1 -1
- package/dist/lang/ast/expressions/expr-granular-time.js +1 -1
- package/dist/lang/ast/expressions/expr-record-literal.d.ts +16 -0
- package/dist/lang/ast/expressions/expr-record-literal.js +57 -0
- package/dist/lang/ast/expressions/expr-time-extract.js +3 -3
- package/dist/lang/ast/expressions/expr-time.d.ts +3 -3
- package/dist/lang/ast/expressions/expr-time.js +1 -1
- package/dist/lang/ast/expressions/time-literal.d.ts +6 -6
- package/dist/lang/ast/expressions/time-literal.js +1 -1
- package/dist/lang/ast/field-space/column-space-field.d.ts +6 -5
- package/dist/lang/ast/field-space/column-space-field.js +7 -4
- package/dist/lang/ast/field-space/dynamic-space.d.ts +8 -6
- package/dist/lang/ast/field-space/dynamic-space.js +35 -11
- package/dist/lang/ast/field-space/index-field-space.js +6 -3
- package/dist/lang/ast/field-space/ir-view-field.d.ts +1 -0
- package/dist/lang/ast/field-space/ir-view-field.js +3 -1
- package/dist/lang/ast/field-space/join-space-field.d.ts +2 -2
- package/dist/lang/ast/field-space/join-space-field.js +2 -2
- package/dist/lang/ast/field-space/parameter-space.d.ts +1 -0
- package/dist/lang/ast/field-space/parameter-space.js +4 -1
- package/dist/lang/ast/field-space/query-input-space.d.ts +4 -4
- package/dist/lang/ast/field-space/query-input-space.js +3 -5
- package/dist/lang/ast/field-space/query-spaces.d.ts +4 -4
- package/dist/lang/ast/field-space/query-spaces.js +1 -1
- package/dist/lang/ast/field-space/reference-field.js +10 -8
- package/dist/lang/ast/field-space/refined-space.d.ts +2 -2
- package/dist/lang/ast/field-space/static-space.d.ts +14 -5
- package/dist/lang/ast/field-space/static-space.js +45 -20
- package/dist/lang/ast/field-space/struct-space-field-base.d.ts +6 -5
- package/dist/lang/ast/field-space/struct-space-field-base.js +12 -4
- package/dist/lang/ast/index.d.ts +2 -1
- package/dist/lang/ast/index.js +2 -1
- package/dist/lang/ast/query-builders/index-builder.d.ts +2 -2
- package/dist/lang/ast/query-builders/project-builder.d.ts +2 -2
- package/dist/lang/ast/query-builders/reduce-builder.d.ts +2 -2
- package/dist/lang/ast/query-elements/query-arrow.js +2 -2
- package/dist/lang/ast/query-elements/query-head-struct.d.ts +2 -2
- package/dist/lang/ast/query-elements/query-head-struct.js +2 -2
- package/dist/lang/ast/query-elements/query-raw.js +2 -2
- package/dist/lang/ast/query-elements/query-reference.js +1 -1
- package/dist/lang/ast/query-items/field-declaration.d.ts +8 -6
- package/dist/lang/ast/query-items/field-declaration.js +66 -24
- package/dist/lang/ast/query-properties/qop-desc.d.ts +2 -2
- package/dist/lang/ast/query-properties/qop-desc.js +1 -1
- package/dist/lang/ast/source-elements/named-source.d.ts +4 -4
- package/dist/lang/ast/source-elements/named-source.js +16 -8
- package/dist/lang/ast/source-elements/query-source.d.ts +3 -3
- package/dist/lang/ast/source-elements/query-source.js +5 -2
- package/dist/lang/ast/source-elements/refined-source.d.ts +3 -3
- package/dist/lang/ast/source-elements/refined-source.js +4 -4
- package/dist/lang/ast/source-elements/source.d.ts +2 -2
- package/dist/lang/ast/source-elements/source.js +2 -2
- package/dist/lang/ast/source-elements/sql-source.d.ts +4 -4
- package/dist/lang/ast/source-elements/sql-source.js +6 -6
- package/dist/lang/ast/source-elements/table-source.d.ts +2 -2
- package/dist/lang/ast/source-elements/table-source.js +1 -1
- package/dist/lang/ast/source-properties/{joins.d.ts → join.d.ts} +11 -14
- package/dist/lang/ast/source-properties/{joins.js → join.js} +35 -52
- package/dist/lang/ast/source-query-elements/sq-reference.js +6 -5
- package/dist/lang/ast/sql-elements/sql-string.d.ts +2 -2
- package/dist/lang/ast/statements/define-source.js +1 -1
- package/dist/lang/ast/struct-utils.d.ts +3 -3
- package/dist/lang/ast/struct-utils.js +12 -3
- package/dist/lang/ast/time-utils.d.ts +3 -3
- package/dist/lang/ast/types/document-compile-result.d.ts +2 -2
- package/dist/lang/ast/types/expression-def.js +4 -4
- package/dist/lang/ast/types/field-space.d.ts +8 -3
- package/dist/lang/ast/types/lookup-result.d.ts +8 -5
- package/dist/lang/ast/types/malloy-element.d.ts +3 -3
- package/dist/lang/ast/types/malloy-element.js +10 -21
- package/dist/lang/ast/types/op-desc.d.ts +2 -2
- package/dist/lang/ast/types/pipeline-comp.d.ts +2 -2
- package/dist/lang/ast/types/query-comp.d.ts +3 -3
- package/dist/lang/ast/types/query-extend-property.d.ts +1 -2
- package/dist/lang/ast/types/query-extend-property.js +4 -2
- package/dist/lang/ast/types/source-property.d.ts +2 -2
- package/dist/lang/ast/types/source-property.js +2 -2
- package/dist/lang/ast/types/space-field.d.ts +10 -3
- package/dist/lang/ast/types/space-field.js +11 -2
- package/dist/lang/ast/types/time-result.d.ts +2 -2
- package/dist/lang/ast/view-elements/qop-desc-view.d.ts +3 -3
- package/dist/lang/ast/view-elements/qop-desc-view.js +1 -1
- package/dist/lang/ast/view-elements/reference-view.d.ts +4 -4
- package/dist/lang/ast/view-elements/reference-view.js +2 -6
- package/dist/lang/ast/view-elements/view-refine.d.ts +2 -2
- package/dist/lang/index.d.ts +1 -1
- package/dist/lang/lib/Malloy/MalloyParser.d.ts +54 -21
- package/dist/lang/lib/Malloy/MalloyParser.js +1647 -1457
- package/dist/lang/lib/Malloy/MalloyParserListener.d.ts +57 -9
- package/dist/lang/lib/Malloy/MalloyParserVisitor.d.ts +35 -5
- package/dist/lang/malloy-to-ast.d.ts +4 -4
- package/dist/lang/malloy-to-ast.js +32 -4
- package/dist/lang/parse-log.d.ts +5 -9
- package/dist/lang/parse-malloy.d.ts +10 -10
- package/dist/lang/parse-malloy.js +2 -1
- package/dist/lang/test/annotation.spec.js +7 -1
- package/dist/lang/test/field-symbols.spec.js +21 -25
- package/dist/lang/test/imports.spec.js +12 -10
- package/dist/lang/test/lenses.spec.js +2 -2
- package/dist/lang/test/model_serialization.spec.d.ts +4 -4
- package/dist/lang/test/model_serialization.spec.js +19 -31
- package/dist/lang/test/parse.spec.js +3 -4
- package/dist/lang/test/query.spec.js +3 -2
- package/dist/lang/test/source.spec.js +7 -0
- package/dist/lang/test/sql-block.spec.js +8 -19
- package/dist/lang/test/test-translator.d.ts +4 -4
- package/dist/lang/test/test-translator.js +53 -61
- package/dist/lang/translate-response.d.ts +3 -3
- package/dist/malloy.d.ts +31 -149
- package/dist/malloy.js +109 -267
- package/dist/model/malloy_query.d.ts +25 -23
- package/dist/model/malloy_query.js +262 -323
- package/dist/model/malloy_types.d.ts +145 -155
- package/dist/model/malloy_types.js +81 -84
- package/dist/model/sql_block.d.ts +4 -4
- package/dist/model/sql_block.js +9 -12
- package/dist/tags.js +2 -2
- package/package.json +1 -1
- package/dist/lang/ast/space-seed.d.ts +0 -16
- package/dist/lang/ast/space-seed.js +0 -59
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Dialect, DialectFieldList } from '../dialect';
|
|
2
|
-
import { AggregateFunctionType, Annotation, CompiledQuery, Expr, FieldDef, Filtered, FunctionOverloadDef, FunctionParameterDef, JoinRelationship, ModelDef, OrderBy, OutputFieldNode, Parameter, ParameterNode, PipeSegment, Query, QueryFieldDef, QuerySegment, ResultMetadataDef, ResultStructMetadataDef, SearchIndexResult, SegmentFieldDef, StructDef, StructRef, TurtleDef, FunctionOrderBy, Argument, AggregateExpr, FilterCondition, GenericSQLExpr, FieldnameNode, FunctionCallNode, UngroupNode, SourceReferenceNode, PickExpr, SpreadExpr, FilteredExpr, QueryToMaterialize, PrepareResultOptions } from './malloy_types';
|
|
2
|
+
import { AggregateFunctionType, Annotation, CompiledQuery, Expr, FieldDef, Filtered, FunctionOverloadDef, FunctionParameterDef, JoinRelationship, ModelDef, OrderBy, OutputFieldNode, Parameter, ParameterNode, PipeSegment, Query, QueryFieldDef, QuerySegment, ResultMetadataDef, ResultStructMetadataDef, SearchIndexResult, SegmentFieldDef, StructDef, StructRef, TurtleDef, FunctionOrderBy, Argument, AggregateExpr, FilterCondition, GenericSQLExpr, FieldnameNode, FunctionCallNode, UngroupNode, SourceReferenceNode, PickExpr, SpreadExpr, FilteredExpr, SourceDef, AtomicFieldDef, BooleanFieldDef, QueryToMaterialize, PrepareResultOptions } from './malloy_types';
|
|
3
3
|
import { Connection } from '../connection/types';
|
|
4
4
|
import { AndChain } from './utils';
|
|
5
5
|
import { QueryInfo } from '../dialect/dialect';
|
|
@@ -56,16 +56,16 @@ declare class GenerateState {
|
|
|
56
56
|
withTotal(groupSet: number): GenerateState;
|
|
57
57
|
}
|
|
58
58
|
declare abstract class QueryNode {
|
|
59
|
-
|
|
60
|
-
constructor(
|
|
61
|
-
getIdentifier(): string;
|
|
59
|
+
readonly referenceId: string;
|
|
60
|
+
constructor(referenceId?: string);
|
|
61
|
+
abstract getIdentifier(): string;
|
|
62
62
|
getChildByName(_name: string): QuerySomething | undefined;
|
|
63
63
|
}
|
|
64
64
|
declare class QueryField extends QueryNode {
|
|
65
65
|
fieldDef: FieldDef;
|
|
66
66
|
parent: QueryStruct;
|
|
67
|
-
readonly referenceId: string;
|
|
68
67
|
constructor(fieldDef: FieldDef, parent: QueryStruct, referenceId?: string);
|
|
68
|
+
getIdentifier(): string;
|
|
69
69
|
uniqueKeyPossibleUse(): UniqueKeyPossibleUse | undefined;
|
|
70
70
|
getJoinableParent(): QueryStruct;
|
|
71
71
|
caseGroup(groupSets: number[], s: string): string;
|
|
@@ -94,17 +94,21 @@ declare class QueryField extends QueryNode {
|
|
|
94
94
|
generateAnalyticFragment(dialect: string, resultStruct: FieldInstanceResult, context: QueryStruct, expr: Expr, overload: FunctionOverloadDef, state: GenerateState, args: Expr[], partitionByFields?: string[], funcOrdering?: string): string;
|
|
95
95
|
generatePickSQL(pf: PickExpr): string;
|
|
96
96
|
exprToSQL(resultSet: FieldInstanceResult, context: QueryStruct, exprToTranslate: Expr, state?: GenerateState): string;
|
|
97
|
+
isNestedInParent(parentDef: FieldDef): boolean;
|
|
98
|
+
isArrayElement(parentDef: FieldDef): boolean;
|
|
97
99
|
getExpr(): Expr;
|
|
98
100
|
generateExpression(resultSet: FieldInstanceResult): string;
|
|
99
101
|
}
|
|
100
|
-
declare class QueryAtomicField extends QueryField {
|
|
102
|
+
declare class QueryAtomicField<T extends AtomicFieldDef> extends QueryField {
|
|
103
|
+
fieldDef: T;
|
|
104
|
+
constructor(fieldDef: T, parent: QueryStruct, refId?: string);
|
|
101
105
|
includeInWildcard(): boolean;
|
|
102
106
|
isCalculated(): boolean;
|
|
103
107
|
isAggregate(): boolean;
|
|
104
108
|
getFilterList(): FilterCondition[];
|
|
105
109
|
hasExpression(): boolean;
|
|
106
110
|
}
|
|
107
|
-
declare class QueryFieldBoolean extends QueryAtomicField {
|
|
111
|
+
declare class QueryFieldBoolean extends QueryAtomicField<BooleanFieldDef> {
|
|
108
112
|
}
|
|
109
113
|
type FieldUsage = {
|
|
110
114
|
type: 'result';
|
|
@@ -220,7 +224,7 @@ declare class QueryTurtle extends QueryField {
|
|
|
220
224
|
* half translated to the new world of types ..
|
|
221
225
|
*/
|
|
222
226
|
export declare class Segment {
|
|
223
|
-
static nextStructDef(structDef:
|
|
227
|
+
static nextStructDef(structDef: SourceDef, segment: PipeSegment): SourceDef;
|
|
224
228
|
}
|
|
225
229
|
type StageGroupMaping = {
|
|
226
230
|
fromGroup: number;
|
|
@@ -262,7 +266,7 @@ declare class QueryQuery extends QueryField {
|
|
|
262
266
|
prepare(_stageWriter: StageWriter | undefined): void;
|
|
263
267
|
getResultMetadata(fi: FieldInstance): ResultStructMetadataDef | ResultMetadataDef | undefined;
|
|
264
268
|
/** returns a fields and primary key of a struct for this query */
|
|
265
|
-
getResultStructDef(resultStruct?: FieldInstanceResult, isRoot?: boolean):
|
|
269
|
+
getResultStructDef(resultStruct?: FieldInstanceResult, isRoot?: boolean): SourceDef;
|
|
266
270
|
generateSQLJoinBlock(stageWriter: StageWriter, ji: JoinInstance): string;
|
|
267
271
|
generateSQLPassthroughKeys(qs: QueryStruct): string;
|
|
268
272
|
generateSQLJoins(stageWriter: StageWriter): string;
|
|
@@ -280,30 +284,28 @@ declare class QueryQuery extends QueryField {
|
|
|
280
284
|
buildDialectFieldList(resultStruct: FieldInstanceResult): DialectFieldList;
|
|
281
285
|
generateTurtleSQL(resultStruct: FieldInstanceResult, stageWriter: StageWriter, sqlFieldName: string, outputPipelinedSQL: OutputPipelinedSQL[]): string;
|
|
282
286
|
generateTurtlePipelineSQL(fi: FieldInstanceResult, stageWriter: StageWriter, sourceSQLExpression: string): {
|
|
283
|
-
structDef:
|
|
287
|
+
structDef: SourceDef;
|
|
284
288
|
pipeOut: any;
|
|
285
289
|
};
|
|
286
290
|
generateComplexSQL(stageWriter: StageWriter): string;
|
|
287
291
|
generateSQL(stageWriter: StageWriter): string;
|
|
288
|
-
toMalloy(): string;
|
|
289
292
|
generateSQLFromPipeline(stageWriter: StageWriter): {
|
|
290
293
|
lastStageName: string;
|
|
291
|
-
outputStruct:
|
|
294
|
+
outputStruct: SourceDef;
|
|
292
295
|
};
|
|
293
296
|
}
|
|
294
297
|
/** Structure object as it is used to build a query */
|
|
295
298
|
declare class QueryStruct extends QueryNode {
|
|
299
|
+
structDef: StructDef;
|
|
296
300
|
readonly sourceArguments: Record<string, Argument> | undefined;
|
|
297
|
-
readonly prepareResultOptions
|
|
298
|
-
fieldDef: StructDef;
|
|
301
|
+
readonly prepareResultOptions: PrepareResultOptions;
|
|
299
302
|
parent: QueryStruct | undefined;
|
|
300
303
|
model: QueryModel;
|
|
301
304
|
nameMap: Map<string, QuerySomething>;
|
|
302
305
|
pathAliasMap: Map<string, string>;
|
|
303
306
|
dialect: Dialect;
|
|
304
307
|
connectionName: string;
|
|
305
|
-
|
|
306
|
-
constructor(fieldDef: StructDef, sourceArguments: Record<string, Argument> | undefined, parent: ParentQueryStruct | ParentQueryModel, prepareResultOptions?: PrepareResultOptions | undefined);
|
|
308
|
+
constructor(structDef: StructDef, sourceArguments: Record<string, Argument> | undefined, parent: ParentQueryStruct | ParentQueryModel, prepareResultOptions: PrepareResultOptions, referenceId?: string);
|
|
307
309
|
maybeEmitParameterizedSourceUsage(): void;
|
|
308
310
|
resolveParentParameterReferences(param: Parameter): Parameter;
|
|
309
311
|
private _arguments;
|
|
@@ -318,7 +320,7 @@ declare class QueryStruct extends QueryNode {
|
|
|
318
320
|
getJoinableParent(): QueryStruct;
|
|
319
321
|
addFieldToNameMap(as: string, n: QuerySomething): void;
|
|
320
322
|
/** the the primary key or throw an error. */
|
|
321
|
-
getPrimaryKeyField(fieldDef: FieldDef): QueryAtomicField
|
|
323
|
+
getPrimaryKeyField(fieldDef: FieldDef): QueryAtomicField<AtomicFieldDef>;
|
|
322
324
|
/**
|
|
323
325
|
* called after all structure has been loaded. Examine this structure to see
|
|
324
326
|
* if if it is based on a query and if it is, add the output fields (unless
|
|
@@ -332,25 +334,25 @@ declare class QueryStruct extends QueryNode {
|
|
|
332
334
|
makeQueryField(field: FieldDef, referenceId?: string): QueryField;
|
|
333
335
|
structSourceSQL(stageWriter: StageWriter): string;
|
|
334
336
|
root(): QueryStruct;
|
|
335
|
-
primaryKey(): QueryAtomicField | undefined;
|
|
337
|
+
primaryKey(): QueryAtomicField<AtomicFieldDef> | undefined;
|
|
336
338
|
getChildByName(name: string): QuerySomething | undefined;
|
|
337
339
|
/** convert a path into a field reference */
|
|
338
340
|
getFieldByName(path: string[]): QuerySomething;
|
|
339
341
|
getQueryFieldByName(name: string[]): QuerySomething;
|
|
340
|
-
getQueryFieldReference(name: string[],
|
|
341
|
-
getDimensionOrMeasureByName(name: string[]): QueryAtomicField
|
|
342
|
+
getQueryFieldReference(name: string[], annotation: Annotation | undefined): QuerySomething;
|
|
343
|
+
getDimensionOrMeasureByName(name: string[]): QueryAtomicField<AtomicFieldDef>;
|
|
342
344
|
/** returns a query object for the given name */
|
|
343
|
-
getDimensionByName(name: string[]): QueryAtomicField
|
|
345
|
+
getDimensionByName(name: string[]): QueryAtomicField<AtomicFieldDef>;
|
|
344
346
|
/** returns a query object for the given name */
|
|
345
347
|
getStructByName(name: string[]): QueryStruct;
|
|
346
|
-
getDistinctKey(): QueryAtomicField
|
|
348
|
+
getDistinctKey(): QueryAtomicField<AtomicFieldDef>;
|
|
347
349
|
applyStructFiltersToTurtleDef(turtleDef: TurtleDef | TurtleDefPlus): TurtleDef;
|
|
348
350
|
}
|
|
349
351
|
/** the resulting SQL and the shape of the data at each stage of the pipeline */
|
|
350
352
|
interface QueryResults {
|
|
351
353
|
lastStageName: string;
|
|
352
354
|
stageWriter: StageWriter;
|
|
353
|
-
structs:
|
|
355
|
+
structs: SourceDef[];
|
|
354
356
|
malloy: string;
|
|
355
357
|
connectionName: string;
|
|
356
358
|
}
|