pub enum DataType {
Show 108 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),
BigNumeric(ExactNumberInfo),
BigDecimal(ExactNumberInfo),
Dec(ExactNumberInfo),
Float(Option<u64>),
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,
Float8,
Double(ExactNumberInfo),
DoublePrecision,
Bool,
Boolean,
Date,
Date32,
Time(Option<u64>, TimezoneInfo),
Datetime(Option<u64>),
Datetime64(u64, Option<String>),
Timestamp(Option<u64>, TimezoneInfo),
TimestampNtz,
Interval,
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),
}
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.
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.
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).
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.
Float8
Float8 is an alias for Double in PostgreSQL.
Double(ExactNumberInfo)
Double
DoublePrecision
Double Precision, see SQL Standard, PostgreSQL.
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.
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.