@malloydata/malloy 0.0.218-dev241120211046 → 0.0.218-dev241122201503

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.
@@ -7,5 +7,6 @@ export declare class ASTViewField extends ViewField {
7
7
  protected name: string;
8
8
  constructor(fs: FieldSpace, view: ViewFieldDeclaration, name: string);
9
9
  getQueryFieldDef(fs: FieldSpace): QueryFieldDef;
10
+ private turtleDef;
10
11
  fieldDef(): TurtleDef;
11
12
  }
@@ -29,12 +29,16 @@ class ASTViewField extends view_field_1.ViewField {
29
29
  super(fs);
30
30
  this.view = view;
31
31
  this.name = name;
32
+ this.turtleDef = undefined;
32
33
  }
33
34
  getQueryFieldDef(fs) {
34
35
  return this.view.getFieldDef(fs);
35
36
  }
36
37
  fieldDef() {
37
- return this.view.getFieldDef(this.inSpace);
38
+ if (this.turtleDef === undefined) {
39
+ this.turtleDef = this.view.getFieldDef(this.inSpace);
40
+ }
41
+ return this.turtleDef;
38
42
  }
39
43
  }
40
44
  exports.ASTViewField = ASTViewField;
@@ -1,10 +1,94 @@
1
- import { FieldDef, QueryFieldDef } from '../../../model/malloy_types';
1
+ import { QueryFieldDef, TurtleDef } from '../../../model/malloy_types';
2
2
  import { FieldSpace } from '../types/field-space';
3
3
  import { SpaceField } from '../types/space-field';
