Struct parquet_format_safe::SchemaElement
source · 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 async fn stream_from_in_protocol<T: TInputStreamProtocol>( i_prot: &mut T ) -> Result<SchemaElement>
pub fn write_to_out_protocol<T: TOutputProtocol>( &self, o_prot: &mut T ) -> Result<usize>
pub async fn write_to_out_stream_protocol<T: TOutputStreamProtocol>( &self, o_prot: &mut T ) -> Result<usize>
Trait Implementations§
source§impl AsyncReadThrift for SchemaElement
impl AsyncReadThrift for SchemaElement
fn stream_from_in_protocol<'life0, 'async_trait, T>(
i_prot: &'life0 mut T
) -> Pin<Box<dyn Future<Output = Result<SchemaElement>> + Send + 'async_trait>>where
T: 'async_trait + TInputStreamProtocol,
'life0: 'async_trait,
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 moresource§impl Debug for SchemaElement
impl Debug for SchemaElement
source§impl Hash for SchemaElement
impl Hash for SchemaElement
source§impl Ord for SchemaElement
impl Ord for SchemaElement
source§fn cmp(&self, other: &SchemaElement) -> Ordering
fn cmp(&self, other: &SchemaElement) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for SchemaElement
impl PartialEq for SchemaElement
source§fn eq(&self, other: &SchemaElement) -> bool
fn eq(&self, other: &SchemaElement) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for SchemaElement
impl PartialOrd for SchemaElement
source§fn partial_cmp(&self, other: &SchemaElement) -> Option<Ordering>
fn partial_cmp(&self, other: &SchemaElement) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more