MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / try_visit_scalars_mut1

Method try_visit_scalars_mut1

src/expr/src/relation.rs:1689–1784  ·  view source on GitHub ↗

Fallible visitor for the [`MirScalarExpr`]s directly owned by this relation expression. The `f` visitor should not recursively descend into owned [`MirRelationExpr`]s.

(&mut self, f: &mut F)

Source from the content-addressed store, hash-verified

1687 ///
1688 /// The `f` visitor should not recursively descend into owned [`MirRelationExpr`]s.
1689 pub fn try_visit_scalars_mut1<F, E>(&mut self, f: &mut F) -> Result<(), E>
1690 where
1691 F: FnMut(&mut MirScalarExpr) -> Result<(), E>,
1692 {
1693 use MirRelationExpr::*;
1694 match self {
1695 Map { scalars, .. } => {
1696 for s in scalars {
1697 f(s)?;
1698 }
1699 }
1700 Filter { predicates, .. } => {
1701 for p in predicates {
1702 f(p)?;
1703 }
1704 }
1705 FlatMap { exprs, .. } => {
1706 for expr in exprs {
1707 f(expr)?;
1708 }
1709 }
1710 Join {
1711 inputs: _,
1712 equivalences,
1713 implementation,
1714 } => {
1715 for equivalence in equivalences {
1716 for expr in equivalence {
1717 f(expr)?;
1718 }
1719 }
1720 match implementation {
1721 JoinImplementation::Differential((_, start_key, _), order) => {
1722 if let Some(start_key) = start_key {
1723 for k in start_key {
1724 f(k)?;
1725 }
1726 }
1727 for (_, lookup_key, _) in order {
1728 for k in lookup_key {
1729 f(k)?;
1730 }
1731 }
1732 }
1733 JoinImplementation::DeltaQuery(paths) => {
1734 for path in paths {
1735 for (_, lookup_key, _) in path {
1736 for k in lookup_key {
1737 f(k)?;
1738 }
1739 }
1740 }
1741 }
1742 JoinImplementation::IndexedFilter(_coll_id, _idx_id, index_key, _) => {
1743 for k in index_key {
1744 f(k)?;
1745 }
1746 }

Callers 2

try_visit_scalars_mutMethod · 0.80
prep_relation_exprMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected