fn correlation_info(&self, model: &Model) -> BTreeMap<QuantifierId, HashSet<ColumnReference>> {
        let mut correlation_info = BTreeMap::new();
        for q_id in self.quantifiers.iter() {
            // collect the column references from the current context within
            // the subgraph under the current quantifier
            let mut column_refs = HashSet::new();
            let mut f = |inner_box: Ref<'_, QueryBox>| -> Result<(), ()> {
                inner_box.visit_expressions(&mut |expr: &BoxScalarExpr| -> Result<(), ()> {
                    expr.collect_column_references_from_context(
                        &self.quantifiers,
                        &mut column_refs,
                    );
                    Ok(())
                })
            };
            let q = model.get_quantifier(*q_id);
            model
                .visit_pre_boxes_in_subgraph(&mut f, q.input_box)
                .unwrap();
            if !column_refs.is_empty() {
                correlation_info.insert(*q_id, column_refs);
            }
        }
        correlation_info
    }
/// Correlation information of the quantifiers in this box. Returns a map
/// containing, for each quantifier, the column references from sibling
/// quantifiers they are correlated with.
Correlation information of the quantifiers in this box. Returns a map
containing, for each quantifier, the column references from sibling
quantifiers they are correlated with.
Correlation information of the quantifiers in this box . Returns a map containing for each quantifier the column references from sibling quantifiers they are correlated with .
fn correlation_info(&self, model: &Model) -> BTreeMap<QuantifierId, HashSet<ColumnReference>> {
        let mut correlation_info = BTreeMap::new();
        for q_id in self.quantifiers.iter() {
            // collect the column references from the current context within
            // the subgraph under the current quantifier
            let mut column_refs = HashSet::new();
            let mut f = |inner_box: Ref<'_, QueryBox>| -> Result<(), ()> {
                inner_box.visit_expressions(&mut |expr: &BoxScalarExpr| -> Result<(), ()> {
                    expr.collect_column_references_from_context(
                        &self.quantifiers,
                        &mut column_refs,
                    );
                    Ok(())
                })
            };
            let q = model.get_quantifier(*q_id);
            model
                .visit_pre_boxes_in_subgraph(&mut f, q.input_box)
                .unwrap();
            if !column_refs.is_empty() {
                correlation_info.insert(*q_id, column_refs);
            }
        }
        correlation_info
    }
fn correlation_info ( & self , model : & Model ) -> BTreeMap < QuantifierId , HashSet < ColumnReference > > { let mut correlation_info = BTreeMap :: new ( ) ; for q_id in self . quantifiers . iter ( ) { // collect the column references from the current context within // the subgraph under the current quantifier let mut column_refs = HashSet :: new ( ) ; let mut f = | inner_box : Ref < ' _ , QueryBox > | -> Result < ( ) , ( ) > { inner_box . visit_expressions ( & mut | expr : & BoxScalarExpr | -> Result < ( ) , ( ) > { expr . collect_column_references_from_context ( & self . quantifiers , & mut column_refs , ) ; Ok ( ( ) ) } ) } ; let q = model . get_quantifier ( * q_id ) ; model . visit_pre_boxes_in_subgraph ( & mut f , q . input_box ) . unwrap ( ) ; if ! column_refs . is_empty ( ) { correlation_info . insert ( * q_id , column_refs ) ; } } correlation_info }
Correlation information of the quantifiers in this box.
Correlation information of the quantifiers in this box .
&self
model
&Model
&self
model
&Model