@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.
Files changed (144) hide show
  1. package/dist/connection/base_connection.d.ts +21 -7
  2. package/dist/connection/base_connection.js +62 -0
  3. package/dist/connection/types.d.ts +5 -5
  4. package/dist/dialect/dialect.d.ts +5 -3
  5. package/dist/dialect/dialect.js +15 -0
  6. package/dist/dialect/duckdb/duckdb.d.ts +3 -3
  7. package/dist/dialect/duckdb/duckdb.js +8 -3
  8. package/dist/dialect/postgres/postgres.d.ts +3 -3
  9. package/dist/dialect/postgres/postgres.js +5 -2
  10. package/dist/dialect/snowflake/snowflake.d.ts +3 -3
  11. package/dist/dialect/snowflake/snowflake.js +4 -1
  12. package/dist/dialect/standardsql/standardsql.d.ts +3 -3
  13. package/dist/dialect/standardsql/standardsql.js +5 -2
  14. package/dist/dialect/trino/trino.d.ts +3 -3
  15. package/dist/dialect/trino/trino.js +35 -3
  16. package/dist/index.d.ts +4 -4
  17. package/dist/index.js +6 -2
  18. package/dist/lang/ast/error-factory.d.ts +4 -3
  19. package/dist/lang/ast/error-factory.js +27 -17
  20. package/dist/lang/ast/expressions/constant-expression.d.ts +1 -0
  21. package/dist/lang/ast/expressions/constant-expression.js +3 -0
  22. package/dist/lang/ast/expressions/expr-aggregate-function.d.ts +3 -7
  23. package/dist/lang/ast/expressions/expr-aggregate-function.js +50 -54
  24. package/dist/lang/ast/expressions/expr-cast.js +2 -4
  25. package/dist/lang/ast/expressions/expr-func.js +1 -1
  26. package/dist/lang/ast/expressions/expr-granular-time.js +1 -1
  27. package/dist/lang/ast/expressions/expr-record-literal.d.ts +16 -0
  28. package/dist/lang/ast/expressions/expr-record-literal.js +57 -0
  29. package/dist/lang/ast/expressions/expr-time-extract.js +3 -3
  30. package/dist/lang/ast/expressions/expr-time.d.ts +3 -3
  31. package/dist/lang/ast/expressions/expr-time.js +1 -1
  32. package/dist/lang/ast/expressions/time-literal.d.ts +6 -6
  33. package/dist/lang/ast/expressions/time-literal.js +1 -1
  34. package/dist/lang/ast/field-space/column-space-field.d.ts +6 -5
  35. package/dist/lang/ast/field-space/column-space-field.js +7 -4
  36. package/dist/lang/ast/field-space/dynamic-space.d.ts +8 -6
  37. package/dist/lang/ast/field-space/dynamic-space.js +35 -11
  38. package/dist/lang/ast/field-space/index-field-space.js +6 -3
  39. package/dist/lang/ast/field-space/ir-view-field.d.ts +1 -0
  40. package/dist/lang/ast/field-space/ir-view-field.js +3 -1
  41. package/dist/lang/ast/field-space/join-space-field.d.ts +2 -2
  42. package/dist/lang/ast/field-space/join-space-field.js +2 -2
  43. package/dist/lang/ast/field-space/parameter-space.d.ts +1 -0
  44. package/dist/lang/ast/field-space/parameter-space.js +4 -1
  45. package/dist/lang/ast/field-space/query-input-space.d.ts +4 -4
  46. package/dist/lang/ast/field-space/query-input-space.js +3 -5
  47. package/dist/lang/ast/field-space/query-spaces.d.ts +4 -4
  48. package/dist/lang/ast/field-space/query-spaces.js +1 -1
  49. package/dist/lang/ast/field-space/reference-field.js +10 -8
  50. package/dist/lang/ast/field-space/refined-space.d.ts +2 -2
  51. package/dist/lang/ast/field-space/static-space.d.ts +14 -5
  52. package/dist/lang/ast/field-space/static-space.js +45 -20
  53. package/dist/lang/ast/field-space/struct-space-field-base.d.ts +6 -5
  54. package/dist/lang/ast/field-space/struct-space-field-base.js +12 -4
  55. package/dist/lang/ast/index.d.ts +2 -1
  56. package/dist/lang/ast/index.js +2 -1
  57. package/dist/lang/ast/query-builders/index-builder.d.ts +2 -2
  58. package/dist/lang/ast/query-builders/project-builder.d.ts +2 -2
  59. package/dist/lang/ast/query-builders/reduce-builder.d.ts +2 -2
  60. package/dist/lang/ast/query-elements/query-arrow.js +2 -2
  61. package/dist/lang/ast/query-elements/query-head-struct.d.ts +2 -2
  62. package/dist/lang/ast/query-elements/query-head-struct.js +2 -2
  63. package/dist/lang/ast/query-elements/query-raw.js +2 -2
  64. package/dist/lang/ast/query-elements/query-reference.js +1 -1
  65. package/dist/lang/ast/query-items/field-declaration.d.ts +8 -6
  66. package/dist/lang/ast/query-items/field-declaration.js +66 -24
  67. package/dist/lang/ast/query-properties/qop-desc.d.ts +2 -2
  68. package/dist/lang/ast/query-properties/qop-desc.js +1 -1
  69. package/dist/lang/ast/source-elements/named-source.d.ts +4 -4
  70. package/dist/lang/ast/source-elements/named-source.js +16 -8
  71. package/dist/lang/ast/source-elements/query-source.d.ts +3 -3
  72. package/dist/lang/ast/source-elements/query-source.js +5 -2
  73. package/dist/lang/ast/source-elements/refined-source.d.ts +3 -3
  74. package/dist/lang/ast/source-elements/refined-source.js +4 -4
  75. package/dist/lang/ast/source-elements/source.d.ts +2 -2
  76. package/dist/lang/ast/source-elements/source.js +2 -2
  77. package/dist/lang/ast/source-elements/sql-source.d.ts +4 -4
  78. package/dist/lang/ast/source-elements/sql-source.js +6 -6
  79. package/dist/lang/ast/source-elements/table-source.d.ts +2 -2
  80. package/dist/lang/ast/source-elements/table-source.js +1 -1
  81. package/dist/lang/ast/source-properties/{joins.d.ts → join.d.ts} +11 -14
  82. package/dist/lang/ast/source-properties/{joins.js → join.js} +35 -52
  83. package/dist/lang/ast/source-query-elements/sq-reference.js +6 -5
  84. package/dist/lang/ast/sql-elements/sql-string.d.ts +2 -2
  85. package/dist/lang/ast/statements/define-source.js +1 -1
  86. package/dist/lang/ast/struct-utils.d.ts +3 -3
  87. package/dist/lang/ast/struct-utils.js +12 -3
  88. package/dist/lang/ast/time-utils.d.ts +3 -3
  89. package/dist/lang/ast/types/document-compile-result.d.ts +2 -2
  90. package/dist/lang/ast/types/expression-def.js +4 -4
  91. package/dist/lang/ast/types/field-space.d.ts +8 -3
  92. package/dist/lang/ast/types/lookup-result.d.ts +8 -5
  93. package/dist/lang/ast/types/malloy-element.d.ts +3 -3
  94. package/dist/lang/ast/types/malloy-element.js +10 -21
  95. package/dist/lang/ast/types/op-desc.d.ts +2 -2
  96. package/dist/lang/ast/types/pipeline-comp.d.ts +2 -2
  97. package/dist/lang/ast/types/query-comp.d.ts +3 -3
  98. package/dist/lang/ast/types/query-extend-property.d.ts +1 -2
  99. package/dist/lang/ast/types/query-extend-property.js +4 -2
  100. package/dist/lang/ast/types/source-property.d.ts +2 -2
  101. package/dist/lang/ast/types/source-property.js +2 -2
  102. package/dist/lang/ast/types/space-field.d.ts +10 -3
  103. package/dist/lang/ast/types/space-field.js +11 -2
  104. package/dist/lang/ast/types/time-result.d.ts +2 -2
  105. package/dist/lang/ast/view-elements/qop-desc-view.d.ts +3 -3
  106. package/dist/lang/ast/view-elements/qop-desc-view.js +1 -1
  107. package/dist/lang/ast/view-elements/reference-view.d.ts +4 -4
  108. package/dist/lang/ast/view-elements/reference-view.js +2 -6
  109. package/dist/lang/ast/view-elements/view-refine.d.ts +2 -2
  110. package/dist/lang/index.d.ts +1 -1
  111. package/dist/lang/lib/Malloy/MalloyParser.d.ts +54 -21
  112. package/dist/lang/lib/Malloy/MalloyParser.js +1647 -1457
  113. package/dist/lang/lib/Malloy/MalloyParserListener.d.ts +57 -9
  114. package/dist/lang/lib/Malloy/MalloyParserVisitor.d.ts +35 -5
  115. package/dist/lang/malloy-to-ast.d.ts +4 -4
  116. package/dist/lang/malloy-to-ast.js +32 -4
  117. package/dist/lang/parse-log.d.ts +5 -9
  118. package/dist/lang/parse-malloy.d.ts +10 -10
  119. package/dist/lang/parse-malloy.js +2 -1
  120. package/dist/lang/test/annotation.spec.js +7 -1
  121. package/dist/lang/test/field-symbols.spec.js +21 -25
  122. package/dist/lang/test/imports.spec.js +12 -10
  123. package/dist/lang/test/lenses.spec.js +2 -2
  124. package/dist/lang/test/model_serialization.spec.d.ts +4 -4
  125. package/dist/lang/test/model_serialization.spec.js +19 -31
  126. package/dist/lang/test/parse.spec.js +3 -4
  127. package/dist/lang/test/query.spec.js +3 -2
  128. package/dist/lang/test/source.spec.js +7 -0
  129. package/dist/lang/test/sql-block.spec.js +8 -19
  130. package/dist/lang/test/test-translator.d.ts +4 -4
  131. package/dist/lang/test/test-translator.js +53 -61
  132. package/dist/lang/translate-response.d.ts +3 -3
  133. package/dist/malloy.d.ts +31 -149
  134. package/dist/malloy.js +109 -267
  135. package/dist/model/malloy_query.d.ts +25 -23
  136. package/dist/model/malloy_query.js +262 -323
  137. package/dist/model/malloy_types.d.ts +145 -155
  138. package/dist/model/malloy_types.js +81 -84
  139. package/dist/model/sql_block.d.ts +4 -4
  140. package/dist/model/sql_block.js +9 -12
  141. package/dist/tags.js +2 -2
  142. package/package.json +1 -1
  143. package/dist/lang/ast/space-seed.d.ts +0 -16
  144. 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
- fieldDef: FieldDef;
60
- constructor(fieldDef: FieldDef);
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: StructDef, segment: PipeSegment): 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): StructDef;
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: 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: StructDef;
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?: PrepareResultOptions | undefined;
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
- readonly stacki: string;
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[], refAnnoatation: Annotation | undefined): QuerySomething;
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: StructDef[];
355
+ structs: SourceDef[];
354
356
  malloy: string;
355
357
  connectionName: string;
356
358
  }