Skip to content

Commit 01745cc

Browse files
zzylolclaude
andauthored
feat(plan): expose bind::logical for deployment-forced fallback (#154)
A deployment sometimes knows implement_tree_in_with would otherwise actively bind a node to an Implementation it can't actually serve (e.g. an accumulator kind the deployment's runtime doesn't implement yet) -- it needs to force that one node through the same Logical fallback this crate's own dispatch uses, without duplicating the schema-lift plumbing. Widen logical()'s visibility to make that possible. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
1 parent 707a062 commit 01745cc

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

‎crates/plan/src/bind.rs‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,8 +222,13 @@ fn readout(intent: &AggIntent, col: &ColumnRef) -> SketchQuery {
222222
}
223223

224224
/// Wrap an unrewritten L3 subtree, lifting its schema with every column
225-
/// `L4DataType::Primitive`.
226-
fn logical(expr: &QueryExpr, scope: &BindingScope) -> Result<Rc<L4Node>, ImplementError> {
225+
/// `L4DataType::Primitive`. Public so a deployment can force a node it
226+
/// knows `implement_tree_in_with` would otherwise actively (mis)bind —
227+
/// e.g. an intent this crate's `boundary::implementation_for` maps to an
228+
/// accumulator kind the deployment's runtime doesn't actually implement —
229+
/// through the same fallback this crate's own dispatch uses, without
230+
/// duplicating the schema-lift logic.
231+
pub fn logical(expr: &QueryExpr, scope: &BindingScope) -> Result<Rc<L4Node>, ImplementError> {
227232
let schema = expr.output_schema_in(scope)?;
228233
Ok(Rc::new(L4Node {
229234
expr: SummaryExpr::Logical(Box::new(expr.clone())),

0 commit comments

Comments
 (0)