@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.
Files changed (74) hide show
  1. package/dist/dialect/dialect.d.ts +1 -1
  2. package/dist/dialect/duckdb/duckdb.d.ts +1 -1
  3. package/dist/dialect/duckdb/duckdb.js +2 -6
  4. package/dist/dialect/mysql/mysql.d.ts +1 -1
  5. package/dist/dialect/mysql/mysql.js +2 -6
  6. package/dist/dialect/postgres/postgres.d.ts +1 -1
  7. package/dist/dialect/postgres/postgres.js +2 -6
  8. package/dist/dialect/snowflake/snowflake.d.ts +1 -1
  9. package/dist/dialect/snowflake/snowflake.js +2 -5
  10. package/dist/dialect/standardsql/standardsql.d.ts +1 -1
  11. package/dist/dialect/standardsql/standardsql.js +2 -6
  12. package/dist/dialect/trino/trino.d.ts +1 -1
  13. package/dist/dialect/trino/trino.js +2 -6
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.js +2 -3
  16. package/dist/lang/ast/expressions/expr-aggregate-function.js +12 -2
  17. package/dist/lang/ast/expressions/expr-count.js +3 -1
  18. package/dist/lang/ast/expressions/expr-func.js +34 -10
  19. package/dist/lang/ast/expressions/expr-props.js +1 -1
  20. package/dist/lang/ast/expressions/expr-ungroup.js +7 -3
  21. package/dist/lang/ast/expressions/function-ordering.d.ts +19 -5
  22. package/dist/lang/ast/expressions/function-ordering.js +61 -9
  23. package/dist/lang/ast/field-space/include-utils.js +1 -1
  24. package/dist/lang/ast/field-space/index-field-space.js +3 -1
  25. package/dist/lang/ast/field-space/query-spaces.js +20 -11
  26. package/dist/lang/ast/query-builders/index-builder.js +1 -1
  27. package/dist/lang/ast/query-builders/reduce-builder.js +1 -1
  28. package/dist/lang/ast/query-elements/query-arrow.js +14 -4
  29. package/dist/lang/ast/query-elements/query-base.d.ts +1 -0
  30. package/dist/lang/ast/query-elements/query-base.js +14 -4
  31. package/dist/lang/ast/query-elements/query-refine.js +2 -0
  32. package/dist/lang/ast/query-properties/drill.js +1 -1
  33. package/dist/lang/ast/source-properties/join.js +6 -2
  34. package/dist/lang/ast/statements/define-source.js +1 -1
  35. package/dist/lang/ast/types/expr-value.js +1 -1
  36. package/dist/lang/ast/view-elements/reference-view.js +4 -1
  37. package/dist/lang/ast/view-elements/refine-utils.js +1 -1
  38. package/dist/{model/composite_source_utils.d.ts → lang/composite-source-utils.d.ts} +4 -17
  39. package/dist/{model/composite_source_utils.js → lang/composite-source-utils.js} +274 -44
  40. package/dist/lang/test/parse-expects.d.ts +1 -1
  41. package/dist/lang/test/parse-expects.js +6 -2
  42. package/dist/lang/test/test-translator.js +1 -1
  43. package/dist/malloy.js +1 -1
  44. package/dist/model/expression_compiler.d.ts +27 -0
  45. package/dist/model/expression_compiler.js +780 -0
  46. package/dist/model/field_instance.d.ts +108 -0
  47. package/dist/model/field_instance.js +520 -0
  48. package/dist/model/index.d.ts +5 -1
  49. package/dist/model/index.js +25 -4
  50. package/dist/model/join_instance.d.ts +18 -0
  51. package/dist/model/join_instance.js +71 -0
  52. package/dist/model/malloy_types.d.ts +48 -2
  53. package/dist/model/malloy_types.js +39 -1
  54. package/dist/model/query_model.d.ts +2 -0
  55. package/dist/model/query_model.js +7 -0
  56. package/dist/model/query_model_contract.d.ts +32 -0
  57. package/dist/model/query_model_contract.js +7 -0
  58. package/dist/model/query_model_impl.d.ts +30 -0
  59. package/dist/model/query_model_impl.js +266 -0
  60. package/dist/model/query_node.d.ts +132 -0
  61. package/dist/model/query_node.js +638 -0
  62. package/dist/model/query_query.d.ts +86 -0
  63. package/dist/model/query_query.js +1724 -0
  64. package/dist/model/sql_block.js +2 -2
  65. package/dist/model/stage_writer.d.ts +25 -0
  66. package/dist/model/stage_writer.js +120 -0
  67. package/dist/model/utils.d.ts +18 -1
  68. package/dist/model/utils.js +66 -1
  69. package/dist/to_stable.js +3 -4
  70. package/dist/version.d.ts +1 -1
  71. package/dist/version.js +1 -1
  72. package/package.json +4 -4
  73. package/dist/model/malloy_query.d.ts +0 -391
  74. package/dist/model/malloy_query.js +0 -3926
