pub struct SchemaElement {
pub type_: Option<Type>,
pub type_length: Option<i32>,
pub repetition_type: Option<FieldRepetitionType>,
pub name: String,
pub num_children: Option<i32>,
pub converted_type: Option<ConvertedType>,
pub scale: Option<i32>,
pub precision: Option<i32>,
pub field_id: Option<i32>,
pub logical_type: Option<LogicalType>,
}
Expand description
Represents a element inside a schema definition.
- if it is a group (inner node) then type is undefined and num_children is defined
- if it is a primitive type (leaf) then type is defined and num_children is undefined the nodes are listed in depth first traversal order.
Fields§
§type_: Option<Type>
Data type for this field. Not set if the current element is a non-leaf node
type_length: Option<i32>
If type is FIXED_LEN_BYTE_ARRAY, this is the byte length of the vales. Otherwise, if specified, this is the maximum bit length to store any of the values. (e.g. a low cardinality INT col could have this set to 3). Note that this is in the schema, and therefore fixed for the entire file.
repetition_type: Option<FieldRepetitionType>
repetition of the field. The root of the schema does not have a repetition_type. All other nodes must have one
name: String
Name of the field in the schema
num_children: Option<i32>
Nested fields. Since thrift does not support nested fields, the nesting is flattened to a single list by a depth-first traversal. The children count is used to construct the nested relationship. This field is not set when the element is a primitive type
converted_type: Option<ConvertedType>
DEPRECATED: When the schema is the result of a conversion from another model. Used to record the original type to help with cross conversion.
This is superseded by logicalType.
scale: Option<i32>
DEPRECATED: Used when this column contains decimal data. See the DECIMAL converted type for more details.
This is superseded by using the DecimalType annotation in logicalType.
precision: Option<i32>
§field_id: Option<i32>
When the original schema supports field ids, this will save the original field id in the parquet schema
logical_type: Option<LogicalType>
The logical type of this SchemaElement
LogicalType replaces ConvertedType, but ConvertedType is still required for some logical types to ensure forward-compatibility in format v1.
Implementations§
Source§impl SchemaElement
impl SchemaElement
pub fn new<F1, F2, F3, F5, F6, F7, F8, F9, F10>( type_: F1, type_length: F2, repetition_type: F3, name: String, num_children: F5, converted_type: F6, scale: F7, precision: F8, field_id: F9, logical_type: F10, ) -> SchemaElement
pub fn read_from_in_protocol<T: TInputProtocol>( i_prot: &mut T, ) -> Result<SchemaElement>
pub fn write_to_out_protocol<T: TOutputProtocol>( &self, o_prot: &mut T, ) -> Result<usize>
Trait Implementations§
Source§impl Clone for SchemaElement
impl Clone for SchemaElement
Source§fn clone(&self) -> SchemaElement
fn clone(&self) -> SchemaElement
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more