@malloydata/malloy 0.0.119-dev240123183113 → 0.0.119-dev240124170348

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 (52) hide show
  1. package/dist/index.d.ts +2 -2
  2. package/dist/index.js +1 -3
  3. package/dist/lang/ast/error-factory.js +3 -3
  4. package/dist/lang/ast/expressions/expr-aggregate-function.d.ts +6 -4
  5. package/dist/lang/ast/expressions/expr-aggregate-function.js +24 -13
  6. package/dist/lang/ast/expressions/expr-count.js +1 -1
  7. package/dist/lang/ast/expressions/expr-func.js +4 -4
  8. package/dist/lang/ast/expressions/expr-id-reference.js +2 -2
  9. package/dist/lang/ast/field-space/dynamic-space.js +1 -1
  10. package/dist/lang/ast/field-space/index-field-space.d.ts +5 -3
  11. package/dist/lang/ast/field-space/index-field-space.js +85 -16
  12. package/dist/lang/ast/field-space/query-input-space.d.ts +3 -3
  13. package/dist/lang/ast/field-space/query-spaces.d.ts +15 -12
  14. package/dist/lang/ast/field-space/query-spaces.js +60 -57
  15. package/dist/lang/ast/field-space/reference-field.d.ts +0 -5
  16. package/dist/lang/ast/field-space/reference-field.js +16 -46
  17. package/dist/lang/ast/query-builders/index-builder.d.ts +2 -2
  18. package/dist/lang/ast/query-builders/partial-builder.js +28 -1
  19. package/dist/lang/ast/query-builders/project-builder.d.ts +8 -4
  20. package/dist/lang/ast/query-builders/project-builder.js +5 -6
  21. package/dist/lang/ast/query-builders/reduce-builder.d.ts +13 -8
  22. package/dist/lang/ast/query-builders/reduce-builder.js +12 -9
  23. package/dist/lang/ast/query-items/field-declaration.d.ts +1 -1
  24. package/dist/lang/ast/query-items/field-references.d.ts +5 -1
  25. package/dist/lang/ast/query-items/field-references.js +17 -1
  26. package/dist/lang/ast/query-properties/qop-desc.d.ts +2 -2
  27. package/dist/lang/ast/source-properties/joins.js +1 -1
  28. package/dist/lang/ast/types/field-space.d.ts +2 -2
  29. package/dist/lang/ast/types/query-builder.d.ts +2 -2
  30. package/dist/lang/ast/view-elements/qop-desc-view.d.ts +3 -3
  31. package/dist/lang/ast/view-elements/reference-view.d.ts +3 -3
  32. package/dist/lang/ast/view-elements/reference-view.js +1 -1
  33. package/dist/lang/ast/view-elements/refine-utils.js +20 -18
  34. package/dist/lang/ast/view-elements/view-arrow.d.ts +2 -2
  35. package/dist/lang/ast/view-elements/view-refine.d.ts +3 -3
  36. package/dist/lang/ast/view-elements/view.d.ts +4 -4
  37. package/dist/lang/field-utils.d.ts +3 -3
  38. package/dist/lang/field-utils.js +9 -8
  39. package/dist/lang/test/annotation.spec.js +26 -27
  40. package/dist/lang/test/expressions.spec.js +43 -40
  41. package/dist/lang/test/field-symbols.spec.js +4 -4
  42. package/dist/lang/test/locations.spec.js +13 -6
  43. package/dist/lang/test/query.spec.js +44 -56
  44. package/dist/lang/test/test-translator.d.ts +3 -2
  45. package/dist/lang/test/test-translator.js +30 -24
  46. package/dist/malloy.js +1 -1
  47. package/dist/model/malloy_query.d.ts +14 -36
  48. package/dist/model/malloy_query.js +145 -312
  49. package/dist/model/malloy_types.d.ts +18 -23
  50. package/dist/model/malloy_types.js +2 -15
  51. package/dist/tags.js +19 -4
  52. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { Dialect, DialectFieldList } from '../dialect';
2
- import { AggregateFragment, AggregateFunctionType, CompiledQuery, DialectFragment, Expr, FieldDef, FieldFragment, FieldRef, FieldReferenceFragment, Filtered, FilterExpression, FilterFragment, FunctionCallFragment, FunctionOverloadDef, JoinRelationship, ModelDef, OrderBy, OutputFieldFragment, Parameter, ParameterFragment, PipeSegment, Query, QueryFieldDef, QuerySegment, ResultMetadataDef, ResultStructMetadataDef, SearchIndexResult, SourceReferenceFragment, SpreadFragment, SQLExpressionFragment, SqlStringFragment, StructDef, StructRef, TurtleDef, UngroupFragment } from './malloy_types';
2
+ import { AggregateFragment, AggregateFunctionType, Annotation, CompiledQuery, DialectFragment, Expr, FieldDef, FieldFragment, Filtered, FilterExpression, FilterFragment, FunctionCallFragment, FunctionOverloadDef, JoinRelationship, ModelDef, OrderBy, OutputFieldFragment, Parameter, ParameterFragment, PipeSegment, Query, QueryFieldDef, QuerySegment, ResultMetadataDef, ResultStructMetadataDef, SearchIndexResult, SourceReferenceFragment, SegmentFieldDef, SpreadFragment, SQLExpressionFragment, SqlStringFragment, StructDef, StructRef, TurtleDef, UngroupFragment } from './malloy_types';
3
3
  import { Connection } from '../runtime_types';