4
4
  export declare abstract class ViewField extends SpaceField {
5
5
  protected inSpace: FieldSpace;
6
6
  constructor(inSpace: FieldSpace);
7
7
  abstract getQueryFieldDef(fs: FieldSpace): QueryFieldDef | undefined;
8
- abstract fieldDef(): FieldDef;
9
- typeDesc(): import("../../../model/malloy_types").TypeDesc;
8
+ abstract fieldDef(): TurtleDef;
9
+ typeDesc(): {
10
+ compositeFieldUsage: import("../../../model/malloy_types").CompositeFieldUsage;
11
+ type: "string";
12
+ bucketFilter?: string | undefined;
13
+ bucketOther?: string | undefined;
14
+ expressionType: import("../../../model/malloy_types").ExpressionType;
15
+ evalSpace: import("../../../model/malloy_types").EvalSpace;
16
+ } | {
17
+ compositeFieldUsage: import("../../../model/malloy_types").CompositeFieldUsage;
18
+ type: "date";
19
+ timeframe?: import("../../../model/malloy_types").DateUnit | undefined;
20
+ expressionType: import("../../../model/malloy_types").ExpressionType;
21
+ evalSpace: import("../../../model/malloy_types").EvalSpace;
22
+ } | {
23
+ compositeFieldUsage: import("../../../model/malloy_types").CompositeFieldUsage;
24
+ type: "timestamp";
25
+ timeframe?: import("../../../model/malloy_types").TimestampUnit | undefined;
26
+ expressionType: import("../../../model/malloy_types").ExpressionType;
27
+ evalSpace: import("../../../model/malloy_types").EvalSpace;
28
+ } | {
29
+ compositeFieldUsage: import("../../../model/malloy_types").CompositeFieldUsage;
30
+ type: "number";
31
+ numberType?: "integer" | "float" | undefined;
32
+ expressionType: import("../../../model/malloy_types").ExpressionType;
33
+ evalSpace: import("../../../model/malloy_types").EvalSpace;
34
+ } | {
35
+ compositeFieldUsage: import("../../../model/malloy_types").CompositeFieldUsage;
36
+ type: "boolean";
37
+ expressionType: import("../../../model/malloy_types").ExpressionType;
38
+ evalSpace: import("../../../model/malloy_types").EvalSpace;
39
+ } | {
40
+ compositeFieldUsage: import("../../../model/malloy_types").CompositeFieldUsage;
41
+ type: "json";
42
+ expressionType: import("../../../model/malloy_types").ExpressionType;
43
+ evalSpace: import("../../../model/malloy_types").EvalSpace;
44
+ } | {
45
+ compositeFieldUsage: import("../../../model/malloy_types").CompositeFieldUsage;
46
+ type: "sql native";
47
+ rawType?: string | undefined;
48
+ expressionType: import("../../../model/malloy_types").ExpressionType;
49
+ evalSpace: import("../../../model/malloy_types").EvalSpace;
50
+ } | {
51
+ compositeFieldUsage: import("../../../model/malloy_types").CompositeFieldUsage;
52
+ type: "error";
53
+ expressionType: import("../../../model/malloy_types").ExpressionType;
54
+ evalSpace: import("../../../model/malloy_types").EvalSpace;
55
+ } | {
56
+ compositeFieldUsage: import("../../../model/malloy_types").CompositeFieldUsage;
57
+ type: "array";
58
+ elementTypeDef: import("../../../model/malloy_types").LeafAtomicTypeDef | import("../../../model/malloy_types").ArrayTypeDef | import("../../../model/malloy_types").RecordElementTypeDef;
59
+ join: "many";
60
+ matrixOperation?: import("../../../model/malloy_types").MatrixOperation | undefined;
61
+ onExpression?: import("../../../model/malloy_types").Expr | undefined;
62
+ onCompositeFieldUsage?: import("../../../model/malloy_types").CompositeFieldUsage | undefined;
63
+ annotation?: import("../../../model/malloy_types").Annotation | undefined;
64
+ modelAnnotation?: import("../../../model/malloy_types").ModelAnnotation | undefined;
65
+ fields: ((import("../../../model/malloy_types").StringTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").DateTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").TimestampTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").NumberTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").BooleanTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").JSONTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").NativeUnsupportedTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").ErrorTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").ArrayTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").RecordTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").JoinBase & import("../../../model/malloy_types").TableSourceDef) | (import("../../../model/malloy_types").JoinBase & import("../../../model/malloy_types").SQLSourceDef) | (import("../../../model/malloy_types").JoinBase & import("../../../model/malloy_types").QuerySourceDef) | (import("../../../model/malloy_types").JoinBase & import("../../../model/malloy_types").ArrayTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").JoinBase & import("../../../model/malloy_types").RecordTypeDef & import("../../../model/malloy_types").FieldBase) | TurtleDef)[];
66
+ dialect: string;
67
+ location?: import("../../../model/malloy_types").DocumentLocation | undefined;
68
+ name: string;
69
+ as?: string | undefined;
70
+ expressionType: import("../../../model/malloy_types").ExpressionType;
71
+ evalSpace: import("../../../model/malloy_types").EvalSpace;
72
+ } | {
73
+ compositeFieldUsage: import("../../../model/malloy_types").CompositeFieldUsage;
74
+ type: "record";
75
+ join: "one";
76
+ annotation?: import("../../../model/malloy_types").Annotation | undefined;
77
+ modelAnnotation?: import("../../../model/malloy_types").ModelAnnotation | undefined;
78
+ fields: ((import("../../../model/malloy_types").StringTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").DateTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").TimestampTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").NumberTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").BooleanTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").JSONTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").NativeUnsupportedTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").ErrorTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").ArrayTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").RecordTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").JoinBase & import("../../../model/malloy_types").TableSourceDef) | (import("../../../model/malloy_types").JoinBase & import("../../../model/malloy_types").SQLSourceDef) | (import("../../../model/malloy_types").JoinBase & import("../../../model/malloy_types").QuerySourceDef) | (import("../../../model/malloy_types").JoinBase & import("../../../model/malloy_types").ArrayTypeDef & import("../../../model/malloy_types").FieldBase) | (import("../../../model/malloy_types").JoinBase & import("../../../model/malloy_types").RecordTypeDef & import("../../../model/malloy_types").FieldBase) | TurtleDef)[];
79
+ dialect: string;
80
+ location?: import("../../../model/malloy_types").DocumentLocation | undefined;
81
+ name: string;
82
+ as?: string | undefined;
83
+ matrixOperation?: import("../../../model/malloy_types").MatrixOperation | undefined;
84
+ onExpression?: import("../../../model/malloy_types").Expr | undefined;
85
+ onCompositeFieldUsage?: import("../../../model/malloy_types").CompositeFieldUsage | undefined;
86
+ expressionType: import("../../../model/malloy_types").ExpressionType;
87
+ evalSpace: import("../../../model/malloy_types").EvalSpace;
88
+ } | {
89
+ compositeFieldUsage: import("../../../model/malloy_types").CompositeFieldUsage;
90
+ type: import("../../../model/malloy_types").NonAtomicType;
91
+ expressionType: import("../../../model/malloy_types").ExpressionType;
92
+ evalSpace: import("../../../model/malloy_types").EvalSpace;
93
+ };
10
94
  }
