@malloydata/malloy 0.0.303 → 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
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import type { FieldDef, BooleanFieldDef, DateFieldDef, StringFieldDef, JSONFieldDef, NumberFieldDef, TimestampFieldDef, NativeUnsupportedFieldDef, JoinFieldDef, Argument, PrepareResultOptions, AtomicFieldDef, BasicAtomicDef, FilterCondition, RefToField, StructDef, TurtleDef, TurtleDefPlusFilters, SourceDef, Query } from './malloy_types';
|
|
2
|
+
import type { EventStream } from '../runtime_types';
|
|
3
|
+
import type { Tag } from '@malloydata/malloy-tag';
|
|
4
|
+
import type { Dialect } from '../dialect';
|
|
5
|
+
declare abstract class QueryNode {
|
|
6
|
+
readonly referenceId: string;
|
|
7
|
+
constructor(referenceId?: string);
|
|
8
|
+
abstract getIdentifier(): string;
|
|
9
|
+
getChildByName(_name: string): QueryField | undefined;
|
|
10
|
+
}
|
|
11
|
+
export declare class QueryField extends QueryNode {
|
|
12
|
+
fieldDef: FieldDef;
|
|
13
|
+
parent: QueryStruct;
|
|
14
|
+
constructor(fieldDef: FieldDef, parent: QueryStruct, referenceId?: string);
|
|
15
|
+
getIdentifier(): string;
|
|
16
|
+
getJoinableParent(): QueryStruct;
|
|
17
|
+
isAtomic(): boolean;
|
|
18
|
+
getFullOutputName(): string;
|
|
19
|
+
isNestedInParent(parentDef: FieldDef): boolean;
|
|
20
|
+
isArrayElement(parentDef: FieldDef): boolean;
|
|
21
|
+
includeInWildcard(): boolean;
|
|
22
|
+
}
|
|
23
|
+
export declare abstract class QueryAtomicField<T extends AtomicFieldDef> extends QueryField {
|
|
24
|
+
fieldDef: T;
|
|
25
|
+
constructor(fieldDef: T, parent: QueryStruct, refId?: string);
|
|
26
|
+
includeInWildcard(): boolean;
|
|
27
|
+
getFilterList(): FilterCondition[];
|
|
28
|
+
}
|
|
29
|
+
export declare class QueryFieldBoolean extends QueryAtomicField<BooleanFieldDef> {
|
|
30
|
+
}
|
|
31
|
+
export declare class QueryFieldDate extends QueryAtomicField<DateFieldDef> {
|
|
32
|
+
}
|
|
33
|
+
export declare class QueryFieldDistinctKey extends QueryAtomicField<StringFieldDef> {
|
|
34
|
+
}
|
|
35
|
+
export declare class QueryFieldJSON extends QueryAtomicField<JSONFieldDef> {
|
|
36
|
+
}
|
|
37
|
+
export declare class QueryFieldNumber extends QueryAtomicField<NumberFieldDef> {
|
|
38
|
+
}
|
|
39
|
+
export declare class QueryFieldString extends QueryAtomicField<StringFieldDef> {
|
|
40
|
+
}
|
|
41
|
+
export declare class QueryFieldStruct extends QueryField {
|
|
42
|
+
queryStruct: QueryStruct;
|
|
43
|
+
fieldDef: JoinFieldDef;
|
|
44
|
+
constructor(jfd: JoinFieldDef, sourceArguments: Record<string, Argument> | undefined, parent: QueryStruct, prepareResultOptions: PrepareResultOptions, referenceId?: string);
|
|
45
|
+
getJoinableParent(): QueryStruct;
|
|
46
|
+
getFullOutputName(): string;
|
|
47
|
+
includeInWildcard(): boolean;
|
|
48
|
+
}
|
|
49
|
+
export declare class QueryFieldTimestamp extends QueryAtomicField<TimestampFieldDef> {
|
|
50
|
+
}
|
|
51
|
+
export declare class QueryFieldUnsupported extends QueryAtomicField<NativeUnsupportedFieldDef> {
|
|
52
|
+
}
|
|
53
|
+
export type QueryBasicField = QueryAtomicField<BasicAtomicDef>;
|
|
54
|
+
export declare function isAggregateField(f: QueryField): boolean;
|
|
55
|
+
export declare function isCalculatedField(f: QueryField): boolean;
|
|
56
|
+
export declare function isScalarField(f: QueryField): boolean;
|
|
57
|
+
export declare function isBasicAggregate(f: QueryField): f is QueryBasicField;
|
|
58
|
+
export declare function isBasicCalculation(f: QueryField): f is QueryBasicField;
|
|
59
|
+
export declare function isBasicScalar(f: QueryField): f is QueryBasicField;
|
|
60
|
+
export interface ParentQueryStruct {
|
|
61
|
+
struct: QueryStruct;
|
|
62
|
+
}
|
|
63
|
+
export interface ModelRootInterface {
|
|
64
|
+
eventStream?: EventStream;
|
|
65
|
+
}
|
|
66
|
+
export interface ParentQueryModel {
|
|
67
|
+
model: ModelRootInterface;
|
|
68
|
+
}
|
|
69
|
+
/** Structure object as it is used to build a query */
|
|
70
|
+
export declare class QueryStruct {
|
|
71
|
+
structDef: StructDef;
|
|
72
|
+
readonly sourceArguments: Record<string, Argument> | undefined;
|
|
73
|
+
readonly prepareResultOptions: PrepareResultOptions;
|
|
74
|
+
parent: QueryStruct | undefined;
|
|
75
|
+
model: ModelRootInterface;
|
|
76
|
+
nameMap: Map<string, QueryField>;
|
|
77
|
+
pathAliasMap: Map<string, string>;
|
|
78
|
+
dialect: Dialect;
|
|
79
|
+
connectionName: string;
|
|
80
|
+
recordAlias?: string;
|
|
81
|
+
constructor(structDef: StructDef, sourceArguments: Record<string, Argument> | undefined, parent: ParentQueryStruct | ParentQueryModel, prepareResultOptions: PrepareResultOptions);
|
|
82
|
+
private static turtleFieldMaker;
|
|
83
|
+
static registerTurtleFieldMaker(maker: (field: TurtleDef, parent: QueryStruct) => QueryField): void;
|
|
84
|
+
private _modelTag;
|
|
85
|
+
modelCompilerFlags(): Tag;
|
|
86
|
+
protected findFirstDialect(): string;
|
|
87
|
+
informOfAliasValue(av: string): void;
|
|
88
|
+
maybeEmitParameterizedSourceUsage(): void;
|
|
89
|
+
private resolveParentParameterReferences;
|
|
90
|
+
private _arguments;
|
|
91
|
+
arguments(): Record<string, Argument>;
|
|
92
|
+
private addFieldsFromFieldList;
|
|
93
|
+
getAliasIdentifier(): string;
|
|
94
|
+
getSQLIdentifier(): string;
|
|
95
|
+
sqlSimpleChildReference(name: string): string;
|
|
96
|
+
getIdentifier(): string;
|
|
97
|
+
getFullOutputName(): string;
|
|
98
|
+
unnestWithNumbers(): boolean;
|
|
99
|
+
getJoinableParent(): QueryStruct;
|
|
100
|
+
addFieldToNameMap(as: string, n: QueryField): void;
|
|
101
|
+
/** the the primary key or throw an error. */
|
|
102
|
+
getPrimaryKeyField(fieldDef: FieldDef): QueryBasicField;
|
|
103
|
+
/**
|
|
104
|
+
* called after all structure has been loaded. Examine this structure to see
|
|
105
|
+
* if if it is based on a query and if it is, add the output fields (unless
|
|
106
|
+
* they exist) to the structure.
|
|
107
|
+
*
|
|
108
|
+
* finalOutputStruct exists so that query_node doesn't need to
|
|
109
|
+
* to import query_query
|
|
110
|
+
*/
|
|
111
|
+
resolveQueryFields(finalOutputStruct: (query: Query, options: PrepareResultOptions | undefined) => SourceDef | undefined): void;
|
|
112
|
+
getModel(): ModelRootInterface;
|
|
113
|
+
get eventStream(): EventStream | undefined;
|
|
114
|
+
setParent(parent: ParentQueryStruct | ParentQueryModel): void;
|
|
115
|
+
/** makes a new queryable field object from a fieldDef */
|
|
116
|
+
makeQueryField(field: FieldDef, referenceId?: string): QueryField;
|
|
117
|
+
root(): QueryStruct;
|
|
118
|
+
primaryKey(): QueryBasicField | undefined;
|
|
119
|
+
getChildByName(name: string): QueryField | undefined;
|
|
120
|
+
/** convert a path into a field reference */
|
|
121
|
+
getFieldByName(path: string[]): QueryField;
|
|
122
|
+
getQueryFieldByName(name: string[]): QueryField;
|
|
123
|
+
getQueryFieldReference(f: RefToField): QueryField;
|
|
124
|
+
getDimensionOrMeasureByName(name: string[]): QueryField;
|
|
125
|
+
/** returns a query object for the given name */
|
|
126
|
+
getDimensionByName(name: string[]): QueryBasicField;
|
|
127
|
+
/** returns a query object for the given name */
|
|
128
|
+
getStructByName(name: string[]): QueryStruct;
|
|
129
|
+
getDistinctKey(): QueryBasicField;
|
|
130
|
+
applyStructFiltersToTurtleDef(turtleDef: TurtleDef | TurtleDefPlusFilters): TurtleDef;
|
|
131
|
+
}
|
|
132
|
+
export {};
|