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(Option<u64>),
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
Table type in PostgreSQL, e.g. CREATE FUNCTION RETURNS TABLE(…).
Table type with a name, e.g. CREATE FUNCTION RETURNS @result TABLE(…).
Fields
Fixed-length character type, e.g. CHARACTER(10).
Fixed-length char type, e.g. CHAR(10).
Character varying type, e.g. CHARACTER VARYING(10).
Char varying type, e.g. CHAR VARYING(10).
Variable-length character type, e.g. VARCHAR(10).
Variable-length character type, e.g. NVARCHAR(10).
Uuid type.
Large character object with optional length, e.g. CHARACTER LARGE OBJECT, CHARACTER LARGE OBJECT(1000), SQL Standard.
Large character object with optional length, e.g. CHAR LARGE OBJECT, CHAR LARGE OBJECT(1000), SQL Standard.
Large character object with optional length, e.g. CLOB, CLOB(1000), SQL Standard.
MySQL blob with up to 2**8 bytes.
MySQL blob with up to 2**24 bytes.
MySQL blob with up to 2**32 bytes.
Variable-length binary data with optional length.
Numeric type with optional precision and scale, e.g. NUMERIC(10,2), SQL Standard.
Decimal type with optional precision and scale, e.g. DECIMAL(10,2), SQL Standard.
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.
This is alias for BigNumeric type used in BigQuery.
Dec type with optional precision and scale, e.g. DEC(10,2), SQL Standard.
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.
Floating point with optional precision and scale, e.g. FLOAT, FLOAT(8), or FLOAT(8,2).
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.
Tiny integer with optional display width, e.g. TINYINT or TINYINT(3).
Unsigned tiny integer with optional display width, e.g. TINYINT UNSIGNED or TINYINT(3) UNSIGNED.
Unsigned tiny integer, e.g. UTINYINT
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).
Unsigned Int2 with optional display width, e.g. INT2 UNSIGNED or INT2(5) UNSIGNED.
Small integer with optional display width, e.g. SMALLINT or SMALLINT(5).
Unsigned small integer with optional display width, e.g. SMALLINT UNSIGNED or SMALLINT(5) UNSIGNED.
Unsigned small integer, e.g. USMALLINT.
MySQL medium integer (1) with optional display width, e.g. MEDIUMINT or MEDIUMINT(5).
Unsigned medium integer (1) with optional display width, e.g. MEDIUMINT UNSIGNED or MEDIUMINT(5) UNSIGNED.
Int with optional display width, e.g. INT or INT(11).
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 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.
Integer with optional display width, e.g. INTEGER or INTEGER(11).
Unsigned int with optional display width, e.g. INT UNSIGNED or INT(11) UNSIGNED.
Unsigned int4 with optional display width, e.g. INT4 UNSIGNED or INT4(11) UNSIGNED.
Unsigned integer with optional display width, e.g. INTEGER UNSIGNED or INTEGER(11) UNSIGNED.
128-bit integer type, e.g. HUGEINT.
Unsigned 128-bit integer type, e.g. UHUGEINT.
Big integer with optional display width, e.g. BIGINT or BIGINT(20).
Unsigned big integer with optional display width, e.g. BIGINT UNSIGNED or BIGINT(20) UNSIGNED.
Unsigned big integer, e.g. UBIGINT.
Unsigned Int8 with optional display width, e.g. INT8 UNSIGNED or INT8(11) UNSIGNED.
Signed integer as used in MySQL CAST target types, without optional INTEGER suffix,
e.g. SIGNED
Signed integer as used in MySQL CAST target types, with optional INTEGER suffix,
e.g. SIGNED INTEGER
Signed integer as used in MySQL CAST target types, without optional INTEGER suffix,
e.g. SIGNED
Unsigned integer as used in MySQL CAST target types, with optional INTEGER suffix,
e.g. UNSIGNED INTEGER.
Float4 is an alias for Real in PostgreSQL.
Floating point, e.g. REAL.
MySQL unsigned real, e.g. REAL UNSIGNED. Note: Using UNSIGNED with REAL is deprecated in recent versions of MySQL.
Float8 is an alias for Double in PostgreSQL.
Double
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.
MySQL unsigned double precision, e.g. DOUBLE PRECISION UNSIGNED. Note: Using UNSIGNED with DOUBLE PRECISION is deprecated in recent versions of MySQL.
Bool is an alias for Boolean, see PostgreSQL.
Boolean type.
Date type.
Date32 with the same range as Datetime64.
Time with optional time precision and time zone information, see SQL Standard.
Datetime with optional time precision, see MySQL.
Datetime with time precision and optional timezone, see ClickHouse.
Timestamp with optional time precision and time zone information, see SQL Standard.
Databricks timestamp without time zone. See 1.
Interval type.
Fields
PostgreSQL fields specification like INTERVAL YEAR TO MONTH.
PostgreSQL subsecond precision like INTERVAL HOUR TO SECOND(3)
JSON type.
Binary JSON type.
Text type.
MySQL text with up to 2**8 bytes.
MySQL text with up to 2**24 bytes.
MySQL text with up to 2**32 bytes.
String with optional length.
BIT VARYING(n): Variable-length bit string, see PostgreSQL.
VARBIT(n): Variable-length bit string. PostgreSQL alias for BIT VARYING.
Custom types.
Arrays.
Enum type.
Set type.
Nullable - special marker NULL represents in ClickHouse as a data type.
LowCardinality - changes the internal representation of other data types to be dictionary-encoded.
No type specified - only used with
SQLiteDialect, from statements such
as CREATE TABLE t1 (a).
Trigger data type, returned by functions associated with triggers, see PostgreSQL.
Any data type, used in BigQuery UDF definitions for templated parameters, see BigQuery.
PostgreSQL text search vectors, see PostgreSQL.
PostgreSQL text search query, see PostgreSQL.