Skip to content

Commit 78f904a

Browse files
committed
explain: rename explain_new to explain
1 parent 35cc318 commit 78f904a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+115
-202
lines changed

src/adapter/src/catalog.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ use mz_ore::metrics::MetricsRegistry;
4646
use mz_ore::now::{to_datetime, EpochMillis, NowFn};
4747
use mz_persist_client::cfg::PersistParameters;
4848
use mz_pgrepr::oid::FIRST_USER_OID;
49-
use mz_repr::{explain_new::ExprHumanizer, Diff, GlobalId, RelationDesc, ScalarType};
49+
use mz_repr::{explain::ExprHumanizer, Diff, GlobalId, RelationDesc, ScalarType};
5050
use mz_secrets::InMemorySecretsController;
5151
use mz_sql::ast::display::AstDisplay;
5252
use mz_sql::ast::Expr;

src/adapter/src/coord.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ use mz_ore::tracing::OpenTelemetryContext;
101101
use mz_ore::{stack, task};
102102
use mz_persist_client::usage::StorageUsageClient;
103103
use mz_persist_client::ShardId;
104-
use mz_repr::explain_new::ExplainFormat;
104+
use mz_repr::explain::ExplainFormat;
105105
use mz_repr::{Datum, Diff, GlobalId, Row, Timestamp};
106106
use mz_secrets::SecretsController;
107107
use mz_sql::ast::{CreateSourceStatement, CreateSubsourceStatement, Raw, Statement};

