Skip to content

Commit 56dbf9e

Browse files
authored
feat(cubeclient): Add hierarchies to Cube meta (#9180)
1 parent d3e6ece commit 56dbf9e

File tree

9 files changed

+64
-0
lines changed

9 files changed

+64
-0
lines changed

packages/cubejs-api-gateway/openspec.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,20 @@ components:
170170
type: array
171171
items:
172172
type: "string"
173+
V1CubeMetaHierarchy:
174+
type: "object"
175+
required:
176+
- name
177+
- levels
178+
properties:
179+
name:
180+
type: "string"
181+
title:
182+
type: "string"
183+
levels:
184+
type: "array"
185+
items:
186+
type: "string"
173187
V1CubeMeta:
174188
type: "object"
175189
required:
@@ -209,6 +223,10 @@ components:
209223
type: "array"
210224
items:
211225
$ref: "#/components/schemas/V1CubeMetaFolder"
226+
hierarchies:
227+
type: "array"
228+
items:
229+
$ref: "#/components/schemas/V1CubeMetaHierarchy"
212230
V1CubeMetaType:
213231
type: "string"
214232
description: Type of cube

rust/cubesql/cubeclient/.openapi-generator/FILES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ src/models/v1_cube_meta.rs
55
src/models/v1_cube_meta_dimension.rs
66
src/models/v1_cube_meta_dimension_granularity.rs
77
src/models/v1_cube_meta_folder.rs
8+
src/models/v1_cube_meta_hierarchy.rs
89
src/models/v1_cube_meta_join.rs
910
src/models/v1_cube_meta_measure.rs
1011
src/models/v1_cube_meta_segment.rs

rust/cubesql/cubeclient/src/models/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ pub mod v1_cube_meta_dimension_granularity;
66
pub use self::v1_cube_meta_dimension_granularity::V1CubeMetaDimensionGranularity;
77
pub mod v1_cube_meta_folder;
88
pub use self::v1_cube_meta_folder::V1CubeMetaFolder;
9+
pub mod v1_cube_meta_hierarchy;
10+
pub use self::v1_cube_meta_hierarchy::V1CubeMetaHierarchy;
911
pub mod v1_cube_meta_join;
1012
pub use self::v1_cube_meta_join::V1CubeMetaJoin;
1113
pub mod v1_cube_meta_measure;

rust/cubesql/cubeclient/src/models/v1_cube_meta.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ pub struct V1CubeMeta {
3030
pub joins: Option<Vec<crate::models::V1CubeMetaJoin>>,
3131
#[serde(rename = "folders", skip_serializing_if = "Option::is_none")]
3232
pub folders: Option<Vec<crate::models::V1CubeMetaFolder>>,
33+
#[serde(rename = "hierarchies", skip_serializing_if = "Option::is_none")]
34+
pub hierarchies: Option<Vec<crate::models::V1CubeMetaHierarchy>>,
3335
}
3436

3537
impl V1CubeMeta {
@@ -51,6 +53,7 @@ impl V1CubeMeta {
5153
segments,
5254
joins: None,
5355
folders: None,
56+
hierarchies: None,
5457
}
5558
}
5659
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
* Cube.js
3+
*
4+
* Cube.js Swagger Schema
5+
*
6+
* The version of the OpenAPI document: 1.0.0
7+
*
8+
* Generated by: https://openapi-generator.tech
9+
*/
10+
11+
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
12+
pub struct V1CubeMetaHierarchy {
13+
#[serde(rename = "name")]
14+
pub name: String,
15+
#[serde(rename = "title", skip_serializing_if = "Option::is_none")]
16+
pub title: Option<String>,
17+
#[serde(rename = "levels")]
18+
pub levels: Vec<String>,
19+
}
20+
21+
impl V1CubeMetaHierarchy {
22+
pub fn new(name: String, levels: Vec<String>) -> V1CubeMetaHierarchy {
23+
V1CubeMetaHierarchy {
24+
name,
25+
title: None,
26+
levels,
27+
}
28+
}
29+
}

rust/cubesql/cubesql/benches/large_model.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ pub fn get_large_model_test_meta(dims: usize) -> Vec<V1CubeMeta> {
101101
segments: vec![],
102102
joins: None,
103103
folders: None,
104+
hierarchies: None,
104105
meta: None,
105106
}]
106107
}

rust/cubesql/cubesql/src/compile/test/mod.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ pub fn get_test_meta() -> Vec<CubeMeta> {
160160
relationship: "belongsTo".to_string(),
161161
}]),
162162
folders: None,
163+
hierarchies: None,
163164
meta: None,
164165
},
165166
CubeMeta {
@@ -208,6 +209,7 @@ pub fn get_test_meta() -> Vec<CubeMeta> {
208209
relationship: "belongsTo".to_string(),
209210
}]),
210211
folders: None,
212+
hierarchies: None,
211213
meta: None,
212214
},
213215
CubeMeta {
@@ -227,6 +229,7 @@ pub fn get_test_meta() -> Vec<CubeMeta> {
227229
segments: vec![],
228230
joins: None,
229231
folders: None,
232+
hierarchies: None,
230233
meta: None,
231234
},
232235
CubeMeta {
@@ -299,6 +302,7 @@ pub fn get_test_meta() -> Vec<CubeMeta> {
299302
segments: Vec::new(),
300303
joins: Some(Vec::new()),
301304
folders: None,
305+
hierarchies: None,
302306
meta: None,
303307
},
304308
CubeMeta {
@@ -408,6 +412,7 @@ pub fn get_test_meta() -> Vec<CubeMeta> {
408412
segments: Vec::new(),
409413
joins: Some(Vec::new()),
410414
folders: None,
415+
hierarchies: None,
411416
meta: None,
412417
},
413418
]
@@ -431,6 +436,7 @@ pub fn get_string_cube_meta() -> Vec<CubeMeta> {
431436
segments: vec![],
432437
joins: None,
433438
folders: None,
439+
hierarchies: None,
434440
meta: None,
435441
}]
436442
}
@@ -471,6 +477,7 @@ pub fn get_sixteen_char_member_cube() -> Vec<CubeMeta> {
471477
segments: vec![],
472478
joins: None,
473479
folders: None,
480+
hierarchies: None,
474481
meta: None,
475482
}]
476483
}

rust/cubesql/cubesql/src/transport/ctx.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@ mod tests {
235235
segments: vec![],
236236
joins: None,
237237
folders: None,
238+
hierarchies: None,
238239
meta: None,
239240
},
240241
CubeMeta {
@@ -247,6 +248,7 @@ mod tests {
247248
segments: vec![],
248249
joins: None,
249250
folders: None,
251+
hierarchies: None,
250252
meta: None,
251253
},
252254
];

rust/cubesql/cubesql/src/transport/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ pub type CubeMetaMeasure = cubeclient::models::V1CubeMetaMeasure;
1010
pub type CubeMetaSegment = cubeclient::models::V1CubeMetaSegment;
1111
pub type CubeMetaJoin = cubeclient::models::V1CubeMetaJoin;
1212
pub type CubeMetaFolder = cubeclient::models::V1CubeMetaFolder;
13+
pub type CubeMetaHierarchy = cubeclient::models::V1CubeMetaHierarchy;
1314
// Request/Response
1415
pub type TransportLoadResponse = cubeclient::models::V1LoadResponse;
1516
pub type TransportLoadRequestQuery = cubeclient::models::V1LoadRequestQuery;

0 commit comments

Comments
 (0)