// All row ids that have either NULL or not NULL values.
All row ids that have either NULL or not NULL values.
All row ids that have either NULL or not NULL values .
fn row_ids_is_null(&self, is_null: bool, mut dst: RowIDs) -> RowIDs {
        dst.clear();
        if !self.contains_null {
            if is_null {
                return dst; // no NULL values in column so no rows will match
            }
            // no NULL values in column so all rows will match
            dst.add_range(0, self.num_rows());
            return dst;
        }
        let mut found = false;
        let mut count = 0;
        for (i, &next) in self.encoded_data.iter().enumerate() {
            let cmp_result = next == NULL_ID;
            if cmp_result != is_null && found {
                let (min, max) = (i as u32 - count, i as u32);
                dst.add_range(min, max);
                found = false;
                count = 0;
                continue;
            } else if cmp_result != is_null {
                continue;
            }
            if !found {
                found = true;
            }
            count += 1;
        }
        // add any remaining range.
        if found {
            let (min, max) = (
                self.encoded_data.len() as u32 - count,
                self.encoded_data.len() as u32,
            );
            dst.add_range(min, max);
        }
        dst
    }
fn row_ids_is_null ( & self , is_null : bool , mut dst : RowIDs ) -> RowIDs { dst . clear ( ) ; if ! self . contains_null { if is_null { return dst ; // no NULL values in column so no rows will match } // no NULL values in column so all rows will match dst . add_range ( 0 , self . num_rows ( ) ) ; return dst ; } let mut found = false ; let mut count = 0 ; for ( i , & next ) in self . encoded_data . iter ( ) . enumerate ( ) { let cmp_result = next == NULL_ID ; if cmp_result != is_null && found { let ( min , max ) = ( i as u32 - count , i as u32 ) ; dst . add_range ( min , max ) ; found = false ; count = 0 ; continue ; } else if cmp_result != is_null { continue ; } if ! found { found = true ; } count += 1 ; } // add any remaining range. if found { let ( min , max ) = ( self . encoded_data . len ( ) as u32 - count , self . encoded_data . len ( ) as u32 , ) ; dst . add_range ( min , max ) ; } dst }
All row ids that have either NULL or not NULL values.
All row ids that have either NULL or not NULL values .
&self
is_null
bool
dst
RowIDs