pub fn ensure_decoded(
        &mut self,
        time_zone: &Tz,
        field_type: &FieldType,
        logical_rows: &[usize],
    ) -> Result<()> {
        if self.is_decoded() {
            return Ok(());
        }
        let eval_type = box_try!(EvalType::try_from(field_type.as_accessor().tp()));
        let raw_vec = self.raw();
        let raw_vec_len = raw_vec.len();

        let mut decoded_column = VectorValue::with_capacity(raw_vec_len, eval_type);

        match_template_evaluable! {
            TT, match &mut decoded_column {
                VectorValue::TT(vec) => {
                    for _ in 0..raw_vec_len {
                        vec.push(None);
                    }
                    for row_index in logical_rows {
                        vec[*row_index] = raw_vec[*row_index].decode(field_type, time_zone)?;
                    }
                }
            }
        }

        *self = LazyBatchColumn::Decoded(decoded_column);

        Ok(())
    }
/// Decodes this column if the column is not decoded, according to the given logical rows map.
/// After decoding, the decoded column will have the same physical layout as the encoded one
/// (i.e. the same logical rows), but elements in unnecessary positions will not be decoded
/// and will be `None`.
///
/// The field type is needed because we use the same `DateTime` structure when handling
/// Date, Time or Timestamp.
// TODO: Maybe it's a better idea to assign different eval types for different date types.
Decodes this column if the column is not decoded, according to the given logical rows map.
After decoding, the decoded column will have the same physical layout as the encoded one
, but elements in unnecessary positions will not be decoded
and will be `None`.

The field type is needed because we use the same `DateTime` structure when handling
Date, Time or Timestamp.
TODO: Maybe it's a better idea to assign different eval types for different date types.
Decodes this column if the column is not decoded according to the given logical rows map . After decoding the decoded column will have the same physical layout as the encoded one but elements in unnecessary positions will not be decoded and will be ` None ` . The field type is needed because we use the same ` DateTime ` structure when handling Date Time or Timestamp . TODO : Maybe it ' s a better idea to assign different eval types for different date types .
pub fn ensure_decoded(
        &mut self,
        time_zone: &Tz,
        field_type: &FieldType,
        logical_rows: &[usize],
    ) -> Result<()> {
        if self.is_decoded() {
            return Ok(());
        }
        let eval_type = box_try!(EvalType::try_from(field_type.as_accessor().tp()));
        let raw_vec = self.raw();
        let raw_vec_len = raw_vec.len();
        let mut decoded_column = VectorValue::with_capacity(raw_vec_len, eval_type);
        match_template_evaluable! {
            TT, match &mut decoded_column {
                VectorValue::TT(vec) => {
                    for _ in 0..raw_vec_len {
                        vec.push(None);
                    }
                    for row_index in logical_rows {
                        vec[*row_index] = raw_vec[*row_index].decode(field_type, time_zone)?;
                    }
                }
            }
        }
        *self = LazyBatchColumn::Decoded(decoded_column);
        Ok(())
    }
pub fn ensure_decoded ( & mut self , time_zone : & Tz , field_type : & FieldType , logical_rows : & [ usize ] , ) -> Result < ( ) > { if self . is_decoded ( ) { return Ok ( ( ) ) ; } let eval_type = box_try ! ( EvalType try_from ( field_type as_accessor ( ) tp ( ) ) ) ; let raw_vec = self . raw ( ) ; let raw_vec_len = raw_vec . len ( ) ; let mut decoded_column = VectorValue :: with_capacity ( raw_vec_len , eval_type ) ; match_template_evaluable ! { TT match mut decoded_column { VectorValue TT ( vec ) { for in 0 raw_vec_len { vec push ( None ) } for row_index in logical_rows { vec [ row_index ] raw_vec [ row_index ] decode ( field_type time_zone ) } } } } * self = LazyBatchColumn :: Decoded ( decoded_column ) ; Ok ( ( ) ) }
Decodes this column if the column is not decoded, according to the given logical rows map.
Decodes this column if the column is not decoded according to the given logical rows map .
&mut self
time_zone
&Tz
field_type
&FieldType
logical_rows
&[usize]
&mut self
time_zone
&Tz
field_type
&FieldType
logical_rows
&[usize]