Skip to content

Commit 4ac9560

Browse files
nreshclaude
authored andcommitted
build: bump airlayer to latest main (b8c734d) (#2170)
Main was pinned to v0.0.9 (tag) and 4b92e5f (rev) — both on the old 0.0.x API. Bumps to the latest main commit, which includes the pre-aggregation rollup support introduced in v0.1.0 and the unreleased fix for quoting column names that contain spaces. Adapts call sites to the v0.1.x View/Topic schema: - `View.description` / `Topic.description` are now `Option<String>`. - `View` gained a required `pre_aggregations` field. Co-authored-by: Claude <noreply@anthropic.com> GitOrigin-RevId: 4d900c7461aef258f6c1fb1e5f5e221aba4eee4b
1 parent 844ee71 commit 4ac9560

10 files changed

Lines changed: 42 additions & 81 deletions

File tree

Cargo.lock

Lines changed: 20 additions & 63 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ tracing = {version = "0.1.44"}
105105
uuid = { version = "1.23", features = ["serde", "v4"] }
106106
aes-gcm = "0.10.3"
107107
aho-corasick = "1.1"
108-
airlayer = { git = "https://github.com/oxy-hq/airlayer.git", tag = "v0.0.9" }
108+
airlayer = { git = "https://github.com/oxy-hq/airlayer.git", rev = "b8c734d" }
109109
anyhow = "1.0.102"
110110
apalis = "0.7.4"
111111
apalis-core = "0.7.4"

crates/agentic/analytics/src/airlayer_compat.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,16 @@ use airlayer::DatasourceDialectMap;
1616

1717
// ── YAML shim types ──────────────────────────────────────────────────────────
1818
//
19-
// airlayer's `View` has `description: String` (non-optional) while oxy YAML
20-
// files may omit it. These thin wrappers add `#[serde(default)]` where needed
21-
// and convert into the real airlayer types.
19+
// These thin wrappers add `#[serde(default)]` on optional fields and accept
20+
// oxy's YAML aliases (e.g. `data_source`) before converting into the real
21+
// airlayer types.
2222

2323
/// Intermediate view representation for oxy YAML files.
2424
#[derive(Debug, Deserialize)]
2525
struct ViewShim {
2626
name: String,
2727
#[serde(default)]
28-
description: String,
28+
description: Option<String>,
2929
#[serde(default)]
3030
label: Option<String>,
3131
/// Oxy YAML may use `data_source` or `datasource`.
@@ -52,7 +52,7 @@ struct ViewShim {
5252
struct TopicShim {
5353
name: String,
5454
#[serde(default)]
55-
description: String,
55+
description: Option<String>,
5656
#[serde(default)]
5757
views: Vec<String>,
5858
#[serde(default)]
@@ -86,6 +86,7 @@ pub fn parse_view_yaml(
8686
dimensions: shim.dimensions,
8787
measures: shim.measures,
8888
segments: shim.segments,
89+
pre_aggregations: None,
8990
meta: None,
9091
})
9192
}

crates/agentic/analytics/src/semantic/mod.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -330,10 +330,11 @@ impl SemanticCatalog {
330330
.iter()
331331
.map(|v_name| {
332332
if let Some(view) = self.engine.view(v_name) {
333-
if view.description.is_empty() {
334-
v_name.clone()
335-
} else {
336-
format!("{} ({})", v_name, view.description)
333+
match view.description.as_deref() {
334+
Some(desc) if !desc.is_empty() => {
335+
format!("{} ({})", v_name, desc)
336+
}
337+
_ => v_name.clone(),
337338
}
338339
} else {
339340
v_name.clone()
@@ -343,7 +344,7 @@ impl SemanticCatalog {
343344
format!(
344345
"- {}: {} (views: {})",
345346
t.name,
346-
t.description,
347+
t.description.as_deref().unwrap_or(""),
347348
views.join(", ")
348349
)
349350
})

crates/agentic/pipeline/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,4 @@ sea-orm-migration = { workspace = true }
3939
tempfile = { workspace = true }
4040
testcontainers = { version = "0.27", features = ["blocking", "reusable-containers"] }
4141
testcontainers-modules = { version = "0.15", features = ["postgres"] }
42-
airlayer = { git = "https://github.com/oxy-hq/airlayer.git", rev = "4b92e5f" }
42+
airlayer = { git = "https://github.com/oxy-hq/airlayer.git", rev = "b8c734d" }

crates/agentic/workflow/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ agentic-analytics = { workspace = true }
1414
agentic-connector = { path = "../connector", features = [
1515
"duckdb", "postgres", "clickhouse", "snowflake", "bigquery"
1616
] }
17-
airlayer = { git = "https://github.com/oxy-hq/airlayer.git", rev = "4b92e5f" }
17+
airlayer = { git = "https://github.com/oxy-hq/airlayer.git", rev = "b8c734d" }
1818
omni = { workspace = true }
1919
oxy-looker = { workspace = true }
2020
chrono = { workspace = true }

crates/agentic/workflow/src/semantic.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ fn resolve_topic(
127127
}
128128
Ok(airlayer::Topic {
129129
name: "adhoc_query".to_string(),
130-
description: "Ad-hoc query inferred from views".to_string(),
130+
description: Some("Ad-hoc query inferred from views".to_string()),
131131
views: view_names.into_iter().collect(),
132132
base_view: None,
133133
retrieval: None,

crates/app/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ agentic-http = { workspace = true }
3434
agentic-pipeline = { workspace = true }
3535
agentic-runtime = { workspace = true }
3636
agentic-workflow = { workspace = true }
37-
airlayer = { git = "https://github.com/oxy-hq/airlayer.git", rev = "4b92e5f" }
37+
airlayer = { git = "https://github.com/oxy-hq/airlayer.git", rev = "b8c734d" }
3838
oxy-agent = { workspace = true }
3939
oxy-auth = { workspace = true }
4040
oxy-project = { workspace = true }

crates/app/src/agentic_wiring/builder_bridges/project_validator.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ fn validate_semantic_file(abs: &Path) -> Result<(), String> {
195195
struct ViewShim {
196196
name: String,
197197
#[serde(default)]
198-
description: String,
198+
description: Option<String>,
199199
#[serde(default)]
200200
label: Option<String>,
201201
#[serde(default, alias = "data_source")]
@@ -220,7 +220,7 @@ struct ViewShim {
220220
struct TopicShim {
221221
name: String,
222222
#[serde(default)]
223-
description: String,
223+
description: Option<String>,
224224
#[serde(default)]
225225
views: Vec<String>,
226226
#[serde(default)]
@@ -245,6 +245,7 @@ fn parse_view_yaml(yaml: &str) -> Result<airlayer::View, Box<dyn std::error::Err
245245
dimensions: shim.dimensions,
246246
measures: shim.measures,
247247
segments: shim.segments,
248+
pre_aggregations: None,
248249
meta: None,
249250
})
250251
}

crates/workflow/src/semantic_builder.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -741,7 +741,7 @@ fn substitute_params(sql: &str, params: &[String]) -> String {
741741
fn convert_view_to_airlayer(view: &oxy_semantic::View) -> airlayer::View {
742742
airlayer::View {
743743
name: view.name.clone(),
744-
description: view.description.clone().unwrap_or_default(),
744+
description: view.description.clone(),
745745
label: view.label.clone(),
746746
datasource: view.datasource.clone(),
747747
dialect: None, // Dialect comes from datasource mapping
@@ -763,6 +763,7 @@ fn convert_view_to_airlayer(view: &oxy_semantic::View) -> airlayer::View {
763763
.map(|ms| ms.iter().map(convert_measure_to_airlayer).collect()),
764764
// TODO: pass through segments when oxy-semantic adds support
765765
segments: vec![],
766+
pre_aggregations: None,
766767
meta: None,
767768
}
768769
}

0 commit comments

Comments
 (0)