src/adapter/src/coord/peek.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ use mz_ore::cast::CastFrom;
3232
use mz_ore::str::Indent;
3333
use mz_ore::str::StrExt;
3434
use mz_ore::tracing::OpenTelemetryContext;
35-
use mz_repr::explain_new::{
35+
use mz_repr::explain::{
3636
fmt_text_constant_rows, separated_text, CompactScalarSeq, DisplayText, ExprHumanizer, Indices,
3737
};
3838
use mz_repr::{Diff, GlobalId, RelationType, Row};
@@ -565,7 +565,7 @@ mod tests {
565565
use mz_expr::{func::IsNull, MapFilterProject, UnaryFunc};
566566
use mz_ore::str::Indent;
567567
use mz_repr::{
568-
explain_new::{text_string_at, DummyHumanizer, RenderingContext},
568+
explain::{text_string_at, DummyHumanizer, RenderingContext},
569569
ColumnType, Datum, ScalarType,
570570
};
571571

src/adapter/src/coord/sequencer.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ use mz_expr::{
3636
OptimizedMirRelationExpr, RowSetFinishing,
3737
};
3838
use mz_ore::task;
39-
use mz_repr::explain_new::{ExplainFormat, Explainee};
39+
use mz_repr::explain::{ExplainFormat, Explainee};
4040
use mz_repr::{Datum, Diff, GlobalId, RelationDesc, Row, RowArena, Timestamp};
4141
use mz_sql::ast::{ExplainStage, IndexOptionName, ObjectType};
4242
use mz_sql::catalog::CatalogItem as SqlCatalogItem;
@@ -79,7 +79,7 @@ use crate::coord::{
7979
SinkConnectionReady, DEFAULT_LOGICAL_COMPACTION_WINDOW_TS,
8080
};
8181
use crate::error::AdapterError;
82-
use crate::explain_new::optimizer_trace::OptimizerTrace;
82+
use crate::explain::optimizer_trace::OptimizerTrace;
8383
use crate::metrics;
8484
use crate::notice::AdapterNotice;
8585
use crate::session::vars::{
@@ -2707,7 +2707,7 @@ impl Coordinator {
27072707
plan: ExplainPlan,
27082708
) -> Result<ExecuteResponse, AdapterError> {
27092709
use mz_compute_client::plan::Plan;
2710-
use mz_repr::explain_new::trace_plan;
2710+
use mz_repr::explain::trace_plan;
27112711
use ExplainStage::*;
27122712

27132713
let cluster = self.catalog.active_cluster(session)?.id;
@@ -2755,7 +2755,7 @@ impl Coordinator {
27552755
&optimized_plan,
27562756
&mut dataflow,
27572757
)?;
2758-
mz_repr::explain_new::trace_plan(&dataflow);
2758+
mz_repr::explain::trace_plan(&dataflow);
27592759
Ok(dataflow)
27602760
},
27612761
)?;

src/adapter/src/coord/timestamp_selection.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use tracing::{event, Level};
1919

2020
use mz_compute_client::controller::ComputeInstanceId;
2121
use mz_expr::MirScalarExpr;
22-
use mz_repr::explain_new::ExprHumanizer;
22+
use mz_repr::explain::ExprHumanizer;
2323
use mz_repr::{RowArena, ScalarType, Timestamp, TimestampManipulation};
2424
use mz_sql::plan::QueryWhen;
2525
use mz_storage_client::types::sources::Timeline;

src/adapter/src/error.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use mz_compute_client::controller::error as compute_error;
1919
use mz_expr::{EvalError, UnmaterializableFunc};
2020
use mz_ore::stack::RecursionLimitError;
2121
use mz_ore::str::StrExt;
22-
use mz_repr::explain_new::ExplainError;
22+
use mz_repr::explain::ExplainError;
2323
use mz_repr::NotNullViolation;
2424
use mz_sql::plan::PlanError;
2525
use mz_storage_client::controller::StorageError;

src/adapter/src/explain_new/fast_path/mod.rs renamed to src/adapter/src/explain/fast_path/mod.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,8 @@
1111
1212
use std::collections::BTreeMap;
1313

14-
use mz_expr::explain_new::ExplainMultiPlan;
15-
use mz_repr::explain_new::{
16-
AnnotatedPlan, Explain, ExplainConfig, ExplainError, UnsupportedFormat,
17-
};
14+
use mz_expr::explain::ExplainMultiPlan;
15+
use mz_repr::explain::{AnnotatedPlan, Explain, ExplainConfig, ExplainError, UnsupportedFormat};
1816

1917
use crate::coord::peek::FastPathPlan;
2018

src/adapter/src/explain_new/hir/mod.rs renamed to src/adapter/src/explain/hir/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
//! `EXPLAIN` support for HIR structures.
1111
12-
use mz_repr::explain_new::{Explain, ExplainConfig, ExplainError};
12+
use mz_repr::explain::{Explain, ExplainConfig, ExplainError};
1313
use mz_sql::plan::HirRelationExpr;
1414

1515
use super::Explainable;

src/adapter/src/explain_new/lir/mod.rs renamed to src/adapter/src/explain/lir/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
1212
use mz_compute_client::plan::Plan;
1313
use mz_compute_client::types::dataflows::DataflowDescription;
14-
use mz_repr::explain_new::{Explain, ExplainConfig, ExplainError};
14+
use mz_repr::explain::{Explain, ExplainConfig, ExplainError};
1515

1616
use super::Explainable;
1717

src/adapter/src/explain_new/mir/mod.rs renamed to src/adapter/src/explain/mir/mod.rs

Lines changed: 17 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,14 @@
1616
//! available for the default [`Explain`] implementation for [`MirRelationExpr`]
1717
//! in [`mz_expr`].
1818
19-
use std::collections::BTreeMap;
20-
2119
use mz_compute_client::types::dataflows::DataflowDescription;
22-
use mz_expr::{
23-
explain_new::{enforce_linear_chains, ExplainContext, ExplainMultiPlan, ExplainSinglePlan},
24-
visit::Visit,
25-
MirRelationExpr, OptimizedMirRelationExpr,
26-
};
27-
use mz_ore::{stack::RecursionLimitError, str::bracketed, str::separated};
28-
use mz_repr::explain_new::{
29-
AnnotatedPlan, Attributes, Explain, ExplainConfig, ExplainError, UnsupportedFormat,
30-
};
31-
use mz_transform::attribute::{
32-
Arity, DerivedAttributes, NonNegative, RelationType, SubtreeSize, UniqueKeys,
20+
use mz_expr::explain::{
21+
enforce_linear_chains, ExplainContext, ExplainMultiPlan, ExplainSinglePlan,
3322
};
23+
use mz_expr::{MirRelationExpr, OptimizedMirRelationExpr};
24+
use mz_repr::explain::{Explain, ExplainConfig, ExplainError, UnsupportedFormat};
25+
use mz_transform::attribute::annotate_plan;
26+
use mz_transform::normalize_lets::normalize_lets;
3427

3528
use super::Explainable;
3629

@@ -75,12 +68,13 @@ impl<'a> Explainable<'a, MirRelationExpr> {
7568
// normalize the representation of nested Let bindings
7669
// and enforce sequential Let binding IDs
7770
if !config.raw_plans {
78-
mz_transform::normalize_lets::normalize_lets(self.0)
79-
.map_err(|e| ExplainError::UnknownError(e.to_string()))?;
71+
normalize_lets(self.0).map_err(|e| ExplainError::UnknownError(e.to_string()))?;
8072
}
8173

82-
let plan = try_from(context, self.0)?;
83-
Ok(ExplainSinglePlan { context, plan })
74+
Ok(ExplainSinglePlan {
75+
context,
76+
plan: annotate_plan(self.0, context)?,
77+
})
8478
}
8579
}
8680

@@ -122,25 +116,26 @@ impl<'a> Explainable<'a, DataflowDescription<OptimizedMirRelationExpr>> {
122116
.iter_mut()
123117
.rev()
124118
.map(|build_desc| {
119+
let plan = build_desc.plan.as_inner_mut();
120+
125121
// normalize the representation as linear chains
126122
// (this implies !config.raw_plans by construction)
127123
if config.linear_chains {
128-
enforce_linear_chains(build_desc.plan.as_inner_mut())?;
124+
enforce_linear_chains(plan)?;
129125
};
130126
// unless raw plans are explicitly requested
131127
// normalize the representation of nested Let bindings
132128
// and enforce sequential Let binding IDs
133129
if !config.raw_plans {
134-
mz_transform::normalize_lets::normalize_lets(build_desc.plan.as_inner_mut())
135-
.map_err(|e| ExplainError::UnknownError(e.to_string()))?;
130+
normalize_lets(plan).map_err(|e| ExplainError::UnknownError(e.to_string()))?;
136131
}
137132

138133
let id = context
139134
.humanizer
140135
.humanize_id(build_desc.id)
141136
.unwrap_or_else(|| build_desc.id.to_string());
142-
let plan = try_from(context, build_desc.plan.as_inner())?;
143-
Ok((id, plan))
137+
138+
Ok((id, annotate_plan(plan, context)?))
144139
})
145140
.collect::<Result<Vec<_>, ExplainError>>()?;
146141

@@ -166,79 +161,3 @@ impl<'a> Explainable<'a, DataflowDescription<OptimizedMirRelationExpr>> {
166161
})
167162
}
168163
}
169-
170-
fn try_from<'a>(
171-
context: &'a ExplainContext,
172-
plan: &'a MirRelationExpr,
173-
) -> Result<AnnotatedPlan<'a, MirRelationExpr>, RecursionLimitError> {
174-
let mut annotations = BTreeMap::<&MirRelationExpr, Attributes>::default();
175-
let config = context.config;
176-
177-
if config.requires_attributes() {
178-
// get the annotation keys
179-
let subtree_refs = plan.post_order_vec();
180-
// get the annotation values
181-
let mut explain_attrs = DerivedAttributes::from(config);
182-
plan.visit(&mut explain_attrs)?;
183-
184-
if config.subtree_size {
185-
for (expr, attr) in std::iter::zip(
186-
subtree_refs.iter(),
187-
explain_attrs.remove_results::<SubtreeSize>().into_iter(),
188-
) {
189-
let attrs = annotations.entry(expr).or_default();
190-
attrs.subtree_size = Some(attr);
191-
}
192-
}
193-
if config.non_negative {
194-
for (expr, attr) in std::iter::zip(
195-
subtree_refs.iter(),
196-
explain_attrs.remove_results::<NonNegative>().into_iter(),
197-
) {
198-
let attrs = annotations.entry(expr).or_default();
199-
attrs.non_negative = Some(attr);
200-
}
201-
}
202-
203-
if config.arity {
204-
for (expr, attr) in std::iter::zip(
205-
subtree_refs.iter(),
206-
explain_attrs.remove_results::<Arity>().into_iter(),
207-
) {
208-
let attrs = annotations.entry(expr).or_default();
209-
attrs.arity = Some(attr);
210-
}
211-
}
212-
213-
if config.types {
214-
for (expr, types) in std::iter::zip(
215-
subtree_refs.iter(),
216-
explain_attrs.remove_results::<RelationType>().into_iter(),
217-
) {
218-
let humanized_columns = types
219-
.into_iter()
220-
.map(|c| context.humanizer.humanize_column_type(&c))
221-
.collect::<Vec<_>>();
222-
let attr = bracketed("(", ")", separated(", ", humanized_columns)).to_string();
223-
let attrs = annotations.entry(expr).or_default();
224-
attrs.types = Some(attr);
225-
}
226-
}
227-
228-
if config.keys {
229-
for (expr, keys) in std::iter::zip(
230-
subtree_refs.iter(),
231-
explain_attrs.remove_results::<UniqueKeys>().into_iter(),
232-
) {
233-
let formatted_keys = keys
234-
.into_iter()
235-
.map(|key_set| bracketed("[", "]", separated(", ", key_set)).to_string());
236-
let attr = bracketed("(", ")", separated(", ", formatted_keys)).to_string();
237-
let attrs = annotations.entry(expr).or_default();
238-
attrs.keys = Some(attr);
239-
}
240-
}
241-
}
242-
243-
Ok(AnnotatedPlan { plan, annotations })
244-
}

0 commit comments

Comments
 (0)