@@ -46,6 +46,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
46
46
  };
47
47
  Object.defineProperty(exports, "__esModule", { value: true });
48
48
  exports.ViewField = void 0;
49
+ const composite_source_utils_1 = require("../../../model/composite_source_utils");
49
50
  const TDU = __importStar(require("../typedesc-utils"));
50
51
  const space_field_1 = require("../types/space-field");
51
52
  class ViewField extends space_field_1.SpaceField {
@@ -54,7 +55,12 @@ class ViewField extends space_field_1.SpaceField {
54
55
  this.inSpace = inSpace;
55
56
  }
56
57
  typeDesc() {
57
- return TDU.viewT;
58
+ var _a;
59
+ const fieldDef = this.fieldDef();
60
+ return {
61
+ ...TDU.viewT,
62
+ compositeFieldUsage: (_a = fieldDef.compositeFieldUsage) !== null && _a !== void 0 ? _a : (0, composite_source_utils_1.emptyCompositeFieldUsage)(),
63
+ };
58
64
  }
59
65
  }
60
66
  exports.ViewField = ViewField;
@@ -21,8 +21,32 @@
21
21
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
22
  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
23
  */
24
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ var desc = Object.getOwnPropertyDescriptor(m, k);
27
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
28
+ desc = { enumerable: true, get: function() { return m[k]; } };
29
+ }
30
+ Object.defineProperty(o, k2, desc);
31
+ }) : (function(o, m, k, k2) {
32
+ if (k2 === undefined) k2 = k;
33
+ o[k2] = m[k];
34
+ }));
35
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
36
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
37
+ }) : function(o, v) {
38
+ o["default"] = v;
39
+ });
40
+ var __importStar = (this && this.__importStar) || function (mod) {
41
+ if (mod && mod.__esModule) return mod;
42
+ var result = {};
43
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
44
+ __setModuleDefault(result, mod);
45
+ return result;
46
+ };
24
47
  Object.defineProperty(exports, "__esModule", { value: true });
25
48
  exports.NestFieldDeclaration = void 0;
49
+ const model = __importStar(require("../../../model/malloy_types"));
26
50
  const query_utils_1 = require("../query-utils");
27
51
  const view_field_declaration_1 = require("../source-properties/view-field-declaration");
28
52
  const query_property_interface_1 = require("../types/query-property-interface");
@@ -42,6 +66,9 @@ class NestFieldDeclaration extends view_field_declaration_1.ViewFieldDeclaration
42
66
  return this.turtleDef;
43
67
  if (fs.isQueryFieldSpace()) {
44
68
  const { pipeline, annotation } = this.view.pipelineComp(fs, fs.outputSpace());
69
+ const compositeFieldUsage = pipeline[0] && model.isQuerySegment(pipeline[0])
70
+ ? pipeline[0].compositeFieldUsage
71
+ : undefined;
45
72
  const checkedPipeline = (0, query_utils_1.detectAndRemovePartialStages)(pipeline, this);
46
73
  this.turtleDef = {
47
74
  type: 'turtle',
@@ -49,6 +76,7 @@ class NestFieldDeclaration extends view_field_declaration_1.ViewFieldDeclaration
49
76
  pipeline: checkedPipeline,
50
77
  annotation: { ...this.note, inherits: annotation },
51
78
  location: this.location,
79
+ compositeFieldUsage,
52
80
  };
53
81
  return this.turtleDef;
54
82
  }
@@ -564,6 +564,7 @@ export interface QuerySegment extends Filtered {
564
564
  export interface TurtleDef extends NamedObject, Pipeline {
565
565
  type: 'turtle';
566
566
  annotation?: Annotation;
567
+ compositeFieldUsage?: CompositeFieldUsage;
567
568
  }
568
569
  interface StructDefBase extends HasLocation, NamedObject {
569
570
  type: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@malloydata/malloy",
3
- "version": "0.0.218-dev241120211046",
3
+ "version": "0.0.218-dev241122201503",
4
4
  "license": "MIT",
5
5
  "exports": {
6
6
  ".": "./dist/index.js",