4
4
  import { AndChain } from './utils';
5
5
  import { QueryInfo } from '../dialect/dialect';
@@ -73,17 +73,16 @@ declare class QueryField extends QueryNode {
73
73
  private expandFunctionCall;
74
74
  generateFunctionCallExpression(resultSet: FieldInstanceResult, context: QueryStruct, frag: FunctionCallFragment, state: GenerateState): string;
75
75
  generateSpread(_resultSet: FieldInstanceResult, _context: QueryStruct, _frag: SpreadFragment, _state: GenerateState): string;
76
- generateParameterFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: ParameterFragment, state: GenerateState): string;
76
+ generateParameterFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: ParameterFragment, _state: GenerateState): string;
77
77
  generateFilterFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: FilterFragment, state: GenerateState): string;
78
78
  generateDimFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: Expr, state: GenerateState): string;
79
79
  generateUngroupedFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: UngroupFragment, state: GenerateState): string;
80
- generateDistinctKeyIfNecessary(resultSet: FieldInstanceResult, context: QueryStruct, structPath: string | undefined): string | undefined;
80
+ generateDistinctKeyIfNecessary(resultSet: FieldInstanceResult, context: QueryStruct, structPath: string[] | undefined): string | undefined;
81
81
  generateSumFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateFragment, state: GenerateState): string;
82
82
  generateSymmetricFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateFragment, state: GenerateState): string;
83
83
  generateAvgFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateFragment, state: GenerateState): string;
84
84
  generateCountFragment(resultSet: FieldInstanceResult, context: QueryStruct, expr: AggregateFragment, state: GenerateState): string;
85
85
  generateDialect(resultSet: FieldInstanceResult, context: QueryStruct, expr: DialectFragment, state: GenerateState): string;
86
- generateFieldReference(resultSet: FieldInstanceResult, context: QueryStruct, expr: FieldReferenceFragment, state: GenerateState): string;
87
86
  generateSqlString(resultSet: FieldInstanceResult, context: QueryStruct, expr: SqlStringFragment, state: GenerateState): string;
88
87
  generateSourceReference(resultSet: FieldInstanceResult, context: QueryStruct, expr: SourceReferenceFragment): string;
89
88
  getAnalyticPartitions(resultStruct: FieldInstanceResult): string;
@@ -101,12 +100,6 @@ declare class QueryAtomicField extends QueryField {
101
100
  }
102
101
  declare class QueryFieldBoolean extends QueryAtomicField {
103
102
  }
