Enum datafusion::sql::sqlparser::ast::DataType

source ·
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>)

Large binary object with optional length e.g. BLOB, BLOB(1000), standard, Oracle

§

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§

source§

impl Clone for DataType

source§

fn clone(&self) -> DataType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for DataType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for DataType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Hash for DataType

source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for DataType

source§

fn cmp(&self, other: &DataType) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for DataType

source§

fn eq(&self, other: &DataType) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for DataType

source§

fn partial_cmp(&self, other: &DataType) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Visit for DataType

source§

fn visit<V>(&self, visitor: &mut V) -> ControlFlow<<V as Visitor>::Break>
where V: Visitor,

source§

impl VisitMut for DataType

source§

fn visit<V>(&mut self, visitor: &mut V) -> ControlFlow<<V as VisitorMut>::Break>
where V: VisitorMut,

source§

impl Eq for DataType

source§

impl StructuralPartialEq for DataType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
source§

impl<T> Same for T

source§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,