DataTypeNode

Enum DataTypeNode 

Source
#[non_exhaustive]
pub enum DataTypeNode {
Show 45 variants Bool, UInt8, UInt16, UInt32, UInt64, UInt128, UInt256, Int8, Int16, Int32, Int64, Int128, Int256, Float32, Float64, BFloat16, Decimal(u8, u8, DecimalType), String, FixedString(usize), UUID, Date, Date32, DateTime(Option<String>), DateTime64(DateTimePrecision, Option<String>), Time, Time64(DateTimePrecision), Interval(IntervalType), IPv4, IPv6, Nullable(Box<DataTypeNode>), LowCardinality(Box<DataTypeNode>), Array(Box<DataTypeNode>), Tuple(Vec<DataTypeNode>), Enum(EnumType, HashMap<i16, String>), Map([Box<DataTypeNode>; 2]), AggregateFunction(String, Vec<DataTypeNode>), Variant(Vec<DataTypeNode>), Dynamic, JSON, Point, Ring, LineString, MultiLineString, Polygon, MultiPolygon,
}
Expand description

Represents a data type in ClickHouse. See https://clickhouse.com/docs/sql-reference/data-types

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Bool

§

UInt8

§

UInt16

§

UInt32

§

UInt64

§

UInt128

§

UInt256

§

Int8

§

Int16

§

Int32

§

Int64

§

Int128

§

Int256

§

Float32

§

Float64

§

BFloat16

§

Decimal(u8, u8, DecimalType)

Scale, Precision, 32 | 64 | 128 | 256

§

String

§

FixedString(usize)

§

UUID

§

Date

§

Date32

§

DateTime(Option<String>)

Optional timezone

§

DateTime64(DateTimePrecision, Option<String>)

Precision and optional timezone

§

Time

Time-of-day, no timezone (timezone is ignored in value operations)

§

Time64(DateTimePrecision)

Precision and optional timezone (timezone is ignored in value operations)

§

Interval(IntervalType)

§

IPv4

§

IPv6

§

Nullable(Box<DataTypeNode>)

§

LowCardinality(Box<DataTypeNode>)

§

Array(Box<DataTypeNode>)

§

Tuple(Vec<DataTypeNode>)

§

Enum(EnumType, HashMap<i16, String>)

§

Map([Box<DataTypeNode>; 2])

Key-Value pairs are defined as an array, so it can be used as a slice

§

AggregateFunction(String, Vec<DataTypeNode>)

Function name and its arguments

§

Variant(Vec<DataTypeNode>)

Contains all possible types for this variant

§

Dynamic

§

JSON

§

Point

§

Ring

§

LineString

§

MultiLineString

§

Polygon

§

MultiPolygon

Implementations§

Source§

impl DataTypeNode

Source

pub fn new(name: &str) -> Result<Self, TypesError>

Parses a data type from a string that is received in the RowBinaryWithNamesAndTypes and Native formats headers. See also: https://clickhouse.com/docs/interfaces/formats/RowBinaryWithNamesAndTypes#description

Source

pub fn remove_low_cardinality(&self) -> &DataTypeNode

LowCardinality(T) -> T

Trait Implementations§

Source§

impl Clone for DataTypeNode

Source§

fn clone(&self) -> DataTypeNode

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DataTypeNode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for DataTypeNode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<DataTypeNode> for String

Source§

fn from(value: DataTypeNode) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for DataTypeNode

Source§

fn eq(&self, other: &DataTypeNode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for DataTypeNode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.