Enum DataType
pub enum DataType {
Show 85 variants
Character(Option<CharacterLength>),
Char(Option<CharacterLength>),
CharacterVarying(Option<CharacterLength>),
CharVarying(Option<CharacterLength>),
Varchar(Option<CharacterLength>),
Nvarchar(Option<CharacterLength>),
Uuid,
CharacterLargeObject(Option<u64>),
CharLargeObject(Option<u64>),
Clob(Option<u64>),
Binary(Option<u64>),
Varbinary(Option<u64>),
Blob(Option<u64>),
Bytes(Option<u64>),
Numeric(ExactNumberInfo),
Decimal(ExactNumberInfo),
BigNumeric(ExactNumberInfo),
BigDecimal(ExactNumberInfo),
Dec(ExactNumberInfo),
Float(Option<u64>),
TinyInt(Option<u64>),
UnsignedTinyInt(Option<u64>),
Int2(Option<u64>),
UnsignedInt2(Option<u64>),
SmallInt(Option<u64>),
UnsignedSmallInt(Option<u64>),
MediumInt(Option<u64>),
UnsignedMediumInt(Option<u64>),
Int(Option<u64>),
Int4(Option<u64>),
Int8(Option<u64>),
Int16,
Int32,
Int64,
Int128,
Int256,
Integer(Option<u64>),
UnsignedInt(Option<u64>),
UnsignedInt4(Option<u64>),
UnsignedInteger(Option<u64>),
UInt8,
UInt16,
UInt32,
UInt64,
UInt128,
UInt256,
BigInt(Option<u64>),
UnsignedBigInt(Option<u64>),
UnsignedInt8(Option<u64>),
Float4,
Float32,
Float64,
Real,
Float8,
Double,
DoublePrecision,
Bool,
Boolean,
Date,
Date32,
Time(Option<u64>, TimezoneInfo),
Datetime(Option<u64>),
Datetime64(u64, Option<String>),
Timestamp(Option<u64>, TimezoneInfo),
Interval,
JSON,
JSONB,
Regclass,
Text,
String(Option<u64>),
FixedString(u64),
Bytea,
Custom(ObjectName, Vec<String>),
Array(ArrayElemTypeDef),
Map(Box<DataType>, Box<DataType>),
Tuple(Vec<StructField>),
Nested(Vec<ColumnDef>),
Enum(Vec<String>),
Set(Vec<String>),
Struct(Vec<StructField>, StructBracketKind),
Union(Vec<UnionField>),
Nullable(Box<DataType>),
LowCardinality(Box<DataType>),
Unspecified,
Trigger,
}
Expand description
SQL data types
Variants§
Character(Option<CharacterLength>)
Fixed-length character type e.g. CHARACTER(10)
Char(Option<CharacterLength>)
Fixed-length char type e.g. CHAR(10)
CharacterVarying(Option<CharacterLength>)
Character varying type e.g. CHARACTER VARYING(10)
CharVarying(Option<CharacterLength>)
Char varying type e.g. CHAR VARYING(10)
Varchar(Option<CharacterLength>)
Variable-length character type e.g. VARCHAR(10)
Nvarchar(Option<CharacterLength>)
Variable-length character type e.g. NVARCHAR(10)
Uuid
Uuid type
CharacterLargeObject(Option<u64>)
Large character object with optional length e.g. CHARACTER LARGE OBJECT, CHARACTER LARGE OBJECT(1000), standard
CharLargeObject(Option<u64>)
Large character object with optional length e.g. CHAR LARGE OBJECT, CHAR LARGE OBJECT(1000), standard
Clob(Option<u64>)
Large character object with optional length e.g. CLOB, CLOB(1000), standard
Binary(Option<u64>)
Fixed-length binary type with optional length e.g. standard, MS SQL Server
Varbinary(Option<u64>)
Variable-length binary with optional length type e.g. standard, MS SQL Server
Blob(Option<u64>)
Bytes(Option<u64>)
Variable-length binary data with optional length.
Numeric(ExactNumberInfo)
Numeric type with optional precision and scale e.g. NUMERIC(10,2), standard
Decimal(ExactNumberInfo)
Decimal type with optional precision and scale e.g. DECIMAL(10,2), standard
BigNumeric(ExactNumberInfo)
BigNumeric type used in BigQuery
BigDecimal(ExactNumberInfo)
This is alias for BigNumeric
type used in BigQuery
Dec(ExactNumberInfo)
Dec type with optional precision and scale e.g. DEC(10,2), standard
Float(Option<u64>)
Floating point with optional precision e.g. FLOAT(8)
TinyInt(Option<u64>)
Tiny integer with optional display width e.g. TINYINT or TINYINT(3)
UnsignedTinyInt(Option<u64>)
Unsigned tiny integer with optional display width e.g. TINYINT UNSIGNED or TINYINT(3) UNSIGNED
Int2(Option<u64>)
Int2 as alias for SmallInt in postgresql Note: Int2 mean 2 bytes in postgres (not 2 bits) Int2 with optional display width e.g. INT2 or INT2(5)
UnsignedInt2(Option<u64>)
Unsigned Int2 with optional display width e.g. INT2 Unsigned or INT2(5) Unsigned
SmallInt(Option<u64>)
Small integer with optional display width e.g. SMALLINT or SMALLINT(5)
UnsignedSmallInt(Option<u64>)
Unsigned small integer with optional display width e.g. SMALLINT UNSIGNED or SMALLINT(5) UNSIGNED
MediumInt(Option<u64>)
MySQL medium integer (1) with optional display width e.g. MEDIUMINT or MEDIUMINT(5)
UnsignedMediumInt(Option<u64>)
Unsigned medium integer (1) with optional display width e.g. MEDIUMINT UNSIGNED or MEDIUMINT(5) UNSIGNED
Int(Option<u64>)
Int with optional display width e.g. INT or INT(11)
Int4(Option<u64>)
Int4 as alias for Integer in postgresql Note: Int4 mean 4 bytes in postgres (not 4 bits) Int4 with optional display width e.g. Int4 or Int4(11)
Int8(Option<u64>)
Int8 as alias for Bigint in postgresql and integer type in clickhouse Note: Int8 mean 8 bytes in postgresql (not 8 bits) Int8 with optional display width e.g. INT8 or INT8(11) Note: Int8 mean 8 bits in clickhouse
Int16
Integer type in clickhouse Note: Int16 mean 16 bits in clickhouse
Int32
Integer type in clickhouse Note: Int16 mean 32 bits in clickhouse
Int64
Integer type in bigquery, clickhouse
Int128
Integer type in clickhouse Note: Int128 mean 128 bits in clickhouse
Int256
Integer type in clickhouse Note: Int256 mean 256 bits in clickhouse
Integer(Option<u64>)
Integer with optional display width e.g. INTEGER or INTEGER(11)
UnsignedInt(Option<u64>)
Unsigned int with optional display width e.g. INT UNSIGNED or INT(11) UNSIGNED
UnsignedInt4(Option<u64>)
Unsigned int4 with optional display width e.g. INT4 UNSIGNED or INT4(11) UNSIGNED
UnsignedInteger(Option<u64>)
Unsigned integer with optional display width e.g. INTEGER UNSIGNED or INTEGER(11) UNSIGNED
UInt8
Unsigned integer type in clickhouse Note: UInt8 mean 8 bits in clickhouse
UInt16
Unsigned integer type in clickhouse Note: UInt16 mean 16 bits in clickhouse
UInt32
Unsigned integer type in clickhouse Note: UInt32 mean 32 bits in clickhouse
UInt64
Unsigned integer type in clickhouse Note: UInt64 mean 64 bits in clickhouse
UInt128
Unsigned integer type in clickhouse Note: UInt128 mean 128 bits in clickhouse
UInt256
Unsigned integer type in clickhouse Note: UInt256 mean 256 bits in clickhouse
BigInt(Option<u64>)
Big integer with optional display width e.g. BIGINT or BIGINT(20)
UnsignedBigInt(Option<u64>)
Unsigned big integer with optional display width e.g. BIGINT UNSIGNED or BIGINT(20) UNSIGNED
UnsignedInt8(Option<u64>)
Unsigned Int8 with optional display width e.g. INT8 UNSIGNED or INT8(11) UNSIGNED
Float4
Float4 as alias for Real in postgresql
Float32
Floating point in clickhouse
Float64
Floating point in bigquery
Real
Floating point e.g. REAL
Float8
Float8 as alias for Double in postgresql
Double
Double
DoublePrecision
Double PRECISION e.g. standard, postgresql
Bool
Bool as alias for Boolean in postgresql
Boolean
Boolean
Date
Date
Date32
Date32 with the same range as Datetime64
Time(Option<u64>, TimezoneInfo)
Time with optional time precision and time zone information e.g. standard.
Datetime(Option<u64>)
Datetime with optional time precision e.g. MySQL.
Datetime64(u64, Option<String>)
Datetime with time precision and optional timezone e.g. ClickHouse.
Timestamp(Option<u64>, TimezoneInfo)
Timestamp with optional time precision and time zone information e.g. standard.
Interval
Interval
JSON
JSON type
JSONB
Binary JSON type
Regclass
Regclass used in postgresql serial
Text
Text
String(Option<u64>)
String with optional length.
FixedString(u64)
A fixed-length string e.g ClickHouse.
Bytea
Bytea
Custom(ObjectName, Vec<String>)
Custom type such as enums
Array(ArrayElemTypeDef)
Arrays
Map(Box<DataType>, Box<DataType>)
Map
Tuple(Vec<StructField>)
Tuple
Nested(Vec<ColumnDef>)
Nested
Enum(Vec<String>)
Enums
Set(Vec<String>)
Set
Struct(Vec<StructField>, StructBracketKind)
Struct
Union(Vec<UnionField>)
Union
Nullable(Box<DataType>)
Nullable - special marker NULL represents in ClickHouse as a data type.
LowCardinality(Box<DataType>)
LowCardinality - changes the internal representation of other data types to be dictionary-encoded.
Unspecified
No type specified - only used with
SQLiteDialect
, from statements such
as CREATE TABLE t1 (a)
.
Trigger
Trigger data type, returned by functions associated with triggers
Trait Implementations§
§impl<'de> Deserialize<'de> for DataType
impl<'de> Deserialize<'de> for DataType
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<DataType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<DataType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl Ord for DataType
impl Ord for DataType
§impl PartialOrd for DataType
impl PartialOrd for DataType
§impl Serialize for DataType
impl Serialize for DataType
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
§impl VisitMut for DataType
impl VisitMut for DataType
fn visit<V>(&mut self, visitor: &mut V) -> ControlFlow<<V as VisitorMut>::Break>where
V: VisitorMut,
impl Eq for DataType
impl StructuralPartialEq for DataType
Auto Trait Implementations§
impl Freeze for DataType
impl RefUnwindSafe for DataType
impl Send for DataType
impl Sync for DataType
impl Unpin for DataType
impl UnwindSafe for DataType
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
§impl<T> CallHasher for T
impl<T> CallHasher for 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<T> Conv for T
impl<T> Conv for T
§impl<T, V> Convert<T> for Vwhere
V: Into<T>,
impl<T, V> Convert<T> for Vwhere
V: Into<T>,
fn convert(value: Self) -> T
fn convert_box(value: Box<Self>) -> Box<T>
fn convert_vec(value: Vec<Self>) -> Vec<T>
fn convert_vec_box(value: Vec<Box<Self>>) -> Vec<Box<T>>
fn convert_matrix(value: Vec<Vec<Self>>) -> Vec<Vec<T>>
fn convert_option(value: Option<Self>) -> Option<T>
fn convert_option_box(value: Option<Box<Self>>) -> Option<Box<T>>
fn convert_option_vec(value: Option<Vec<Self>>) -> Option<Vec<T>>
§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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§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<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.