Enum DataType
pub enum DataType {
Show 116 variants
Table(Option<Vec<ColumnDef>>),
NamedTable {
name: ObjectName,
columns: Vec<ColumnDef>,
},
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<BinaryLength>),
Blob(Option<u64>),
TinyBlob,
MediumBlob,
LongBlob,
Bytes(Option<u64>),
Numeric(ExactNumberInfo),
Decimal(ExactNumberInfo),
DecimalUnsigned(ExactNumberInfo),
BigNumeric(ExactNumberInfo),
BigDecimal(ExactNumberInfo),
Dec(ExactNumberInfo),
DecUnsigned(ExactNumberInfo),
Float(ExactNumberInfo),
FloatUnsigned(ExactNumberInfo),
TinyInt(Option<u64>),
TinyIntUnsigned(Option<u64>),
UTinyInt,
Int2(Option<u64>),
Int2Unsigned(Option<u64>),
SmallInt(Option<u64>),
SmallIntUnsigned(Option<u64>),
USmallInt,
MediumInt(Option<u64>),
MediumIntUnsigned(Option<u64>),
Int(Option<u64>),
Int4(Option<u64>),
Int8(Option<u64>),
Int16,
Int32,
Int64,
Int128,
Int256,
Integer(Option<u64>),
IntUnsigned(Option<u64>),
Int4Unsigned(Option<u64>),
IntegerUnsigned(Option<u64>),
HugeInt,
UHugeInt,
UInt8,
UInt16,
UInt32,
UInt64,
UInt128,
UInt256,
BigInt(Option<u64>),
BigIntUnsigned(Option<u64>),
UBigInt,
Int8Unsigned(Option<u64>),
Signed,
SignedInteger,
Unsigned,
UnsignedInteger,
Float4,
Float32,
Float64,
Real,
RealUnsigned,
Float8,
Double(ExactNumberInfo),
DoubleUnsigned(ExactNumberInfo),
DoublePrecision,
DoublePrecisionUnsigned,
Bool,
Boolean,
Date,
Date32,
Time(Option<u64>, TimezoneInfo),
Datetime(Option<u64>),
Datetime64(u64, Option<String>),
Timestamp(Option<u64>, TimezoneInfo),
TimestampNtz,
Interval {
fields: Option<IntervalFields>,
precision: Option<u64>,
},
JSON,
JSONB,
Regclass,
Text,
TinyText,
MediumText,
LongText,
String(Option<u64>),
FixedString(u64),
Bytea,
Bit(Option<u64>),
BitVarying(Option<u64>),
VarBit(Option<u64>),
Custom(ObjectName, Vec<String>),
Array(ArrayElemTypeDef),
Map(Box<DataType>, Box<DataType>),
Tuple(Vec<StructField>),
Nested(Vec<ColumnDef>),
Enum(Vec<EnumMember>, Option<u8>),
Set(Vec<String>),
Struct(Vec<StructField>, StructBracketKind),
Union(Vec<UnionField>),
Nullable(Box<DataType>),
LowCardinality(Box<DataType>),
Unspecified,
Trigger,
AnyType,
GeometricType(GeometricTypeKind),
TsVector,
TsQuery,
}Expand description
SQL data types
Variants§
Table(Option<Vec<ColumnDef>>)
Table type in PostgreSQL, e.g. CREATE FUNCTION RETURNS TABLE(…).
NamedTable
Table type with a name, e.g. CREATE FUNCTION RETURNS @result TABLE(…).
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), SQL Standard.
CharLargeObject(Option<u64>)
Large character object with optional length, e.g. CHAR LARGE OBJECT, CHAR LARGE OBJECT(1000), SQL Standard.
Clob(Option<u64>)
Large character object with optional length, e.g. CLOB, CLOB(1000), SQL Standard.
Binary(Option<u64>)
Fixed-length binary type with optional length, see SQL Standard, MS SQL Server.
Varbinary(Option<BinaryLength>)
Variable-length binary with optional length type, see SQL Standard, MS SQL Server.
Blob(Option<u64>)
Large binary object with optional length, see SQL Standard, Oracle.
TinyBlob
MySQL blob with up to 2**8 bytes.
MediumBlob
MySQL blob with up to 2**24 bytes.
LongBlob
MySQL blob with up to 2**32 bytes.
Bytes(Option<u64>)
Variable-length binary data with optional length.
Numeric(ExactNumberInfo)
Numeric type with optional precision and scale, e.g. NUMERIC(10,2), SQL Standard.
Decimal(ExactNumberInfo)
Decimal type with optional precision and scale, e.g. DECIMAL(10,2), SQL Standard.
DecimalUnsigned(ExactNumberInfo)
MySQL unsigned decimal with optional precision and scale, e.g. DECIMAL UNSIGNED or DECIMAL(10,2) UNSIGNED. Note: Using UNSIGNED with DECIMAL is deprecated in recent versions of MySQL.
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), SQL Standard.
DecUnsigned(ExactNumberInfo)
MySQL unsigned decimal (DEC alias) with optional precision and scale, e.g. DEC UNSIGNED or DEC(10,2) UNSIGNED. Note: Using UNSIGNED with DEC is deprecated in recent versions of MySQL.
Float(ExactNumberInfo)
Floating point with optional precision and scale, e.g. FLOAT, FLOAT(8), or FLOAT(8,2).
FloatUnsigned(ExactNumberInfo)
MySQL unsigned floating point with optional precision and scale, e.g. FLOAT UNSIGNED, FLOAT(10) UNSIGNED or FLOAT(10,2) UNSIGNED. Note: Using UNSIGNED with FLOAT is deprecated in recent versions of MySQL.
TinyInt(Option<u64>)
Tiny integer with optional display width, e.g. TINYINT or TINYINT(3).
TinyIntUnsigned(Option<u64>)
Unsigned tiny integer with optional display width, e.g. TINYINT UNSIGNED or TINYINT(3) UNSIGNED.
UTinyInt
Unsigned tiny integer, e.g. UTINYINT
Int2(Option<u64>)
Int2 is an alias for SmallInt in PostgreSQL. Note: Int2 means 2 bytes in PostgreSQL (not 2 bits). Int2 with optional display width, e.g. INT2 or INT2(5).
Int2Unsigned(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).
SmallIntUnsigned(Option<u64>)
Unsigned small integer with optional display width, e.g. SMALLINT UNSIGNED or SMALLINT(5) UNSIGNED.
USmallInt
Unsigned small integer, e.g. USMALLINT.
MediumInt(Option<u64>)
MySQL medium integer (1) with optional display width, e.g. MEDIUMINT or MEDIUMINT(5).
MediumIntUnsigned(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 is an alias for Integer in PostgreSQL. Note: Int4 means 4 bytes in PostgreSQL (not 4 bits). Int4 with optional display width, e.g. Int4 or Int4(11).
Int8(Option<u64>)
Int8 is an alias for BigInt in PostgreSQL and Integer type in ClickHouse. Int8 with optional display width, e.g. INT8 or INT8(11). Note: Int8 means 8 bytes in PostgreSQL, but 8 bits in ClickHouse.
Int16
Integer type in ClickHouse. Note: Int16 means 16 bits in ClickHouse.
Int32
Integer type in ClickHouse. Note: Int32 means 32 bits in ClickHouse.
Int64
Integer type in BigQuery, ClickHouse.
Int128
Integer type in ClickHouse. Note: Int128 means 128 bits in ClickHouse.
Int256
Integer type in ClickHouse. Note: Int256 means 256 bits in ClickHouse.
Integer(Option<u64>)
Integer with optional display width, e.g. INTEGER or INTEGER(11).
IntUnsigned(Option<u64>)
Unsigned int with optional display width, e.g. INT UNSIGNED or INT(11) UNSIGNED.
Int4Unsigned(Option<u64>)
Unsigned int4 with optional display width, e.g. INT4 UNSIGNED or INT4(11) UNSIGNED.
IntegerUnsigned(Option<u64>)
Unsigned integer with optional display width, e.g. INTEGER UNSIGNED or INTEGER(11) UNSIGNED.
HugeInt
128-bit integer type, e.g. HUGEINT.
UHugeInt
Unsigned 128-bit integer type, e.g. UHUGEINT.
UInt8
Unsigned integer type in ClickHouse. Note: UInt8 means 8 bits in ClickHouse.
UInt16
Unsigned integer type in ClickHouse. Note: UInt16 means 16 bits in ClickHouse.
UInt32
Unsigned integer type in ClickHouse. Note: UInt32 means 32 bits in ClickHouse.
UInt64
Unsigned integer type in ClickHouse. Note: UInt64 means 64 bits in ClickHouse.
UInt128
Unsigned integer type in ClickHouse. Note: UInt128 means 128 bits in ClickHouse.
UInt256
Unsigned integer type in ClickHouse. Note: UInt256 means 256 bits in ClickHouse.
BigInt(Option<u64>)
Big integer with optional display width, e.g. BIGINT or BIGINT(20).
BigIntUnsigned(Option<u64>)
Unsigned big integer with optional display width, e.g. BIGINT UNSIGNED or BIGINT(20) UNSIGNED.
UBigInt
Unsigned big integer, e.g. UBIGINT.
Int8Unsigned(Option<u64>)
Unsigned Int8 with optional display width, e.g. INT8 UNSIGNED or INT8(11) UNSIGNED.
Signed
Signed integer as used in MySQL CAST target types, without optional INTEGER suffix,
e.g. SIGNED
SignedInteger
Signed integer as used in MySQL CAST target types, with optional INTEGER suffix,
e.g. SIGNED INTEGER
Unsigned
Signed integer as used in MySQL CAST target types, without optional INTEGER suffix,
e.g. SIGNED
UnsignedInteger
Unsigned integer as used in MySQL CAST target types, with optional INTEGER suffix,
e.g. UNSIGNED INTEGER.
Float4
Float4 is an alias for Real in PostgreSQL.
Float32
Floating point in ClickHouse.
Float64
Floating point in BigQuery.
Real
Floating point, e.g. REAL.
RealUnsigned
MySQL unsigned real, e.g. REAL UNSIGNED. Note: Using UNSIGNED with REAL is deprecated in recent versions of MySQL.
Float8
Float8 is an alias for Double in PostgreSQL.
Double(ExactNumberInfo)
Double
DoubleUnsigned(ExactNumberInfo)
MySQL unsigned double precision with optional precision, e.g. DOUBLE UNSIGNED or DOUBLE(10,2) UNSIGNED. Note: Using UNSIGNED with DOUBLE is deprecated in recent versions of MySQL.
DoublePrecision
Double Precision, see SQL Standard, PostgreSQL.
DoublePrecisionUnsigned
MySQL unsigned double precision, e.g. DOUBLE PRECISION UNSIGNED. Note: Using UNSIGNED with DOUBLE PRECISION is deprecated in recent versions of MySQL.
Bool
Bool is an alias for Boolean, see PostgreSQL.
Boolean
Boolean type.
Date
Date type.
Date32
Date32 with the same range as Datetime64.
Time(Option<u64>, TimezoneInfo)
Time with optional time precision and time zone information, see SQL Standard.
Datetime(Option<u64>)
Datetime with optional time precision, see MySQL.
Datetime64(u64, Option<String>)
Datetime with time precision and optional timezone, see ClickHouse.
Timestamp(Option<u64>, TimezoneInfo)
Timestamp with optional time precision and time zone information, see SQL Standard.
TimestampNtz
Databricks timestamp without time zone. See 1.
Interval
Interval type.
Fields
fields: Option<IntervalFields>PostgreSQL fields specification like INTERVAL YEAR TO MONTH.
precision: Option<u64>PostgreSQL subsecond precision like INTERVAL HOUR TO SECOND(3)
JSON
JSON type.
JSONB
Binary JSON type.
Regclass
Regclass used in PostgreSQL serial.
Text
Text type.
TinyText
MySQL text with up to 2**8 bytes.
MediumText
MySQL text with up to 2**24 bytes.
LongText
MySQL text with up to 2**32 bytes.
String(Option<u64>)
String with optional length.
FixedString(u64)
A fixed-length string e.g ClickHouse.
Bytea
Bytea type, see PostgreSQL.
Bit(Option<u64>)
Bit string, see PostgreSQL, MySQL, or MSSQL.
BitVarying(Option<u64>)
BIT VARYING(n): Variable-length bit string, see PostgreSQL.
VarBit(Option<u64>)
VARBIT(n): Variable-length bit string. PostgreSQL alias for BIT VARYING.
Custom(ObjectName, Vec<String>)
Custom types.
Array(ArrayElemTypeDef)
Arrays.
Map(Box<DataType>, Box<DataType>)
Map, see ClickHouse.
Tuple(Vec<StructField>)
Tuple, see ClickHouse.
Nested(Vec<ColumnDef>)
Nested type, see ClickHouse.
Enum(Vec<EnumMember>, Option<u8>)
Enum type.
Set(Vec<String>)
Set type.
Struct(Vec<StructField>, StructBracketKind)
Union(Vec<UnionField>)
Union type, see DuckDB.
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, see PostgreSQL.
AnyType
Any data type, used in BigQuery UDF definitions for templated parameters, see BigQuery.
GeometricType(GeometricTypeKind)
Geometric type, see PostgreSQL.
TsVector
PostgreSQL text search vectors, see PostgreSQL.
TsQuery
PostgreSQL text search query, see PostgreSQL.
Trait Implementations§
§impl Ord for DataType
impl Ord for DataType
§impl PartialOrd for DataType
impl PartialOrd for DataType
§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
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.§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> 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 more§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.