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>,
}format module is no longer maintained, and will be removed in 59.0.0Expand 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>format module is no longer maintained, and will be removed in 59.0.0Data type for this field. Not set if the current element is a non-leaf node
type_length: Option<i32>format module is no longer maintained, and will be removed in 59.0.0If type is FIXED_LEN_BYTE_ARRAY, this is the byte length of the values. 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>format module is no longer maintained, and will be removed in 59.0.0repetition of the field. The root of the schema does not have a repetition_type. All other nodes must have one
name: Stringformat module is no longer maintained, and will be removed in 59.0.0Name of the field in the schema
num_children: Option<i32>format module is no longer maintained, and will be removed in 59.0.0Nested 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>format module is no longer maintained, and will be removed in 59.0.0DEPRECATED: 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>format module is no longer maintained, and will be removed in 59.0.0DEPRECATED: 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>format module is no longer maintained, and will be removed in 59.0.0field_id: Option<i32>format module is no longer maintained, and will be removed in 59.0.0When the original schema supports field ids, this will save the original field id in the parquet schema
logical_type: Option<LogicalType>format module is no longer maintained, and will be removed in 59.0.0The 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
format module is no longer maintained, and will be removed in 59.0.0Trait 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 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§impl PartialOrd for SchemaElement
impl PartialOrd for SchemaElement
Source§impl TSerializable for SchemaElement
impl TSerializable for SchemaElement
Source§fn read_from_in_protocol<T: TInputProtocol>(
i_prot: &mut T,
) -> Result<SchemaElement>
fn read_from_in_protocol<T: TInputProtocol>( i_prot: &mut T, ) -> Result<SchemaElement>
Source§fn write_to_out_protocol<T: TOutputProtocol>(
&self,
o_prot: &mut T,
) -> Result<()>
fn write_to_out_protocol<T: TOutputProtocol>( &self, o_prot: &mut T, ) -> Result<()>
impl Eq for SchemaElement
impl StructuralPartialEq for SchemaElement
Auto Trait Implementations§
impl Freeze for SchemaElement
impl RefUnwindSafe for SchemaElement
impl Send for SchemaElement
impl Sync for SchemaElement
impl Unpin for SchemaElement
impl UnwindSafe for SchemaElement
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more