Package org.apache.parquet.format
Class ColumnOrder
- java.lang.Object
-
- org.apache.thrift.TUnion<ColumnOrder,ColumnOrder._Fields>
-
- org.apache.parquet.format.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 classColumnOrder._FieldsThe 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
-
Constructor Summary
Constructors Constructor Description ColumnOrder()ColumnOrder(ColumnOrder other)ColumnOrder(ColumnOrder._Fields setField, Object value)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcheckType(ColumnOrder._Fields setField, Object value)intcompareTo(ColumnOrder other)ColumnOrderdeepCopy()protected ColumnOrder._FieldsenumForId(short id)booleanequals(Object other)booleanequals(ColumnOrder other)ColumnOrder._FieldsfieldForId(int fieldId)protected org.apache.thrift.protocol.TFieldgetFieldDesc(ColumnOrder._Fields setField)protected org.apache.thrift.protocol.TStructgetStructDesc()TypeDefinedOrdergetTYPE_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.inthashCode()booleanisSetTYPE_ORDER()voidsetTYPE_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 ObjectstandardSchemeReadValue(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TField field)protected voidstandardSchemeWriteValue(org.apache.thrift.protocol.TProtocol oprot)protected ObjecttupleSchemeReadValue(org.apache.thrift.protocol.TProtocol iprot, short fieldID)protected voidtupleSchemeWriteValue(org.apache.thrift.protocol.TProtocol oprot)static ColumnOrderTYPE_ORDER(TypeDefinedOrder value)
-
-
-
Field Detail
-
metaDataMap
public static final Map<ColumnOrder._Fields,org.apache.thrift.meta_data.FieldMetaData> metaDataMap
-
-
Constructor Detail
-
ColumnOrder
public ColumnOrder()
-
ColumnOrder
public ColumnOrder(ColumnOrder._Fields setField, Object value)
-
ColumnOrder
public ColumnOrder(ColumnOrder other)
-
-
Method Detail
-
deepCopy
public ColumnOrder deepCopy()
-
TYPE_ORDER
public static ColumnOrder TYPE_ORDER(TypeDefinedOrder value)
-
checkType
protected void checkType(ColumnOrder._Fields setField, Object value) throws ClassCastException
- Specified by:
checkTypein classorg.apache.thrift.TUnion<ColumnOrder,ColumnOrder._Fields>- Throws:
ClassCastException
-
standardSchemeReadValue
protected Object standardSchemeReadValue(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TField field) throws org.apache.thrift.TException
- Specified by:
standardSchemeReadValuein classorg.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:
standardSchemeWriteValuein classorg.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:
tupleSchemeReadValuein classorg.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:
tupleSchemeWriteValuein classorg.apache.thrift.TUnion<ColumnOrder,ColumnOrder._Fields>- Throws:
org.apache.thrift.TException
-
getFieldDesc
protected org.apache.thrift.protocol.TField getFieldDesc(ColumnOrder._Fields setField)
- Specified by:
getFieldDescin classorg.apache.thrift.TUnion<ColumnOrder,ColumnOrder._Fields>
-
getStructDesc
protected org.apache.thrift.protocol.TStruct getStructDesc()
- Specified by:
getStructDescin classorg.apache.thrift.TUnion<ColumnOrder,ColumnOrder._Fields>
-
enumForId
protected ColumnOrder._Fields enumForId(short id)
- Specified by:
enumForIdin classorg.apache.thrift.TUnion<ColumnOrder,ColumnOrder._Fields>
-
fieldForId
public ColumnOrder._Fields fieldForId(int fieldId)
-
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)
-
-