DataType in sqlparser::ast - Rust

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.

§
§
§
§
§
§