@@ -0,0 +1,86 @@
1
+ import type { DialectFieldList } from '../dialect';
2
+ import type { TurtleDef, QueryResultDef, ResultStructMetadataDef, ResultMetadataDef, PipeSegment, QuerySegment, QueryFieldDef, SegmentFieldDef } from './malloy_types';
3
+ import { AndChain } from './utils';
4
+ import type { JoinInstance } from './join_instance';
5
+ import { QueryStruct, QueryField } from './query_node';
6
+ import { StageWriter } from './stage_writer';
7
+ import type { FieldInstance } from './field_instance';
8
+ import { FieldInstanceResult, FieldInstanceResultRoot } from './field_instance';
9
+ interface OutputPipelinedSQL {
10
+ sqlFieldName: string;
11
+ pipelineSQL: string;
12
+ }
13
+ type StageGroupMaping = {
14
+ fromGroup: number;
15
+ toGroup: number;
16
+ };
17
+ type StageOutputContext = {
18
+ sql: string[];
19
+ lateralJoinSQLExpressions: string[];
20
+ dimensionIndexes: number[];
21
+ fieldIndex: number;
22
+ groupsAggregated: StageGroupMaping[];
23
+ outputPipelinedSQL: OutputPipelinedSQL[];
24
+ };
25
+ /** Query builder object. */
26
+ export declare class QueryQuery extends QueryField {
27
+ fieldDef: TurtleDef;
28
+ firstSegment: PipeSegment;
29
+ prepared: boolean;
30
+ maxDepth: number;
31
+ maxGroupSet: number;
32
+ rootResult: FieldInstanceResultRoot;
33
+ resultStage: string | undefined;
34
+ stageWriter: StageWriter | undefined;
35
+ isJoinedSubquery: boolean;
36
+ protected structRefToQueryStruct: (name: string) => QueryStruct | undefined;
37
+ constructor(fieldDef: TurtleDef, parent: QueryStruct, stageWriter: StageWriter | undefined, isJoinedSubquery: boolean, lookupStruct: (name: string) => QueryStruct | undefined);
38
+ static makeQuery(fieldDef: TurtleDef, parentStruct: QueryStruct, stageWriter: StageWriter | undefined, isJoinedSubquery: boolean, lookupStruct: (name: string) => QueryStruct | undefined): QueryQuery;
39
+ inNestedPipeline(): boolean;
40
+ expandField(f: QueryFieldDef): {
41
+ as: string;
42
+ field: QueryField;
43
+ };
44
+ private addDependantPath;
45
+ private dependenciesFromFieldUsage;
46
+ findRecordAliases(context: QueryStruct, path: string[]): void;
47
+ getSegmentFields(resultStruct: FieldInstanceResult): SegmentFieldDef[];
48
+ private getDrillExpression;
49
+ expandFields(resultStruct: FieldInstanceResult): void;
50
+ generateSQLFilters(resultStruct: FieldInstanceResult, which: 'where' | 'having'): AndChain;
51
+ prepare(_stageWriter: StageWriter | undefined): void;
52
+ private findJoins;
53
+ addAlwaysJoins(rootResult: FieldInstanceResultRoot): void;
54
+ getResultMetadata(fi: FieldInstance): ResultStructMetadataDef | ResultMetadataDef | undefined;
55
+ /** returns a fields and primary key of a struct for this query */
56
+ getResultStructDef(resultStruct?: FieldInstanceResult, isRoot?: boolean): QueryResultDef;
57
+ getStructSourceSQL(qs: QueryStruct, stageWriter: StageWriter): string;
58
+ generateSQLJoinBlock(stageWriter: StageWriter, ji: JoinInstance, depth: number): string;
59
+ generateSQLPassthroughKeys(qs: QueryStruct): string;
60
+ generateSQLJoins(stageWriter: StageWriter): string;
61
+ genereateSQLOrderBy(queryDef: QuerySegment, resultStruct: FieldInstanceResult): string;
62
+ generateSimpleSQL(stageWriter: StageWriter): string;
63
+ generatePipelinedStages(outputPipelinedSQL: OutputPipelinedSQL[], lastStageName: string, stageWriter: StageWriter): string;
64
+ generateStage0Fields(resultSet: FieldInstanceResult, output: StageOutputContext, stageWriter: StageWriter): void;
65
+ generateSQLWhereChildren(resultStruct: FieldInstanceResult): AndChain;
66
+ generateSQLWhereTurtled(): string;
67
+ generateSQLHavingLimit(stageWriter: StageWriter, lastStageName: string): string;
68
+ generateSQLStage0(stageWriter: StageWriter): string;
69
+ generateDepthNFields(depth: number, resultSet: FieldInstanceResult, output: StageOutputContext, stageWriter: StageWriter): void;
70
+ generateSQLDepthN(depth: number, stageWriter: StageWriter, stageName: string): string;
71
+ genereateSQLCombineTurtles(stageWriter: StageWriter, stage0Name: string): string;
72
+ buildDialectFieldList(resultStruct: FieldInstanceResult): DialectFieldList;
73
+ generateTurtleSQL(resultStruct: FieldInstanceResult, stageWriter: StageWriter, sqlFieldName: string, outputPipelinedSQL: OutputPipelinedSQL[]): string;
74
+ generateTurtlePipelineSQL(fi: FieldInstanceResult, stageWriter: StageWriter, sourceSQLExpression: string): {
75
+ structDef: QueryResultDef;
76
+ pipeOut: any;
77
+ repeatedResultType: "nested" | "inline_all_numbers" | "inline";
78
+ };
79
+ generateComplexSQL(stageWriter: StageWriter): string;
80
+ generateSQL(stageWriter: StageWriter): string;
81
+ generateSQLFromPipeline(stageWriter: StageWriter): {
82
+ lastStageName: string;
83
+ outputStruct: QueryResultDef;
84
+ };
85
+ }
86
+ export {};