Skip to content

Commit 0b2194b

Browse files
zzylolclaude
andcommitted
fix: integrate with #593 and #594
plan_stages takes per-root demand since #594, and DataWorkload declares metric types since #593; Example 2's pipeline test runs each query once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 20911df commit 0b2194b

1 file changed

Lines changed: 17 additions & 3 deletions

File tree

‎crates/integration-tests/tests/planner_layering_example2.rs‎

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ use asap_types::ir::operator::AggIntent;
99
use asap_types::ir::schema::{DataType, Field, Schema, SketchAlgorithm};
1010
use asap_types::ir::{NonASAPOp, OperatorNode, QueryRoot, ScalarExpr};
1111
use asap_types::types::AccuracyTarget;
12-
use asap_types::workload::{DataArrival, DataWorkload, Evidence, EvidenceSource, Rate};
12+
use asap_types::workload::{
13+
DataArrival, DataWorkload, Evidence, EvidenceSource, Predictability, QueryRecurrence, Rate,
14+
RootDemand,
15+
};
1316
use std::rc::Rc;
1417

1518
const WINDOW: &str = "ts >= now() - INTERVAL '1 minute'";
@@ -106,22 +109,33 @@ async fn example2_time_filter_is_a_scan_predicate() {
106109
#[tokio::test]
107110
async fn example2_plans_through_the_stage_pipeline() {
108111
let roots = workload().await;
109-
let targets: Vec<_> = roots.iter().map(|(_, t)| Some(t.clone())).collect();
112+
let demand: Vec<_> = roots
113+
.iter()
114+
.map(|(_, t)| RootDemand {
115+
accuracy: Some(t.clone()),
116+
recurrence: QueryRecurrence::OneTime {
117+
invocations: 1,
118+
execute_at: None,
119+
},
120+
predictability: Predictability::default(),
121+
})
122+
.collect();
110123
let data = DataWorkload {
111124
arrival: DataArrival::ContinuouslyIngesting,
112125
data_ingestion_interval: Evidence::default(),
113126
ingestion_volume: Evidence::default(),
114127
ingestion_rate: declared(Rate(100_000.0)),
115128
input_cardinality: declared(10_000_000),
116129
distribution: Evidence::default(),
130+
metric_types: Default::default(),
117131
};
118132
let run = plan_stages(
119133
roots
120134
.into_iter()
121135
.enumerate()
122136
.map(|(i, (root, _))| (i, QueryRoot::Operator(root)))
123137
.collect(),
124-
&targets,
138+
&demand,
125139
&data,
126140
PlanningModels::builtin(),
127141
0,

0 commit comments

Comments
 (0)