104
- declare class QueryFieldStruct extends QueryAtomicField {
105
- primaryKey: string;
106
- constructor(fieldDef: FieldDef, parent: QueryStruct, primaryKey: string);
107
- getName(): string;
108
- getAsJoinedStructDef(foreignKeyName: string): StructDef;
109
- }
110
103
  type FieldUsage = {
111
104
  type: 'result';
112
105
  resultIndex: number;
@@ -243,17 +236,14 @@ declare class QueryQuery extends QueryField {
243
236
  constructor(fieldDef: TurtleDef, parent: QueryStruct, stageWriter: StageWriter | undefined, isJoinedSubquery: boolean);
244
237
  static makeQuery(fieldDef: TurtleDef, parentStruct: QueryStruct, stageWriter: StageWriter | undefined, isJoinedSubquery: boolean): QueryQuery;
245
238
  inNestedPipeline(): boolean;
246
- getFieldList(): QueryFieldDef[];
247
239
  expandField(f: QueryFieldDef): {
248
- as: any;
240
+ as: string;
249
241
  field: QuerySomething;
250
242
  };
251
- expandDependantField(resultStruct: FieldInstanceResult, fieldRef: FieldRef): void;
252
- expandWildCardStruct(struct: QueryStruct, expandChildren: boolean, filter?: ((qf: QueryNode) => boolean) | undefined): string[];
253
- expandWildCards(fields: QueryFieldDef[], filter?: ((qf: QueryNode) => boolean) | undefined): QueryFieldDef[];
254
- addDependantPath(resultStruct: FieldInstanceResult, context: QueryStruct, path: string, uniqueKeyPossibleUse: UniqueKeyPossibleUse | undefined, joinStack: string[]): void;
243
+ addDependantPath(resultStruct: FieldInstanceResult, context: QueryStruct, path: string[], uniqueKeyPossibleUse: UniqueKeyPossibleUse | undefined, joinStack: string[]): void;
255
244
  addDependantExpr(resultStruct: FieldInstanceResult, context: QueryStruct, e: Expr, joinStack: string[]): void;
256
245
  addDependancies(resultStruct: FieldInstanceResult, field: QueryField): void;
246
+ getSegmentFields(resultStruct: FieldInstanceResult): SegmentFieldDef[];
257
247
  expandFields(resultStruct: FieldInstanceResult): void;
258
248
  expandFilters(resultStruct: FieldInstanceResult): void;
259
249
  generateSQLFilters(resultStruct: FieldInstanceResult, which: 'where' | 'having', filterList?: FilterExpression[] | undefined): AndChain;
@@ -301,7 +291,6 @@ declare class QueryStruct extends QueryNode {
301
291
  parameters(): Record<string, Parameter>;
302
292
  addFieldsFromFieldList(fields: FieldDef[]): void;
303
293
  getAliasIdentifier(): string;
304
- getAsQueryField(): QueryFieldStruct;
305
294
  getSQLIdentifier(): string;
306
295
  getIdentifier(): string;
307
296
  getFullOutputName(): string;
@@ -310,7 +299,7 @@ declare class QueryStruct extends QueryNode {
310
299
  getJoinableParent(): QueryStruct;
311
300
  addFieldToNameMap(as: string, n: QuerySomething): void;
312
301
  /** the the primary key or throw an error. */
313
- getPrimaryKeyField(fieldDef: FieldDef): any;
302
+ getPrimaryKeyField(fieldDef: FieldDef): QueryAtomicField;
314
303
  /**
315
304
  * called after all structure has been loaded. Examine this structure to see
316
305
  * if if it is based on a query and if it is, add the output fields (unless
@@ -321,26 +310,19 @@ declare class QueryStruct extends QueryNode {
321
310
  setParent(parent: ParentQueryStruct | ParentQueryModel): void;
322
311
  /** makes a new queryable field object from a fieldDef */
323
312
  makeQueryField(field: FieldDef): QueryField;
324
- /**
325
- * return a field if it exists, make one if we are passed a field definition.
326
- */
327
- getOrMakeField(fieldRef: FieldRef): QuerySomething;
328
- /** returns a dimension for the given name or make one. */
329
- getOrMakeDimension(fieldRef: FieldRef): QueryAtomicField;
330
313
  structSourceSQL(stageWriter: StageWriter): string;
331
314
  root(): QueryStruct;
332
315
  primaryKey(): QueryAtomicField | undefined;
333
- /** get the componennts of a field path */
334
- static resolvePath(name: string): string[];
335
316
  getChildByName(name: string): QuerySomething | undefined;
336
- /** convert a name into a field reference */
337
- getFieldByName(name: string): QuerySomething;
338
- getQueryFieldByName(name: string): QuerySomething;
339
- getDimensionOrMeasureByName(name: string): QueryAtomicField;
317
+ /** convert a path into a field reference */
318
+ getFieldByName(path: string[]): QuerySomething;
319
+ getQueryFieldByName(name: string[]): QuerySomething;
320
+ getQueryFieldReference(name: string[], refAnnoatation: Annotation | undefined): QuerySomething;
321
+ getDimensionOrMeasureByName(name: string[]): QueryAtomicField;
340
322
  /** returns a query object for the given name */
341
- getDimensionByName(name: string): QueryAtomicField;
323
+ getDimensionByName(name: string[]): QueryAtomicField;
342
324
  /** returns a query object for the given name */
343
- getStructByName(name: string): QueryStruct;
325
+ getStructByName(name: string[]): QueryStruct;
344
326
  getDistinctKey(): QueryAtomicField;
345
327
  applyStructFiltersToTurtleDef(turtleDef: TurtleDef | TurtleDefPlus): TurtleDef;
346
328
  }
@@ -359,10 +341,6 @@ export declare class QueryModel {
359
341
  structs: Map<string, QueryStruct>;
360
342
  constructor(modelDef: ModelDef | undefined);
361
343
  loadModelFromDef(modelDef: ModelDef): void;
362
- parseQueryPath(name: string): {
363
- struct: QueryStruct;
364
- queryName: string;
365
- };
366
344
  getStructByName(name: string): QueryStruct;
367
345
  getStructFromRef(structRef: StructRef): QueryStruct;
368
346
  loadQuery(query: Query, stageWriter: StageWriter | undefined, emitFinalStage?: boolean, isJoinedSubquery?: boolean): QueryResults;