Class ColumnOrder

  • All Implemented Interfaces:
    Serializable, Comparable<ColumnOrder>, org.apache.thrift.TBase<ColumnOrder,​ColumnOrder._Fields>, org.apache.thrift.TSerializable

    @Generated(value="Autogenerated by Thrift Compiler (0.22.0)",
               date="2025-12-22")
    public class ColumnOrder
    extends org.apache.thrift.TUnion<ColumnOrder,​ColumnOrder._Fields>
    Union to specify the order used for the min_value and max_value fields for a column. This union takes the role of an enhanced enum that allows rich elements (which will be needed for a collation-based ordering in the future). Possible values are: * TypeDefinedOrder - the column uses the order defined by its logical or physical type (if there is no logical type). If the reader does not support the value of this union, min and max stats for this column should be ignored.
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  ColumnOrder._Fields
      The set of fields this struct contains, along with convenience methods for finding and manipulating them.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static Map<ColumnOrder._Fields,​org.apache.thrift.meta_data.FieldMetaData> metaDataMap  
      • Fields inherited from class org.apache.thrift.TUnion

        setField_, value_
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void checkType​(ColumnOrder._Fields setField, Object value)  
      int compareTo​(ColumnOrder other)  
      ColumnOrder deepCopy()  
      protected ColumnOrder._Fields enumForId​(short id)  
      boolean equals​(Object other)  
      boolean equals​(ColumnOrder other)  
      ColumnOrder._Fields fieldForId​(int fieldId)  
      protected org.apache.thrift.protocol.TField getFieldDesc​(ColumnOrder._Fields setField)  
      protected org.apache.thrift.protocol.TStruct getStructDesc()  
      TypeDefinedOrder getTYPE_ORDER()
      The sort orders for logical types are: UTF8 - unsigned byte-wise comparison INT8 - signed comparison INT16 - signed comparison INT32 - signed comparison INT64 - signed comparison UINT8 - unsigned comparison UINT16 - unsigned comparison UINT32 - unsigned comparison UINT64 - unsigned comparison DECIMAL - signed comparison of the represented value DATE - signed comparison FLOAT16 - signed comparison of the represented value (*) TIME_MILLIS - signed comparison TIME_MICROS - signed comparison TIMESTAMP_MILLIS - signed comparison TIMESTAMP_MICROS - signed comparison INTERVAL - undefined JSON - unsigned byte-wise comparison BSON - unsigned byte-wise comparison ENUM - unsigned byte-wise comparison LIST - undefined MAP - undefined VARIANT - undefined GEOMETRY - undefined GEOGRAPHY - undefined In the absence of logical types, the sort order is determined by the physical type: BOOLEAN - false, true INT32 - signed comparison INT64 - signed comparison INT96 (only used for legacy timestamps) - undefined(+) FLOAT - signed comparison of the represented value (*) DOUBLE - signed comparison of the represented value (*) BYTE_ARRAY - unsigned byte-wise comparison FIXED_LEN_BYTE_ARRAY - unsigned byte-wise comparison (+) While the INT96 type has been deprecated, at the time of writing it is still used in many legacy systems.
      int hashCode()  
      boolean isSetTYPE_ORDER()  
      void setTYPE_ORDER​(TypeDefinedOrder value)
      The sort orders for logical types are: UTF8 - unsigned byte-wise comparison INT8 - signed comparison INT16 - signed comparison INT32 - signed comparison INT64 - signed comparison UINT8 - unsigned comparison UINT16 - unsigned comparison UINT32 - unsigned comparison UINT64 - unsigned comparison DECIMAL - signed comparison of the represented value DATE - signed comparison FLOAT16 - signed comparison of the represented value (*) TIME_MILLIS - signed comparison TIME_MICROS - signed comparison TIMESTAMP_MILLIS - signed comparison TIMESTAMP_MICROS - signed comparison INTERVAL - undefined JSON - unsigned byte-wise comparison BSON - unsigned byte-wise comparison ENUM - unsigned byte-wise comparison LIST - undefined MAP - undefined VARIANT - undefined GEOMETRY - undefined GEOGRAPHY - undefined In the absence of logical types, the sort order is determined by the physical type: BOOLEAN - false, true INT32 - signed comparison INT64 - signed comparison INT96 (only used for legacy timestamps) - undefined(+) FLOAT - signed comparison of the represented value (*) DOUBLE - signed comparison of the represented value (*) BYTE_ARRAY - unsigned byte-wise comparison FIXED_LEN_BYTE_ARRAY - unsigned byte-wise comparison (+) While the INT96 type has been deprecated, at the time of writing it is still used in many legacy systems.
      protected Object standardSchemeReadValue​(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TField field)  
      protected void standardSchemeWriteValue​(org.apache.thrift.protocol.TProtocol oprot)  
      protected Object tupleSchemeReadValue​(org.apache.thrift.protocol.TProtocol iprot, short fieldID)  
      protected void tupleSchemeWriteValue​(org.apache.thrift.protocol.TProtocol oprot)  
      static ColumnOrder TYPE_ORDER​(TypeDefinedOrder value)  
      • Methods inherited from class org.apache.thrift.TUnion

        clear, getFieldValue, getFieldValue, getFieldValue, getSetField, isSet, isSet, isSet, read, setFieldValue, setFieldValue, toString, write
    • Field Detail

      • metaDataMap

        public static final Map<ColumnOrder._Fields,​org.apache.thrift.meta_data.FieldMetaData> metaDataMap
    • Method Detail

      • standardSchemeReadValue

        protected Object standardSchemeReadValue​(org.apache.thrift.protocol.TProtocol iprot,
                                                 org.apache.thrift.protocol.TField field)
                                          throws org.apache.thrift.TException
        Specified by:
        standardSchemeReadValue in class org.apache.thrift.TUnion<ColumnOrder,​ColumnOrder._Fields>
        Throws:
        org.apache.thrift.TException
      • standardSchemeWriteValue

        protected void standardSchemeWriteValue​(org.apache.thrift.protocol.TProtocol oprot)
                                         throws org.apache.thrift.TException
        Specified by:
        standardSchemeWriteValue in class org.apache.thrift.TUnion<ColumnOrder,​ColumnOrder._Fields>
        Throws:
        org.apache.thrift.TException
      • tupleSchemeReadValue

        protected Object tupleSchemeReadValue​(org.apache.thrift.protocol.TProtocol iprot,
                                              short fieldID)
                                       throws org.apache.thrift.TException
        Specified by:
        tupleSchemeReadValue in class org.apache.thrift.TUnion<ColumnOrder,​ColumnOrder._Fields>
        Throws:
        org.apache.thrift.TException
      • tupleSchemeWriteValue

        protected void tupleSchemeWriteValue​(org.apache.thrift.protocol.TProtocol oprot)
                                      throws org.apache.thrift.TException
        Specified by:
        tupleSchemeWriteValue in class org.apache.thrift.TUnion<ColumnOrder,​ColumnOrder._Fields>
        Throws:
        org.apache.thrift.TException
      • getStructDesc

        protected org.apache.thrift.protocol.TStruct getStructDesc()
        Specified by:
        getStructDesc in class org.apache.thrift.TUnion<ColumnOrder,​ColumnOrder._Fields>
      • getTYPE_ORDER

        public TypeDefinedOrder getTYPE_ORDER()
        The sort orders for logical types are: UTF8 - unsigned byte-wise comparison INT8 - signed comparison INT16 - signed comparison INT32 - signed comparison INT64 - signed comparison UINT8 - unsigned comparison UINT16 - unsigned comparison UINT32 - unsigned comparison UINT64 - unsigned comparison DECIMAL - signed comparison of the represented value DATE - signed comparison FLOAT16 - signed comparison of the represented value (*) TIME_MILLIS - signed comparison TIME_MICROS - signed comparison TIMESTAMP_MILLIS - signed comparison TIMESTAMP_MICROS - signed comparison INTERVAL - undefined JSON - unsigned byte-wise comparison BSON - unsigned byte-wise comparison ENUM - unsigned byte-wise comparison LIST - undefined MAP - undefined VARIANT - undefined GEOMETRY - undefined GEOGRAPHY - undefined In the absence of logical types, the sort order is determined by the physical type: BOOLEAN - false, true INT32 - signed comparison INT64 - signed comparison INT96 (only used for legacy timestamps) - undefined(+) FLOAT - signed comparison of the represented value (*) DOUBLE - signed comparison of the represented value (*) BYTE_ARRAY - unsigned byte-wise comparison FIXED_LEN_BYTE_ARRAY - unsigned byte-wise comparison (+) While the INT96 type has been deprecated, at the time of writing it is still used in many legacy systems. If a Parquet implementation chooses to write statistics for INT96 columns, it is recommended to order them according to the legacy rules: - compare the last 4 bytes (days) as a little-endian 32-bit signed integer - if equal last 4 bytes, compare the first 8 bytes as a little-endian 64-bit signed integer (nanos) See https://github.com/apache/parquet-format/issues/502 for more details (*) Because the sorting order is not specified properly for floating point values (relations vs. total ordering) the following compatibility rules should be applied when reading statistics: - If the min is a NaN, it should be ignored. - If the max is a NaN, it should be ignored. - If the min is +0, the row group may contain -0 values as well. - If the max is -0, the row group may contain +0 values as well. - When looking for NaN values, min and max should be ignored. When writing statistics the following rules should be followed: - NaNs should not be written to min or max statistics fields. - If the computed max value is zero (whether negative or positive), `+0.0` should be written into the max statistics field. - If the computed min value is zero (whether negative or positive), `-0.0` should be written into the min statistics field.
      • setTYPE_ORDER

        public void setTYPE_ORDER​(TypeDefinedOrder value)
        The sort orders for logical types are: UTF8 - unsigned byte-wise comparison INT8 - signed comparison INT16 - signed comparison INT32 - signed comparison INT64 - signed comparison UINT8 - unsigned comparison UINT16 - unsigned comparison UINT32 - unsigned comparison UINT64 - unsigned comparison DECIMAL - signed comparison of the represented value DATE - signed comparison FLOAT16 - signed comparison of the represented value (*) TIME_MILLIS - signed comparison TIME_MICROS - signed comparison TIMESTAMP_MILLIS - signed comparison TIMESTAMP_MICROS - signed comparison INTERVAL - undefined JSON - unsigned byte-wise comparison BSON - unsigned byte-wise comparison ENUM - unsigned byte-wise comparison LIST - undefined MAP - undefined VARIANT - undefined GEOMETRY - undefined GEOGRAPHY - undefined In the absence of logical types, the sort order is determined by the physical type: BOOLEAN - false, true INT32 - signed comparison INT64 - signed comparison INT96 (only used for legacy timestamps) - undefined(+) FLOAT - signed comparison of the represented value (*) DOUBLE - signed comparison of the represented value (*) BYTE_ARRAY - unsigned byte-wise comparison FIXED_LEN_BYTE_ARRAY - unsigned byte-wise comparison (+) While the INT96 type has been deprecated, at the time of writing it is still used in many legacy systems. If a Parquet implementation chooses to write statistics for INT96 columns, it is recommended to order them according to the legacy rules: - compare the last 4 bytes (days) as a little-endian 32-bit signed integer - if equal last 4 bytes, compare the first 8 bytes as a little-endian 64-bit signed integer (nanos) See https://github.com/apache/parquet-format/issues/502 for more details (*) Because the sorting order is not specified properly for floating point values (relations vs. total ordering) the following compatibility rules should be applied when reading statistics: - If the min is a NaN, it should be ignored. - If the max is a NaN, it should be ignored. - If the min is +0, the row group may contain -0 values as well. - If the max is -0, the row group may contain +0 values as well. - When looking for NaN values, min and max should be ignored. When writing statistics the following rules should be followed: - NaNs should not be written to min or max statistics fields. - If the computed max value is zero (whether negative or positive), `+0.0` should be written into the max statistics field. - If the computed min value is zero (whether negative or positive), `-0.0` should be written into the min statistics field.
      • isSetTYPE_ORDER

        public boolean isSetTYPE_ORDER()
      • equals

        public boolean equals​(ColumnOrder other)
      • compareTo

        public int compareTo​(ColumnOrder other)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object