1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
use super::sort::SortOrder;
/// Column order that specifies what method was used to aggregate min/max values for
/// statistics.
///
/// If column order is undefined, then it is the legacy behaviour and all values should
/// be compared as signed values/bytes.
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum ColumnOrder {
/// Column uses the order defined by its logical or physical type
/// (if there is no logical type), parquet-format 2.4.0+.
TypeDefinedOrder(SortOrder),
/// Undefined column order, means legacy behaviour before parquet-format 2.4.0.
/// Sort order is always SIGNED.
Undefined,
}
impl ColumnOrder {
/// Returns sort order associated with this column order.
pub fn sort_order(&self) -> SortOrder {
match *self {
ColumnOrder::TypeDefinedOrder(order) => order,
ColumnOrder::Undefined => SortOrder::Signed,
}
}
}