1#[cfg(not(feature = "std"))]
19use alloc::{boxed::Box, format, string::String, vec::Vec};
20use core::fmt;
21
22#[cfg(feature = "serde")]
23use serde::{Deserialize, Serialize};
24
25#[cfg(feature = "visitor")]
26use sqlparser_derive::{Visit, VisitMut};
27
28use crate::ast::{display_comma_separated, Expr, ObjectName, StructField, UnionField};
29
30use super::{value::escape_single_quote_string, ColumnDef};
31
32#[derive(#[automatically_derived]
impl ::core::fmt::Debug for EnumMember {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
match self {
EnumMember::Name(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Name",
&__self_0),
EnumMember::NamedValue(__self_0, __self_1) =>
::core::fmt::Formatter::debug_tuple_field2_finish(f,
"NamedValue", __self_0, &__self_1),
}
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for EnumMember {
#[inline]
fn clone(&self) -> EnumMember {
match self {
EnumMember::Name(__self_0) =>
EnumMember::Name(::core::clone::Clone::clone(__self_0)),
EnumMember::NamedValue(__self_0, __self_1) =>
EnumMember::NamedValue(::core::clone::Clone::clone(__self_0),
::core::clone::Clone::clone(__self_1)),
}
}
}Clone, #[automatically_derived]
impl ::core::cmp::PartialEq for EnumMember {
#[inline]
fn eq(&self, other: &EnumMember) -> bool {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
__self_discr == __arg1_discr &&
match (self, other) {
(EnumMember::Name(__self_0), EnumMember::Name(__arg1_0)) =>
__self_0 == __arg1_0,
(EnumMember::NamedValue(__self_0, __self_1),
EnumMember::NamedValue(__arg1_0, __arg1_1)) =>
__self_0 == __arg1_0 && __self_1 == __arg1_1,
_ => unsafe { ::core::intrinsics::unreachable() }
}
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::PartialOrd for EnumMember {
#[inline]
fn partial_cmp(&self, other: &EnumMember)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
impl ::core::cmp::Eq for EnumMember {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<String>;
let _: ::core::cmp::AssertParamIsEq<Expr>;
}
}Eq, #[automatically_derived]
impl ::core::cmp::Ord for EnumMember {
#[inline]
fn cmp(&self, other: &EnumMember) -> ::core::cmp::Ordering {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
match ::core::cmp::Ord::cmp(&__self_discr, &__arg1_discr) {
::core::cmp::Ordering::Equal =>
match (self, other) {
(EnumMember::Name(__self_0), EnumMember::Name(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(EnumMember::NamedValue(__self_0, __self_1),
EnumMember::NamedValue(__arg1_0, __arg1_1)) =>
match ::core::cmp::Ord::cmp(__self_0, __arg1_0) {
::core::cmp::Ordering::Equal =>
::core::cmp::Ord::cmp(__self_1, __arg1_1),
cmp => cmp,
},
_ => unsafe { ::core::intrinsics::unreachable() }
},
cmp => cmp,
}
}
}Ord, #[automatically_derived]
impl ::core::hash::Hash for EnumMember {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
let __self_discr = ::core::intrinsics::discriminant_value(self);
::core::hash::Hash::hash(&__self_discr, state);
match self {
EnumMember::Name(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
EnumMember::NamedValue(__self_0, __self_1) => {
::core::hash::Hash::hash(__self_0, state);
::core::hash::Hash::hash(__self_1, state)
}
}
}
}Hash)]
33#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
34#[cfg_attr(feature = "visitor", derive(impl sqlparser::ast::Visit for EnumMember {
fn visit<V: sqlparser::ast::Visitor>(&self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::Name(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::NamedValue(_0, _1) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
sqlparser::ast::Visit::visit(_1, visitor)?;
}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}Visit, impl sqlparser::ast::VisitMut for EnumMember {
fn visit<V: sqlparser::ast::VisitorMut>(&mut self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::Name(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::NamedValue(_0, _1) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
sqlparser::ast::VisitMut::visit(_1, visitor)?;
}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}VisitMut))]
35pub enum EnumMember {
37 Name(String),
39 NamedValue(String, Expr),
43}
44
45#[derive(#[automatically_derived]
impl ::core::fmt::Debug for DataType {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
match self {
DataType::Table(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Table",
&__self_0),
DataType::NamedTable { name: __self_0, columns: __self_1 } =>
::core::fmt::Formatter::debug_struct_field2_finish(f,
"NamedTable", "name", __self_0, "columns", &__self_1),
DataType::Character(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"Character", &__self_0),
DataType::Char(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Char",
&__self_0),
DataType::CharacterVarying(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"CharacterVarying", &__self_0),
DataType::CharVarying(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"CharVarying", &__self_0),
DataType::Varchar(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"Varchar", &__self_0),
DataType::Nvarchar(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"Nvarchar", &__self_0),
DataType::Uuid => ::core::fmt::Formatter::write_str(f, "Uuid"),
DataType::CharacterLargeObject(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"CharacterLargeObject", &__self_0),
DataType::CharLargeObject(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"CharLargeObject", &__self_0),
DataType::Clob(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Clob",
&__self_0),
DataType::Binary(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Binary",
&__self_0),
DataType::Varbinary(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"Varbinary", &__self_0),
DataType::Blob(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Blob",
&__self_0),
DataType::TinyBlob =>
::core::fmt::Formatter::write_str(f, "TinyBlob"),
DataType::MediumBlob =>
::core::fmt::Formatter::write_str(f, "MediumBlob"),
DataType::LongBlob =>
::core::fmt::Formatter::write_str(f, "LongBlob"),
DataType::Bytes(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Bytes",
&__self_0),
DataType::Numeric(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"Numeric", &__self_0),
DataType::Decimal(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"Decimal", &__self_0),
DataType::DecimalUnsigned(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"DecimalUnsigned", &__self_0),
DataType::BigNumeric(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"BigNumeric", &__self_0),
DataType::BigDecimal(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"BigDecimal", &__self_0),
DataType::Dec(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Dec",
&__self_0),
DataType::DecUnsigned(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"DecUnsigned", &__self_0),
DataType::Float(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Float",
&__self_0),
DataType::FloatUnsigned(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"FloatUnsigned", &__self_0),
DataType::TinyInt(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"TinyInt", &__self_0),
DataType::TinyIntUnsigned(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"TinyIntUnsigned", &__self_0),
DataType::UTinyInt =>
::core::fmt::Formatter::write_str(f, "UTinyInt"),
DataType::Int2(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Int2",
&__self_0),
DataType::Int2Unsigned(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"Int2Unsigned", &__self_0),
DataType::SmallInt(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"SmallInt", &__self_0),
DataType::SmallIntUnsigned(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"SmallIntUnsigned", &__self_0),
DataType::USmallInt =>
::core::fmt::Formatter::write_str(f, "USmallInt"),
DataType::MediumInt(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"MediumInt", &__self_0),
DataType::MediumIntUnsigned(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"MediumIntUnsigned", &__self_0),
DataType::Int(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Int",
&__self_0),
DataType::Int4(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Int4",
&__self_0),
DataType::Int8(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Int8",
&__self_0),
DataType::Int16 => ::core::fmt::Formatter::write_str(f, "Int16"),
DataType::Int32 => ::core::fmt::Formatter::write_str(f, "Int32"),
DataType::Int64 => ::core::fmt::Formatter::write_str(f, "Int64"),
DataType::Int128 =>
::core::fmt::Formatter::write_str(f, "Int128"),
DataType::Int256 =>
::core::fmt::Formatter::write_str(f, "Int256"),
DataType::Integer(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"Integer", &__self_0),
DataType::IntUnsigned(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"IntUnsigned", &__self_0),
DataType::Int4Unsigned(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"Int4Unsigned", &__self_0),
DataType::IntegerUnsigned(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"IntegerUnsigned", &__self_0),
DataType::HugeInt =>
::core::fmt::Formatter::write_str(f, "HugeInt"),
DataType::UHugeInt =>
::core::fmt::Formatter::write_str(f, "UHugeInt"),
DataType::UInt8 => ::core::fmt::Formatter::write_str(f, "UInt8"),
DataType::UInt16 =>
::core::fmt::Formatter::write_str(f, "UInt16"),
DataType::UInt32 =>
::core::fmt::Formatter::write_str(f, "UInt32"),
DataType::UInt64 =>
::core::fmt::Formatter::write_str(f, "UInt64"),
DataType::UInt128 =>
::core::fmt::Formatter::write_str(f, "UInt128"),
DataType::UInt256 =>
::core::fmt::Formatter::write_str(f, "UInt256"),
DataType::BigInt(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "BigInt",
&__self_0),
DataType::BigIntUnsigned(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"BigIntUnsigned", &__self_0),
DataType::UBigInt =>
::core::fmt::Formatter::write_str(f, "UBigInt"),
DataType::Int8Unsigned(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"Int8Unsigned", &__self_0),
DataType::Signed =>
::core::fmt::Formatter::write_str(f, "Signed"),
DataType::SignedInteger =>
::core::fmt::Formatter::write_str(f, "SignedInteger"),
DataType::Unsigned =>
::core::fmt::Formatter::write_str(f, "Unsigned"),
DataType::UnsignedInteger =>
::core::fmt::Formatter::write_str(f, "UnsignedInteger"),
DataType::Float4 =>
::core::fmt::Formatter::write_str(f, "Float4"),
DataType::Float32 =>
::core::fmt::Formatter::write_str(f, "Float32"),
DataType::Float64 =>
::core::fmt::Formatter::write_str(f, "Float64"),
DataType::Real => ::core::fmt::Formatter::write_str(f, "Real"),
DataType::RealUnsigned =>
::core::fmt::Formatter::write_str(f, "RealUnsigned"),
DataType::Float8 =>
::core::fmt::Formatter::write_str(f, "Float8"),
DataType::Double(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Double",
&__self_0),
DataType::DoubleUnsigned(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"DoubleUnsigned", &__self_0),
DataType::DoublePrecision =>
::core::fmt::Formatter::write_str(f, "DoublePrecision"),
DataType::DoublePrecisionUnsigned =>
::core::fmt::Formatter::write_str(f,
"DoublePrecisionUnsigned"),
DataType::Bool => ::core::fmt::Formatter::write_str(f, "Bool"),
DataType::Boolean =>
::core::fmt::Formatter::write_str(f, "Boolean"),
DataType::Date => ::core::fmt::Formatter::write_str(f, "Date"),
DataType::Date32 =>
::core::fmt::Formatter::write_str(f, "Date32"),
DataType::Time(__self_0, __self_1) =>
::core::fmt::Formatter::debug_tuple_field2_finish(f, "Time",
__self_0, &__self_1),
DataType::Datetime(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"Datetime", &__self_0),
DataType::Datetime64(__self_0, __self_1) =>
::core::fmt::Formatter::debug_tuple_field2_finish(f,
"Datetime64", __self_0, &__self_1),
DataType::Timestamp(__self_0, __self_1) =>
::core::fmt::Formatter::debug_tuple_field2_finish(f,
"Timestamp", __self_0, &__self_1),
DataType::TimestampNtz(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"TimestampNtz", &__self_0),
DataType::Interval { fields: __self_0, precision: __self_1 } =>
::core::fmt::Formatter::debug_struct_field2_finish(f,
"Interval", "fields", __self_0, "precision", &__self_1),
DataType::JSON => ::core::fmt::Formatter::write_str(f, "JSON"),
DataType::JSONB => ::core::fmt::Formatter::write_str(f, "JSONB"),
DataType::Regclass =>
::core::fmt::Formatter::write_str(f, "Regclass"),
DataType::Text => ::core::fmt::Formatter::write_str(f, "Text"),
DataType::TinyText =>
::core::fmt::Formatter::write_str(f, "TinyText"),
DataType::MediumText =>
::core::fmt::Formatter::write_str(f, "MediumText"),
DataType::LongText =>
::core::fmt::Formatter::write_str(f, "LongText"),
DataType::String(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "String",
&__self_0),
DataType::FixedString(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"FixedString", &__self_0),
DataType::Bytea => ::core::fmt::Formatter::write_str(f, "Bytea"),
DataType::Bit(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Bit",
&__self_0),
DataType::BitVarying(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"BitVarying", &__self_0),
DataType::VarBit(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "VarBit",
&__self_0),
DataType::Custom(__self_0, __self_1) =>
::core::fmt::Formatter::debug_tuple_field2_finish(f, "Custom",
__self_0, &__self_1),
DataType::Array(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Array",
&__self_0),
DataType::Map(__self_0, __self_1) =>
::core::fmt::Formatter::debug_tuple_field2_finish(f, "Map",
__self_0, &__self_1),
DataType::Tuple(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Tuple",
&__self_0),
DataType::Nested(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Nested",
&__self_0),
DataType::Enum(__self_0, __self_1) =>
::core::fmt::Formatter::debug_tuple_field2_finish(f, "Enum",
__self_0, &__self_1),
DataType::Set(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Set",
&__self_0),
DataType::Struct(__self_0, __self_1) =>
::core::fmt::Formatter::debug_tuple_field2_finish(f, "Struct",
__self_0, &__self_1),
DataType::Union(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Union",
&__self_0),
DataType::Nullable(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"Nullable", &__self_0),
DataType::LowCardinality(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"LowCardinality", &__self_0),
DataType::Unspecified =>
::core::fmt::Formatter::write_str(f, "Unspecified"),
DataType::Trigger =>
::core::fmt::Formatter::write_str(f, "Trigger"),
DataType::AnyType =>
::core::fmt::Formatter::write_str(f, "AnyType"),
DataType::GeometricType(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"GeometricType", &__self_0),
DataType::TsVector =>
::core::fmt::Formatter::write_str(f, "TsVector"),
DataType::TsQuery =>
::core::fmt::Formatter::write_str(f, "TsQuery"),
}
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for DataType {
#[inline]
fn clone(&self) -> DataType {
match self {
DataType::Table(__self_0) =>
DataType::Table(::core::clone::Clone::clone(__self_0)),
DataType::NamedTable { name: __self_0, columns: __self_1 } =>
DataType::NamedTable {
name: ::core::clone::Clone::clone(__self_0),
columns: ::core::clone::Clone::clone(__self_1),
},
DataType::Character(__self_0) =>
DataType::Character(::core::clone::Clone::clone(__self_0)),
DataType::Char(__self_0) =>
DataType::Char(::core::clone::Clone::clone(__self_0)),
DataType::CharacterVarying(__self_0) =>
DataType::CharacterVarying(::core::clone::Clone::clone(__self_0)),
DataType::CharVarying(__self_0) =>
DataType::CharVarying(::core::clone::Clone::clone(__self_0)),
DataType::Varchar(__self_0) =>
DataType::Varchar(::core::clone::Clone::clone(__self_0)),
DataType::Nvarchar(__self_0) =>
DataType::Nvarchar(::core::clone::Clone::clone(__self_0)),
DataType::Uuid => DataType::Uuid,
DataType::CharacterLargeObject(__self_0) =>
DataType::CharacterLargeObject(::core::clone::Clone::clone(__self_0)),
DataType::CharLargeObject(__self_0) =>
DataType::CharLargeObject(::core::clone::Clone::clone(__self_0)),
DataType::Clob(__self_0) =>
DataType::Clob(::core::clone::Clone::clone(__self_0)),
DataType::Binary(__self_0) =>
DataType::Binary(::core::clone::Clone::clone(__self_0)),
DataType::Varbinary(__self_0) =>
DataType::Varbinary(::core::clone::Clone::clone(__self_0)),
DataType::Blob(__self_0) =>
DataType::Blob(::core::clone::Clone::clone(__self_0)),
DataType::TinyBlob => DataType::TinyBlob,
DataType::MediumBlob => DataType::MediumBlob,
DataType::LongBlob => DataType::LongBlob,
DataType::Bytes(__self_0) =>
DataType::Bytes(::core::clone::Clone::clone(__self_0)),
DataType::Numeric(__self_0) =>
DataType::Numeric(::core::clone::Clone::clone(__self_0)),
DataType::Decimal(__self_0) =>
DataType::Decimal(::core::clone::Clone::clone(__self_0)),
DataType::DecimalUnsigned(__self_0) =>
DataType::DecimalUnsigned(::core::clone::Clone::clone(__self_0)),
DataType::BigNumeric(__self_0) =>
DataType::BigNumeric(::core::clone::Clone::clone(__self_0)),
DataType::BigDecimal(__self_0) =>
DataType::BigDecimal(::core::clone::Clone::clone(__self_0)),
DataType::Dec(__self_0) =>
DataType::Dec(::core::clone::Clone::clone(__self_0)),
DataType::DecUnsigned(__self_0) =>
DataType::DecUnsigned(::core::clone::Clone::clone(__self_0)),
DataType::Float(__self_0) =>
DataType::Float(::core::clone::Clone::clone(__self_0)),
DataType::FloatUnsigned(__self_0) =>
DataType::FloatUnsigned(::core::clone::Clone::clone(__self_0)),
DataType::TinyInt(__self_0) =>
DataType::TinyInt(::core::clone::Clone::clone(__self_0)),
DataType::TinyIntUnsigned(__self_0) =>
DataType::TinyIntUnsigned(::core::clone::Clone::clone(__self_0)),
DataType::UTinyInt => DataType::UTinyInt,
DataType::Int2(__self_0) =>
DataType::Int2(::core::clone::Clone::clone(__self_0)),
DataType::Int2Unsigned(__self_0) =>
DataType::Int2Unsigned(::core::clone::Clone::clone(__self_0)),
DataType::SmallInt(__self_0) =>
DataType::SmallInt(::core::clone::Clone::clone(__self_0)),
DataType::SmallIntUnsigned(__self_0) =>
DataType::SmallIntUnsigned(::core::clone::Clone::clone(__self_0)),
DataType::USmallInt => DataType::USmallInt,
DataType::MediumInt(__self_0) =>
DataType::MediumInt(::core::clone::Clone::clone(__self_0)),
DataType::MediumIntUnsigned(__self_0) =>
DataType::MediumIntUnsigned(::core::clone::Clone::clone(__self_0)),
DataType::Int(__self_0) =>
DataType::Int(::core::clone::Clone::clone(__self_0)),
DataType::Int4(__self_0) =>
DataType::Int4(::core::clone::Clone::clone(__self_0)),
DataType::Int8(__self_0) =>
DataType::Int8(::core::clone::Clone::clone(__self_0)),
DataType::Int16 => DataType::Int16,
DataType::Int32 => DataType::Int32,
DataType::Int64 => DataType::Int64,
DataType::Int128 => DataType::Int128,
DataType::Int256 => DataType::Int256,
DataType::Integer(__self_0) =>
DataType::Integer(::core::clone::Clone::clone(__self_0)),
DataType::IntUnsigned(__self_0) =>
DataType::IntUnsigned(::core::clone::Clone::clone(__self_0)),
DataType::Int4Unsigned(__self_0) =>
DataType::Int4Unsigned(::core::clone::Clone::clone(__self_0)),
DataType::IntegerUnsigned(__self_0) =>
DataType::IntegerUnsigned(::core::clone::Clone::clone(__self_0)),
DataType::HugeInt => DataType::HugeInt,
DataType::UHugeInt => DataType::UHugeInt,
DataType::UInt8 => DataType::UInt8,
DataType::UInt16 => DataType::UInt16,
DataType::UInt32 => DataType::UInt32,
DataType::UInt64 => DataType::UInt64,
DataType::UInt128 => DataType::UInt128,
DataType::UInt256 => DataType::UInt256,
DataType::BigInt(__self_0) =>
DataType::BigInt(::core::clone::Clone::clone(__self_0)),
DataType::BigIntUnsigned(__self_0) =>
DataType::BigIntUnsigned(::core::clone::Clone::clone(__self_0)),
DataType::UBigInt => DataType::UBigInt,
DataType::Int8Unsigned(__self_0) =>
DataType::Int8Unsigned(::core::clone::Clone::clone(__self_0)),
DataType::Signed => DataType::Signed,
DataType::SignedInteger => DataType::SignedInteger,
DataType::Unsigned => DataType::Unsigned,
DataType::UnsignedInteger => DataType::UnsignedInteger,
DataType::Float4 => DataType::Float4,
DataType::Float32 => DataType::Float32,
DataType::Float64 => DataType::Float64,
DataType::Real => DataType::Real,
DataType::RealUnsigned => DataType::RealUnsigned,
DataType::Float8 => DataType::Float8,
DataType::Double(__self_0) =>
DataType::Double(::core::clone::Clone::clone(__self_0)),
DataType::DoubleUnsigned(__self_0) =>
DataType::DoubleUnsigned(::core::clone::Clone::clone(__self_0)),
DataType::DoublePrecision => DataType::DoublePrecision,
DataType::DoublePrecisionUnsigned =>
DataType::DoublePrecisionUnsigned,
DataType::Bool => DataType::Bool,
DataType::Boolean => DataType::Boolean,
DataType::Date => DataType::Date,
DataType::Date32 => DataType::Date32,
DataType::Time(__self_0, __self_1) =>
DataType::Time(::core::clone::Clone::clone(__self_0),
::core::clone::Clone::clone(__self_1)),
DataType::Datetime(__self_0) =>
DataType::Datetime(::core::clone::Clone::clone(__self_0)),
DataType::Datetime64(__self_0, __self_1) =>
DataType::Datetime64(::core::clone::Clone::clone(__self_0),
::core::clone::Clone::clone(__self_1)),
DataType::Timestamp(__self_0, __self_1) =>
DataType::Timestamp(::core::clone::Clone::clone(__self_0),
::core::clone::Clone::clone(__self_1)),
DataType::TimestampNtz(__self_0) =>
DataType::TimestampNtz(::core::clone::Clone::clone(__self_0)),
DataType::Interval { fields: __self_0, precision: __self_1 } =>
DataType::Interval {
fields: ::core::clone::Clone::clone(__self_0),
precision: ::core::clone::Clone::clone(__self_1),
},
DataType::JSON => DataType::JSON,
DataType::JSONB => DataType::JSONB,
DataType::Regclass => DataType::Regclass,
DataType::Text => DataType::Text,
DataType::TinyText => DataType::TinyText,
DataType::MediumText => DataType::MediumText,
DataType::LongText => DataType::LongText,
DataType::String(__self_0) =>
DataType::String(::core::clone::Clone::clone(__self_0)),
DataType::FixedString(__self_0) =>
DataType::FixedString(::core::clone::Clone::clone(__self_0)),
DataType::Bytea => DataType::Bytea,
DataType::Bit(__self_0) =>
DataType::Bit(::core::clone::Clone::clone(__self_0)),
DataType::BitVarying(__self_0) =>
DataType::BitVarying(::core::clone::Clone::clone(__self_0)),
DataType::VarBit(__self_0) =>
DataType::VarBit(::core::clone::Clone::clone(__self_0)),
DataType::Custom(__self_0, __self_1) =>
DataType::Custom(::core::clone::Clone::clone(__self_0),
::core::clone::Clone::clone(__self_1)),
DataType::Array(__self_0) =>
DataType::Array(::core::clone::Clone::clone(__self_0)),
DataType::Map(__self_0, __self_1) =>
DataType::Map(::core::clone::Clone::clone(__self_0),
::core::clone::Clone::clone(__self_1)),
DataType::Tuple(__self_0) =>
DataType::Tuple(::core::clone::Clone::clone(__self_0)),
DataType::Nested(__self_0) =>
DataType::Nested(::core::clone::Clone::clone(__self_0)),
DataType::Enum(__self_0, __self_1) =>
DataType::Enum(::core::clone::Clone::clone(__self_0),
::core::clone::Clone::clone(__self_1)),
DataType::Set(__self_0) =>
DataType::Set(::core::clone::Clone::clone(__self_0)),
DataType::Struct(__self_0, __self_1) =>
DataType::Struct(::core::clone::Clone::clone(__self_0),
::core::clone::Clone::clone(__self_1)),
DataType::Union(__self_0) =>
DataType::Union(::core::clone::Clone::clone(__self_0)),
DataType::Nullable(__self_0) =>
DataType::Nullable(::core::clone::Clone::clone(__self_0)),
DataType::LowCardinality(__self_0) =>
DataType::LowCardinality(::core::clone::Clone::clone(__self_0)),
DataType::Unspecified => DataType::Unspecified,
DataType::Trigger => DataType::Trigger,
DataType::AnyType => DataType::AnyType,
DataType::GeometricType(__self_0) =>
DataType::GeometricType(::core::clone::Clone::clone(__self_0)),
DataType::TsVector => DataType::TsVector,
DataType::TsQuery => DataType::TsQuery,
}
}
}Clone, #[automatically_derived]
impl ::core::cmp::PartialEq for DataType {
#[inline]
fn eq(&self, other: &DataType) -> bool {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
__self_discr == __arg1_discr &&
match (self, other) {
(DataType::Table(__self_0), DataType::Table(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::NamedTable { name: __self_0, columns: __self_1 },
DataType::NamedTable { name: __arg1_0, columns: __arg1_1 })
=> __self_0 == __arg1_0 && __self_1 == __arg1_1,
(DataType::Character(__self_0), DataType::Character(__arg1_0))
=> __self_0 == __arg1_0,
(DataType::Char(__self_0), DataType::Char(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::CharacterVarying(__self_0),
DataType::CharacterVarying(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::CharVarying(__self_0),
DataType::CharVarying(__arg1_0)) => __self_0 == __arg1_0,
(DataType::Varchar(__self_0), DataType::Varchar(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Nvarchar(__self_0), DataType::Nvarchar(__arg1_0))
=> __self_0 == __arg1_0,
(DataType::CharacterLargeObject(__self_0),
DataType::CharacterLargeObject(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::CharLargeObject(__self_0),
DataType::CharLargeObject(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Clob(__self_0), DataType::Clob(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Binary(__self_0), DataType::Binary(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Varbinary(__self_0), DataType::Varbinary(__arg1_0))
=> __self_0 == __arg1_0,
(DataType::Blob(__self_0), DataType::Blob(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Bytes(__self_0), DataType::Bytes(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Numeric(__self_0), DataType::Numeric(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Decimal(__self_0), DataType::Decimal(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::DecimalUnsigned(__self_0),
DataType::DecimalUnsigned(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::BigNumeric(__self_0),
DataType::BigNumeric(__arg1_0)) => __self_0 == __arg1_0,
(DataType::BigDecimal(__self_0),
DataType::BigDecimal(__arg1_0)) => __self_0 == __arg1_0,
(DataType::Dec(__self_0), DataType::Dec(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::DecUnsigned(__self_0),
DataType::DecUnsigned(__arg1_0)) => __self_0 == __arg1_0,
(DataType::Float(__self_0), DataType::Float(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::FloatUnsigned(__self_0),
DataType::FloatUnsigned(__arg1_0)) => __self_0 == __arg1_0,
(DataType::TinyInt(__self_0), DataType::TinyInt(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::TinyIntUnsigned(__self_0),
DataType::TinyIntUnsigned(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Int2(__self_0), DataType::Int2(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Int2Unsigned(__self_0),
DataType::Int2Unsigned(__arg1_0)) => __self_0 == __arg1_0,
(DataType::SmallInt(__self_0), DataType::SmallInt(__arg1_0))
=> __self_0 == __arg1_0,
(DataType::SmallIntUnsigned(__self_0),
DataType::SmallIntUnsigned(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::MediumInt(__self_0), DataType::MediumInt(__arg1_0))
=> __self_0 == __arg1_0,
(DataType::MediumIntUnsigned(__self_0),
DataType::MediumIntUnsigned(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Int(__self_0), DataType::Int(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Int4(__self_0), DataType::Int4(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Int8(__self_0), DataType::Int8(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Integer(__self_0), DataType::Integer(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::IntUnsigned(__self_0),
DataType::IntUnsigned(__arg1_0)) => __self_0 == __arg1_0,
(DataType::Int4Unsigned(__self_0),
DataType::Int4Unsigned(__arg1_0)) => __self_0 == __arg1_0,
(DataType::IntegerUnsigned(__self_0),
DataType::IntegerUnsigned(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::BigInt(__self_0), DataType::BigInt(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::BigIntUnsigned(__self_0),
DataType::BigIntUnsigned(__arg1_0)) => __self_0 == __arg1_0,
(DataType::Int8Unsigned(__self_0),
DataType::Int8Unsigned(__arg1_0)) => __self_0 == __arg1_0,
(DataType::Double(__self_0), DataType::Double(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::DoubleUnsigned(__self_0),
DataType::DoubleUnsigned(__arg1_0)) => __self_0 == __arg1_0,
(DataType::Time(__self_0, __self_1),
DataType::Time(__arg1_0, __arg1_1)) =>
__self_0 == __arg1_0 && __self_1 == __arg1_1,
(DataType::Datetime(__self_0), DataType::Datetime(__arg1_0))
=> __self_0 == __arg1_0,
(DataType::Datetime64(__self_0, __self_1),
DataType::Datetime64(__arg1_0, __arg1_1)) =>
__self_0 == __arg1_0 && __self_1 == __arg1_1,
(DataType::Timestamp(__self_0, __self_1),
DataType::Timestamp(__arg1_0, __arg1_1)) =>
__self_0 == __arg1_0 && __self_1 == __arg1_1,
(DataType::TimestampNtz(__self_0),
DataType::TimestampNtz(__arg1_0)) => __self_0 == __arg1_0,
(DataType::Interval { fields: __self_0, precision: __self_1 },
DataType::Interval { fields: __arg1_0, precision: __arg1_1
}) => __self_0 == __arg1_0 && __self_1 == __arg1_1,
(DataType::String(__self_0), DataType::String(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::FixedString(__self_0),
DataType::FixedString(__arg1_0)) => __self_0 == __arg1_0,
(DataType::Bit(__self_0), DataType::Bit(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::BitVarying(__self_0),
DataType::BitVarying(__arg1_0)) => __self_0 == __arg1_0,
(DataType::VarBit(__self_0), DataType::VarBit(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Custom(__self_0, __self_1),
DataType::Custom(__arg1_0, __arg1_1)) =>
__self_0 == __arg1_0 && __self_1 == __arg1_1,
(DataType::Array(__self_0), DataType::Array(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Map(__self_0, __self_1),
DataType::Map(__arg1_0, __arg1_1)) =>
__self_0 == __arg1_0 && __self_1 == __arg1_1,
(DataType::Tuple(__self_0), DataType::Tuple(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Nested(__self_0), DataType::Nested(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Enum(__self_0, __self_1),
DataType::Enum(__arg1_0, __arg1_1)) =>
__self_0 == __arg1_0 && __self_1 == __arg1_1,
(DataType::Set(__self_0), DataType::Set(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Struct(__self_0, __self_1),
DataType::Struct(__arg1_0, __arg1_1)) =>
__self_0 == __arg1_0 && __self_1 == __arg1_1,
(DataType::Union(__self_0), DataType::Union(__arg1_0)) =>
__self_0 == __arg1_0,
(DataType::Nullable(__self_0), DataType::Nullable(__arg1_0))
=> __self_0 == __arg1_0,
(DataType::LowCardinality(__self_0),
DataType::LowCardinality(__arg1_0)) => __self_0 == __arg1_0,
(DataType::GeometricType(__self_0),
DataType::GeometricType(__arg1_0)) => __self_0 == __arg1_0,
_ => true,
}
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::PartialOrd for DataType {
#[inline]
fn partial_cmp(&self, other: &DataType)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
impl ::core::cmp::Eq for DataType {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<Option<Vec<ColumnDef>>>;
let _: ::core::cmp::AssertParamIsEq<ObjectName>;
let _: ::core::cmp::AssertParamIsEq<Vec<ColumnDef>>;
let _: ::core::cmp::AssertParamIsEq<Option<CharacterLength>>;
let _: ::core::cmp::AssertParamIsEq<Option<CharacterLength>>;
let _: ::core::cmp::AssertParamIsEq<Option<CharacterLength>>;
let _: ::core::cmp::AssertParamIsEq<Option<CharacterLength>>;
let _: ::core::cmp::AssertParamIsEq<Option<CharacterLength>>;
let _: ::core::cmp::AssertParamIsEq<Option<CharacterLength>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<BinaryLength>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<ExactNumberInfo>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<TimezoneInfo>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<u64>;
let _: ::core::cmp::AssertParamIsEq<Option<String>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<IntervalFields>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Vec<String>>;
let _: ::core::cmp::AssertParamIsEq<ArrayElemTypeDef>;
let _: ::core::cmp::AssertParamIsEq<Box<DataType>>;
let _: ::core::cmp::AssertParamIsEq<Box<DataType>>;
let _: ::core::cmp::AssertParamIsEq<Vec<StructField>>;
let _: ::core::cmp::AssertParamIsEq<Vec<ColumnDef>>;
let _: ::core::cmp::AssertParamIsEq<Vec<EnumMember>>;
let _: ::core::cmp::AssertParamIsEq<Option<u8>>;
let _: ::core::cmp::AssertParamIsEq<Vec<String>>;
let _: ::core::cmp::AssertParamIsEq<Vec<StructField>>;
let _: ::core::cmp::AssertParamIsEq<StructBracketKind>;
let _: ::core::cmp::AssertParamIsEq<Vec<UnionField>>;
let _: ::core::cmp::AssertParamIsEq<Box<DataType>>;
let _: ::core::cmp::AssertParamIsEq<Box<DataType>>;
let _: ::core::cmp::AssertParamIsEq<GeometricTypeKind>;
}
}Eq, #[automatically_derived]
impl ::core::cmp::Ord for DataType {
#[inline]
fn cmp(&self, other: &DataType) -> ::core::cmp::Ordering {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
match ::core::cmp::Ord::cmp(&__self_discr, &__arg1_discr) {
::core::cmp::Ordering::Equal =>
match (self, other) {
(DataType::Table(__self_0), DataType::Table(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::NamedTable { name: __self_0, columns: __self_1 },
DataType::NamedTable { name: __arg1_0, columns: __arg1_1 })
=>
match ::core::cmp::Ord::cmp(__self_0, __arg1_0) {
::core::cmp::Ordering::Equal =>
::core::cmp::Ord::cmp(__self_1, __arg1_1),
cmp => cmp,
},
(DataType::Character(__self_0),
DataType::Character(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Char(__self_0), DataType::Char(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::CharacterVarying(__self_0),
DataType::CharacterVarying(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::CharVarying(__self_0),
DataType::CharVarying(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Varchar(__self_0), DataType::Varchar(__arg1_0))
=> ::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Nvarchar(__self_0), DataType::Nvarchar(__arg1_0))
=> ::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::CharacterLargeObject(__self_0),
DataType::CharacterLargeObject(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::CharLargeObject(__self_0),
DataType::CharLargeObject(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Clob(__self_0), DataType::Clob(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Binary(__self_0), DataType::Binary(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Varbinary(__self_0),
DataType::Varbinary(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Blob(__self_0), DataType::Blob(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Bytes(__self_0), DataType::Bytes(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Numeric(__self_0), DataType::Numeric(__arg1_0))
=> ::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Decimal(__self_0), DataType::Decimal(__arg1_0))
=> ::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::DecimalUnsigned(__self_0),
DataType::DecimalUnsigned(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::BigNumeric(__self_0),
DataType::BigNumeric(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::BigDecimal(__self_0),
DataType::BigDecimal(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Dec(__self_0), DataType::Dec(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::DecUnsigned(__self_0),
DataType::DecUnsigned(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Float(__self_0), DataType::Float(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::FloatUnsigned(__self_0),
DataType::FloatUnsigned(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::TinyInt(__self_0), DataType::TinyInt(__arg1_0))
=> ::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::TinyIntUnsigned(__self_0),
DataType::TinyIntUnsigned(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Int2(__self_0), DataType::Int2(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Int2Unsigned(__self_0),
DataType::Int2Unsigned(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::SmallInt(__self_0), DataType::SmallInt(__arg1_0))
=> ::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::SmallIntUnsigned(__self_0),
DataType::SmallIntUnsigned(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::MediumInt(__self_0),
DataType::MediumInt(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::MediumIntUnsigned(__self_0),
DataType::MediumIntUnsigned(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Int(__self_0), DataType::Int(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Int4(__self_0), DataType::Int4(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Int8(__self_0), DataType::Int8(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Integer(__self_0), DataType::Integer(__arg1_0))
=> ::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::IntUnsigned(__self_0),
DataType::IntUnsigned(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Int4Unsigned(__self_0),
DataType::Int4Unsigned(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::IntegerUnsigned(__self_0),
DataType::IntegerUnsigned(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::BigInt(__self_0), DataType::BigInt(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::BigIntUnsigned(__self_0),
DataType::BigIntUnsigned(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Int8Unsigned(__self_0),
DataType::Int8Unsigned(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Double(__self_0), DataType::Double(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::DoubleUnsigned(__self_0),
DataType::DoubleUnsigned(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Time(__self_0, __self_1),
DataType::Time(__arg1_0, __arg1_1)) =>
match ::core::cmp::Ord::cmp(__self_0, __arg1_0) {
::core::cmp::Ordering::Equal =>
::core::cmp::Ord::cmp(__self_1, __arg1_1),
cmp => cmp,
},
(DataType::Datetime(__self_0), DataType::Datetime(__arg1_0))
=> ::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Datetime64(__self_0, __self_1),
DataType::Datetime64(__arg1_0, __arg1_1)) =>
match ::core::cmp::Ord::cmp(__self_0, __arg1_0) {
::core::cmp::Ordering::Equal =>
::core::cmp::Ord::cmp(__self_1, __arg1_1),
cmp => cmp,
},
(DataType::Timestamp(__self_0, __self_1),
DataType::Timestamp(__arg1_0, __arg1_1)) =>
match ::core::cmp::Ord::cmp(__self_0, __arg1_0) {
::core::cmp::Ordering::Equal =>
::core::cmp::Ord::cmp(__self_1, __arg1_1),
cmp => cmp,
},
(DataType::TimestampNtz(__self_0),
DataType::TimestampNtz(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Interval { fields: __self_0, precision: __self_1
}, DataType::Interval {
fields: __arg1_0, precision: __arg1_1 }) =>
match ::core::cmp::Ord::cmp(__self_0, __arg1_0) {
::core::cmp::Ordering::Equal =>
::core::cmp::Ord::cmp(__self_1, __arg1_1),
cmp => cmp,
},
(DataType::String(__self_0), DataType::String(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::FixedString(__self_0),
DataType::FixedString(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Bit(__self_0), DataType::Bit(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::BitVarying(__self_0),
DataType::BitVarying(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::VarBit(__self_0), DataType::VarBit(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Custom(__self_0, __self_1),
DataType::Custom(__arg1_0, __arg1_1)) =>
match ::core::cmp::Ord::cmp(__self_0, __arg1_0) {
::core::cmp::Ordering::Equal =>
::core::cmp::Ord::cmp(__self_1, __arg1_1),
cmp => cmp,
},
(DataType::Array(__self_0), DataType::Array(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Map(__self_0, __self_1),
DataType::Map(__arg1_0, __arg1_1)) =>
match ::core::cmp::Ord::cmp(__self_0, __arg1_0) {
::core::cmp::Ordering::Equal =>
::core::cmp::Ord::cmp(__self_1, __arg1_1),
cmp => cmp,
},
(DataType::Tuple(__self_0), DataType::Tuple(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Nested(__self_0), DataType::Nested(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Enum(__self_0, __self_1),
DataType::Enum(__arg1_0, __arg1_1)) =>
match ::core::cmp::Ord::cmp(__self_0, __arg1_0) {
::core::cmp::Ordering::Equal =>
::core::cmp::Ord::cmp(__self_1, __arg1_1),
cmp => cmp,
},
(DataType::Set(__self_0), DataType::Set(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Struct(__self_0, __self_1),
DataType::Struct(__arg1_0, __arg1_1)) =>
match ::core::cmp::Ord::cmp(__self_0, __arg1_0) {
::core::cmp::Ordering::Equal =>
::core::cmp::Ord::cmp(__self_1, __arg1_1),
cmp => cmp,
},
(DataType::Union(__self_0), DataType::Union(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::Nullable(__self_0), DataType::Nullable(__arg1_0))
=> ::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::LowCardinality(__self_0),
DataType::LowCardinality(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(DataType::GeometricType(__self_0),
DataType::GeometricType(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
_ => ::core::cmp::Ordering::Equal,
},
cmp => cmp,
}
}
}Ord, #[automatically_derived]
impl ::core::hash::Hash for DataType {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
let __self_discr = ::core::intrinsics::discriminant_value(self);
::core::hash::Hash::hash(&__self_discr, state);
match self {
DataType::Table(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::NamedTable { name: __self_0, columns: __self_1 } => {
::core::hash::Hash::hash(__self_0, state);
::core::hash::Hash::hash(__self_1, state)
}
DataType::Character(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Char(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::CharacterVarying(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::CharVarying(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Varchar(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Nvarchar(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::CharacterLargeObject(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::CharLargeObject(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Clob(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Binary(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Varbinary(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Blob(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Bytes(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Numeric(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Decimal(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::DecimalUnsigned(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::BigNumeric(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::BigDecimal(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Dec(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::DecUnsigned(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Float(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::FloatUnsigned(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::TinyInt(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::TinyIntUnsigned(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Int2(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Int2Unsigned(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::SmallInt(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::SmallIntUnsigned(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::MediumInt(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::MediumIntUnsigned(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Int(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Int4(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Int8(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Integer(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::IntUnsigned(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Int4Unsigned(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::IntegerUnsigned(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::BigInt(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::BigIntUnsigned(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Int8Unsigned(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Double(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::DoubleUnsigned(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Time(__self_0, __self_1) => {
::core::hash::Hash::hash(__self_0, state);
::core::hash::Hash::hash(__self_1, state)
}
DataType::Datetime(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Datetime64(__self_0, __self_1) => {
::core::hash::Hash::hash(__self_0, state);
::core::hash::Hash::hash(__self_1, state)
}
DataType::Timestamp(__self_0, __self_1) => {
::core::hash::Hash::hash(__self_0, state);
::core::hash::Hash::hash(__self_1, state)
}
DataType::TimestampNtz(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Interval { fields: __self_0, precision: __self_1 } => {
::core::hash::Hash::hash(__self_0, state);
::core::hash::Hash::hash(__self_1, state)
}
DataType::String(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::FixedString(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Bit(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::BitVarying(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::VarBit(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Custom(__self_0, __self_1) => {
::core::hash::Hash::hash(__self_0, state);
::core::hash::Hash::hash(__self_1, state)
}
DataType::Array(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Map(__self_0, __self_1) => {
::core::hash::Hash::hash(__self_0, state);
::core::hash::Hash::hash(__self_1, state)
}
DataType::Tuple(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Nested(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Enum(__self_0, __self_1) => {
::core::hash::Hash::hash(__self_0, state);
::core::hash::Hash::hash(__self_1, state)
}
DataType::Set(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Struct(__self_0, __self_1) => {
::core::hash::Hash::hash(__self_0, state);
::core::hash::Hash::hash(__self_1, state)
}
DataType::Union(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::Nullable(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::LowCardinality(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
DataType::GeometricType(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
_ => {}
}
}
}Hash)]
47#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
48#[cfg_attr(feature = "visitor", derive(impl sqlparser::ast::Visit for DataType {
fn visit<V: sqlparser::ast::Visitor>(&self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::Table(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::NamedTable { name, columns } => {
sqlparser::ast::Visit::visit(name, visitor)?;
sqlparser::ast::Visit::visit(columns, visitor)?;
}
Self::Character(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Char(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::CharacterVarying(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::CharVarying(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Varchar(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Nvarchar(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Uuid => {}
Self::CharacterLargeObject(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::CharLargeObject(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Clob(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Binary(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Varbinary(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Blob(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::TinyBlob => {}
Self::MediumBlob => {}
Self::LongBlob => {}
Self::Bytes(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Numeric(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Decimal(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::DecimalUnsigned(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::BigNumeric(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::BigDecimal(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Dec(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::DecUnsigned(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Float(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::FloatUnsigned(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::TinyInt(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::TinyIntUnsigned(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::UTinyInt => {}
Self::Int2(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Int2Unsigned(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::SmallInt(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::SmallIntUnsigned(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::USmallInt => {}
Self::MediumInt(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::MediumIntUnsigned(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Int(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Int4(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Int8(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Int16 => {}
Self::Int32 => {}
Self::Int64 => {}
Self::Int128 => {}
Self::Int256 => {}
Self::Integer(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::IntUnsigned(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Int4Unsigned(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::IntegerUnsigned(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::HugeInt => {}
Self::UHugeInt => {}
Self::UInt8 => {}
Self::UInt16 => {}
Self::UInt32 => {}
Self::UInt64 => {}
Self::UInt128 => {}
Self::UInt256 => {}
Self::BigInt(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::BigIntUnsigned(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::UBigInt => {}
Self::Int8Unsigned(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Signed => {}
Self::SignedInteger => {}
Self::Unsigned => {}
Self::UnsignedInteger => {}
Self::Float4 => {}
Self::Float32 => {}
Self::Float64 => {}
Self::Real => {}
Self::RealUnsigned => {}
Self::Float8 => {}
Self::Double(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::DoubleUnsigned(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::DoublePrecision => {}
Self::DoublePrecisionUnsigned => {}
Self::Bool => {}
Self::Boolean => {}
Self::Date => {}
Self::Date32 => {}
Self::Time(_0, _1) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
sqlparser::ast::Visit::visit(_1, visitor)?;
}
Self::Datetime(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Datetime64(_0, _1) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
sqlparser::ast::Visit::visit(_1, visitor)?;
}
Self::Timestamp(_0, _1) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
sqlparser::ast::Visit::visit(_1, visitor)?;
}
Self::TimestampNtz(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Interval { fields, precision } => {
sqlparser::ast::Visit::visit(fields, visitor)?;
sqlparser::ast::Visit::visit(precision, visitor)?;
}
Self::JSON => {}
Self::JSONB => {}
Self::Regclass => {}
Self::Text => {}
Self::TinyText => {}
Self::MediumText => {}
Self::LongText => {}
Self::String(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::FixedString(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Bytea => {}
Self::Bit(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::BitVarying(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::VarBit(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Custom(_0, _1) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
sqlparser::ast::Visit::visit(_1, visitor)?;
}
Self::Array(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Map(_0, _1) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
sqlparser::ast::Visit::visit(_1, visitor)?;
}
Self::Tuple(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Nested(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Enum(_0, _1) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
sqlparser::ast::Visit::visit(_1, visitor)?;
}
Self::Set(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Struct(_0, _1) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
sqlparser::ast::Visit::visit(_1, visitor)?;
}
Self::Union(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Nullable(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::LowCardinality(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::Unspecified => {}
Self::Trigger => {}
Self::AnyType => {}
Self::GeometricType(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::TsVector => {}
Self::TsQuery => {}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}Visit, impl sqlparser::ast::VisitMut for DataType {
fn visit<V: sqlparser::ast::VisitorMut>(&mut self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::Table(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::NamedTable { name, columns } => {
sqlparser::ast::VisitMut::visit(name, visitor)?;
sqlparser::ast::VisitMut::visit(columns, visitor)?;
}
Self::Character(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Char(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::CharacterVarying(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::CharVarying(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Varchar(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Nvarchar(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Uuid => {}
Self::CharacterLargeObject(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::CharLargeObject(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Clob(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Binary(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Varbinary(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Blob(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::TinyBlob => {}
Self::MediumBlob => {}
Self::LongBlob => {}
Self::Bytes(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Numeric(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Decimal(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::DecimalUnsigned(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::BigNumeric(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::BigDecimal(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Dec(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::DecUnsigned(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Float(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::FloatUnsigned(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::TinyInt(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::TinyIntUnsigned(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::UTinyInt => {}
Self::Int2(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Int2Unsigned(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::SmallInt(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::SmallIntUnsigned(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::USmallInt => {}
Self::MediumInt(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::MediumIntUnsigned(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Int(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Int4(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Int8(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Int16 => {}
Self::Int32 => {}
Self::Int64 => {}
Self::Int128 => {}
Self::Int256 => {}
Self::Integer(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::IntUnsigned(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Int4Unsigned(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::IntegerUnsigned(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::HugeInt => {}
Self::UHugeInt => {}
Self::UInt8 => {}
Self::UInt16 => {}
Self::UInt32 => {}
Self::UInt64 => {}
Self::UInt128 => {}
Self::UInt256 => {}
Self::BigInt(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::BigIntUnsigned(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::UBigInt => {}
Self::Int8Unsigned(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Signed => {}
Self::SignedInteger => {}
Self::Unsigned => {}
Self::UnsignedInteger => {}
Self::Float4 => {}
Self::Float32 => {}
Self::Float64 => {}
Self::Real => {}
Self::RealUnsigned => {}
Self::Float8 => {}
Self::Double(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::DoubleUnsigned(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::DoublePrecision => {}
Self::DoublePrecisionUnsigned => {}
Self::Bool => {}
Self::Boolean => {}
Self::Date => {}
Self::Date32 => {}
Self::Time(_0, _1) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
sqlparser::ast::VisitMut::visit(_1, visitor)?;
}
Self::Datetime(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Datetime64(_0, _1) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
sqlparser::ast::VisitMut::visit(_1, visitor)?;
}
Self::Timestamp(_0, _1) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
sqlparser::ast::VisitMut::visit(_1, visitor)?;
}
Self::TimestampNtz(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Interval { fields, precision } => {
sqlparser::ast::VisitMut::visit(fields, visitor)?;
sqlparser::ast::VisitMut::visit(precision, visitor)?;
}
Self::JSON => {}
Self::JSONB => {}
Self::Regclass => {}
Self::Text => {}
Self::TinyText => {}
Self::MediumText => {}
Self::LongText => {}
Self::String(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::FixedString(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Bytea => {}
Self::Bit(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::BitVarying(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::VarBit(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Custom(_0, _1) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
sqlparser::ast::VisitMut::visit(_1, visitor)?;
}
Self::Array(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Map(_0, _1) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
sqlparser::ast::VisitMut::visit(_1, visitor)?;
}
Self::Tuple(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Nested(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Enum(_0, _1) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
sqlparser::ast::VisitMut::visit(_1, visitor)?;
}
Self::Set(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Struct(_0, _1) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
sqlparser::ast::VisitMut::visit(_1, visitor)?;
}
Self::Union(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Nullable(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::LowCardinality(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::Unspecified => {}
Self::Trigger => {}
Self::AnyType => {}
Self::GeometricType(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::TsVector => {}
Self::TsQuery => {}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}VisitMut))]
49pub enum DataType {
50 Table(Option<Vec<ColumnDef>>),
55 NamedTable {
59 name: ObjectName,
61 columns: Vec<ColumnDef>,
63 },
64 Character(Option<CharacterLength>),
66 Char(Option<CharacterLength>),
68 CharacterVarying(Option<CharacterLength>),
70 CharVarying(Option<CharacterLength>),
72 Varchar(Option<CharacterLength>),
74 Nvarchar(Option<CharacterLength>),
76 Uuid,
78 CharacterLargeObject(Option<u64>),
83 CharLargeObject(Option<u64>),
88 Clob(Option<u64>),
94 Binary(Option<u64>),
100 Varbinary(Option<BinaryLength>),
106 Blob(Option<u64>),
112 TinyBlob,
116 MediumBlob,
120 LongBlob,
124 Bytes(Option<u64>),
128 Numeric(ExactNumberInfo),
132 Decimal(ExactNumberInfo),
136 DecimalUnsigned(ExactNumberInfo),
141 BigNumeric(ExactNumberInfo),
145 BigDecimal(ExactNumberInfo),
149 Dec(ExactNumberInfo),
153 DecUnsigned(ExactNumberInfo),
158 Float(ExactNumberInfo),
160 FloatUnsigned(ExactNumberInfo),
166 TinyInt(Option<u64>),
168 TinyIntUnsigned(Option<u64>),
171 UTinyInt,
173 Int2(Option<u64>),
179 Int2Unsigned(Option<u64>),
181 SmallInt(Option<u64>),
183 SmallIntUnsigned(Option<u64>),
186 USmallInt,
188 MediumInt(Option<u64>),
193 MediumIntUnsigned(Option<u64>),
198 Int(Option<u64>),
200 Int4(Option<u64>),
206 Int8(Option<u64>),
213 Int16,
218 Int32,
223 Int64,
228 Int128,
233 Int256,
238 Integer(Option<u64>),
240 IntUnsigned(Option<u64>),
242 Int4Unsigned(Option<u64>),
244 IntegerUnsigned(Option<u64>),
246 HugeInt,
248 UHugeInt,
250 UInt8,
255 UInt16,
260 UInt32,
265 UInt64,
270 UInt128,
275 UInt256,
280 BigInt(Option<u64>),
282 BigIntUnsigned(Option<u64>),
284 UBigInt,
286 Int8Unsigned(Option<u64>),
288 Signed,
293 SignedInteger,
298 Unsigned,
303 UnsignedInteger,
308 Float4,
312 Float32,
316 Float64,
321 Real,
323 RealUnsigned,
328 Float8,
332 Double(ExactNumberInfo),
334 DoubleUnsigned(ExactNumberInfo),
339 DoublePrecision,
344 DoublePrecisionUnsigned,
349 Bool,
353 Boolean,
355 Date,
357 Date32,
361 Time(Option<u64>, TimezoneInfo),
365 Datetime(Option<u64>),
369 Datetime64(u64, Option<String>),
373 Timestamp(Option<u64>, TimezoneInfo),
377 TimestampNtz(Option<u64>),
381 Interval {
383 fields: Option<IntervalFields>,
387 precision: Option<u64>,
391 },
392 JSON,
394 JSONB,
396 Regclass,
400 Text,
402 TinyText,
406 MediumText,
410 LongText,
414 String(Option<u64>),
416 FixedString(u64),
420 Bytea,
424 Bit(Option<u64>),
430 BitVarying(Option<u64>),
434 VarBit(Option<u64>),
438 Custom(ObjectName, Vec<String>),
440 Array(ArrayElemTypeDef),
442 Map(Box<DataType>, Box<DataType>),
446 Tuple(Vec<StructField>),
450 Nested(Vec<ColumnDef>),
454 Enum(Vec<EnumMember>, Option<u8>),
456 Set(Vec<String>),
458 Struct(Vec<StructField>, StructBracketKind),
463 Union(Vec<UnionField>),
467 Nullable(Box<DataType>),
471 LowCardinality(Box<DataType>),
475 Unspecified,
479 Trigger,
483 AnyType,
487 GeometricType(GeometricTypeKind),
491 TsVector,
495 TsQuery,
499}
500
501impl fmt::Display for DataType {
502 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
503 match self {
504 DataType::Character(size) => format_character_string_type(f, "CHARACTER", size),
505 DataType::Char(size) => format_character_string_type(f, "CHAR", size),
506 DataType::CharacterVarying(size) => {
507 format_character_string_type(f, "CHARACTER VARYING", size)
508 }
509 DataType::CharVarying(size) => format_character_string_type(f, "CHAR VARYING", size),
510 DataType::Varchar(size) => format_character_string_type(f, "VARCHAR", size),
511 DataType::Nvarchar(size) => format_character_string_type(f, "NVARCHAR", size),
512 DataType::Uuid => f.write_fmt(format_args!("UUID"))write!(f, "UUID"),
513 DataType::CharacterLargeObject(size) => {
514 format_type_with_optional_length(f, "CHARACTER LARGE OBJECT", size, false)
515 }
516 DataType::CharLargeObject(size) => {
517 format_type_with_optional_length(f, "CHAR LARGE OBJECT", size, false)
518 }
519 DataType::Clob(size) => format_type_with_optional_length(f, "CLOB", size, false),
520 DataType::Binary(size) => format_type_with_optional_length(f, "BINARY", size, false),
521 DataType::Varbinary(size) => format_varbinary_type(f, "VARBINARY", size),
522 DataType::Blob(size) => format_type_with_optional_length(f, "BLOB", size, false),
523 DataType::TinyBlob => f.write_fmt(format_args!("TINYBLOB"))write!(f, "TINYBLOB"),
524 DataType::MediumBlob => f.write_fmt(format_args!("MEDIUMBLOB"))write!(f, "MEDIUMBLOB"),
525 DataType::LongBlob => f.write_fmt(format_args!("LONGBLOB"))write!(f, "LONGBLOB"),
526 DataType::Bytes(size) => format_type_with_optional_length(f, "BYTES", size, false),
527 DataType::Numeric(info) => {
528 f.write_fmt(format_args!("NUMERIC{0}", info))write!(f, "NUMERIC{info}")
529 }
530 DataType::Decimal(info) => {
531 f.write_fmt(format_args!("DECIMAL{0}", info))write!(f, "DECIMAL{info}")
532 }
533 DataType::DecimalUnsigned(info) => {
534 f.write_fmt(format_args!("DECIMAL{0} UNSIGNED", info))write!(f, "DECIMAL{info} UNSIGNED")
535 }
536 DataType::Dec(info) => {
537 f.write_fmt(format_args!("DEC{0}", info))write!(f, "DEC{info}")
538 }
539 DataType::DecUnsigned(info) => {
540 f.write_fmt(format_args!("DEC{0} UNSIGNED", info))write!(f, "DEC{info} UNSIGNED")
541 }
542 DataType::BigNumeric(info) => f.write_fmt(format_args!("BIGNUMERIC{0}", info))write!(f, "BIGNUMERIC{info}"),
543 DataType::BigDecimal(info) => f.write_fmt(format_args!("BIGDECIMAL{0}", info))write!(f, "BIGDECIMAL{info}"),
544 DataType::Float(info) => f.write_fmt(format_args!("FLOAT{0}", info))write!(f, "FLOAT{info}"),
545 DataType::FloatUnsigned(info) => f.write_fmt(format_args!("FLOAT{0} UNSIGNED", info))write!(f, "FLOAT{info} UNSIGNED"),
546 DataType::TinyInt(zerofill) => {
547 format_type_with_optional_length(f, "TINYINT", zerofill, false)
548 }
549 DataType::TinyIntUnsigned(zerofill) => {
550 format_type_with_optional_length(f, "TINYINT", zerofill, true)
551 }
552 DataType::Int2(zerofill) => {
553 format_type_with_optional_length(f, "INT2", zerofill, false)
554 }
555 DataType::Int2Unsigned(zerofill) => {
556 format_type_with_optional_length(f, "INT2", zerofill, true)
557 }
558 DataType::SmallInt(zerofill) => {
559 format_type_with_optional_length(f, "SMALLINT", zerofill, false)
560 }
561 DataType::SmallIntUnsigned(zerofill) => {
562 format_type_with_optional_length(f, "SMALLINT", zerofill, true)
563 }
564 DataType::MediumInt(zerofill) => {
565 format_type_with_optional_length(f, "MEDIUMINT", zerofill, false)
566 }
567 DataType::MediumIntUnsigned(zerofill) => {
568 format_type_with_optional_length(f, "MEDIUMINT", zerofill, true)
569 }
570 DataType::Int(zerofill) => format_type_with_optional_length(f, "INT", zerofill, false),
571 DataType::IntUnsigned(zerofill) => {
572 format_type_with_optional_length(f, "INT", zerofill, true)
573 }
574 DataType::Int4(zerofill) => {
575 format_type_with_optional_length(f, "INT4", zerofill, false)
576 }
577 DataType::Int8(zerofill) => {
578 format_type_with_optional_length(f, "INT8", zerofill, false)
579 }
580 DataType::Int16 => {
581 f.write_fmt(format_args!("Int16"))write!(f, "Int16")
582 }
583 DataType::Int32 => {
584 f.write_fmt(format_args!("Int32"))write!(f, "Int32")
585 }
586 DataType::Int64 => {
587 f.write_fmt(format_args!("INT64"))write!(f, "INT64")
588 }
589 DataType::Int128 => {
590 f.write_fmt(format_args!("Int128"))write!(f, "Int128")
591 }
592 DataType::Int256 => {
593 f.write_fmt(format_args!("Int256"))write!(f, "Int256")
594 }
595 DataType::HugeInt => {
596 f.write_fmt(format_args!("HUGEINT"))write!(f, "HUGEINT")
597 }
598 DataType::Int4Unsigned(zerofill) => {
599 format_type_with_optional_length(f, "INT4", zerofill, true)
600 }
601 DataType::Integer(zerofill) => {
602 format_type_with_optional_length(f, "INTEGER", zerofill, false)
603 }
604 DataType::IntegerUnsigned(zerofill) => {
605 format_type_with_optional_length(f, "INTEGER", zerofill, true)
606 }
607 DataType::BigInt(zerofill) => {
608 format_type_with_optional_length(f, "BIGINT", zerofill, false)
609 }
610 DataType::BigIntUnsigned(zerofill) => {
611 format_type_with_optional_length(f, "BIGINT", zerofill, true)
612 }
613 DataType::Int8Unsigned(zerofill) => {
614 format_type_with_optional_length(f, "INT8", zerofill, true)
615 }
616 DataType::UTinyInt => {
617 f.write_fmt(format_args!("UTINYINT"))write!(f, "UTINYINT")
618 }
619 DataType::USmallInt => {
620 f.write_fmt(format_args!("USMALLINT"))write!(f, "USMALLINT")
621 }
622 DataType::UBigInt => {
623 f.write_fmt(format_args!("UBIGINT"))write!(f, "UBIGINT")
624 }
625 DataType::UHugeInt => {
626 f.write_fmt(format_args!("UHUGEINT"))write!(f, "UHUGEINT")
627 }
628 DataType::UInt8 => {
629 f.write_fmt(format_args!("UInt8"))write!(f, "UInt8")
630 }
631 DataType::UInt16 => {
632 f.write_fmt(format_args!("UInt16"))write!(f, "UInt16")
633 }
634 DataType::UInt32 => {
635 f.write_fmt(format_args!("UInt32"))write!(f, "UInt32")
636 }
637 DataType::UInt64 => {
638 f.write_fmt(format_args!("UInt64"))write!(f, "UInt64")
639 }
640 DataType::UInt128 => {
641 f.write_fmt(format_args!("UInt128"))write!(f, "UInt128")
642 }
643 DataType::UInt256 => {
644 f.write_fmt(format_args!("UInt256"))write!(f, "UInt256")
645 }
646 DataType::Signed => {
647 f.write_fmt(format_args!("SIGNED"))write!(f, "SIGNED")
648 }
649 DataType::SignedInteger => {
650 f.write_fmt(format_args!("SIGNED INTEGER"))write!(f, "SIGNED INTEGER")
651 }
652 DataType::Unsigned => {
653 f.write_fmt(format_args!("UNSIGNED"))write!(f, "UNSIGNED")
654 }
655 DataType::UnsignedInteger => {
656 f.write_fmt(format_args!("UNSIGNED INTEGER"))write!(f, "UNSIGNED INTEGER")
657 }
658 DataType::Real => f.write_fmt(format_args!("REAL"))write!(f, "REAL"),
659 DataType::RealUnsigned => f.write_fmt(format_args!("REAL UNSIGNED"))write!(f, "REAL UNSIGNED"),
660 DataType::Float4 => f.write_fmt(format_args!("FLOAT4"))write!(f, "FLOAT4"),
661 DataType::Float32 => f.write_fmt(format_args!("Float32"))write!(f, "Float32"),
662 DataType::Float64 => f.write_fmt(format_args!("FLOAT64"))write!(f, "FLOAT64"),
663 DataType::Double(info) => f.write_fmt(format_args!("DOUBLE{0}", info))write!(f, "DOUBLE{info}"),
664 DataType::DoubleUnsigned(info) => f.write_fmt(format_args!("DOUBLE{0} UNSIGNED", info))write!(f, "DOUBLE{info} UNSIGNED"),
665 DataType::Float8 => f.write_fmt(format_args!("FLOAT8"))write!(f, "FLOAT8"),
666 DataType::DoublePrecision => f.write_fmt(format_args!("DOUBLE PRECISION"))write!(f, "DOUBLE PRECISION"),
667 DataType::DoublePrecisionUnsigned => f.write_fmt(format_args!("DOUBLE PRECISION UNSIGNED"))write!(f, "DOUBLE PRECISION UNSIGNED"),
668 DataType::Bool => f.write_fmt(format_args!("BOOL"))write!(f, "BOOL"),
669 DataType::Boolean => f.write_fmt(format_args!("BOOLEAN"))write!(f, "BOOLEAN"),
670 DataType::Date => f.write_fmt(format_args!("DATE"))write!(f, "DATE"),
671 DataType::Date32 => f.write_fmt(format_args!("Date32"))write!(f, "Date32"),
672 DataType::Time(precision, timezone_info) => {
673 format_datetime_precision_and_tz(f, "TIME", precision, timezone_info)
674 }
675 DataType::Datetime(precision) => {
676 format_type_with_optional_length(f, "DATETIME", precision, false)
677 }
678 DataType::Timestamp(precision, timezone_info) => {
679 format_datetime_precision_and_tz(f, "TIMESTAMP", precision, timezone_info)
680 }
681 DataType::TimestampNtz(precision) => {
682 format_type_with_optional_length(f, "TIMESTAMP_NTZ", precision, false)
683 }
684 DataType::Datetime64(precision, timezone) => {
685 format_clickhouse_datetime_precision_and_timezone(
686 f,
687 "DateTime64",
688 precision,
689 timezone,
690 )
691 }
692 DataType::Interval { fields, precision } => {
693 f.write_fmt(format_args!("INTERVAL"))write!(f, "INTERVAL")?;
694 if let Some(fields) = fields {
695 f.write_fmt(format_args!(" {0}", fields))write!(f, " {fields}")?;
696 }
697 if let Some(precision) = precision {
698 f.write_fmt(format_args!("({0})", precision))write!(f, "({precision})")?;
699 }
700 Ok(())
701 }
702 DataType::JSON => f.write_fmt(format_args!("JSON"))write!(f, "JSON"),
703 DataType::JSONB => f.write_fmt(format_args!("JSONB"))write!(f, "JSONB"),
704 DataType::Regclass => f.write_fmt(format_args!("REGCLASS"))write!(f, "REGCLASS"),
705 DataType::Text => f.write_fmt(format_args!("TEXT"))write!(f, "TEXT"),
706 DataType::TinyText => f.write_fmt(format_args!("TINYTEXT"))write!(f, "TINYTEXT"),
707 DataType::MediumText => f.write_fmt(format_args!("MEDIUMTEXT"))write!(f, "MEDIUMTEXT"),
708 DataType::LongText => f.write_fmt(format_args!("LONGTEXT"))write!(f, "LONGTEXT"),
709 DataType::String(size) => format_type_with_optional_length(f, "STRING", size, false),
710 DataType::Bytea => f.write_fmt(format_args!("BYTEA"))write!(f, "BYTEA"),
711 DataType::Bit(size) => format_type_with_optional_length(f, "BIT", size, false),
712 DataType::BitVarying(size) => {
713 format_type_with_optional_length(f, "BIT VARYING", size, false)
714 }
715 DataType::VarBit(size) => format_type_with_optional_length(f, "VARBIT", size, false),
716 DataType::Array(ty) => match ty {
717 ArrayElemTypeDef::None => f.write_fmt(format_args!("ARRAY"))write!(f, "ARRAY"),
718 ArrayElemTypeDef::SquareBracket(t, None) => f.write_fmt(format_args!("{0}[]", t))write!(f, "{t}[]"),
719 ArrayElemTypeDef::SquareBracket(t, Some(size)) => f.write_fmt(format_args!("{0}[{1}]", t, size))write!(f, "{t}[{size}]"),
720 ArrayElemTypeDef::AngleBracket(t) => f.write_fmt(format_args!("ARRAY<{0}>", t))write!(f, "ARRAY<{t}>"),
721 ArrayElemTypeDef::Parenthesis(t) => f.write_fmt(format_args!("Array({0})", t))write!(f, "Array({t})"),
722 },
723 DataType::Custom(ty, modifiers) => {
724 if modifiers.is_empty() {
725 f.write_fmt(format_args!("{0}", ty))write!(f, "{ty}")
726 } else {
727 f.write_fmt(format_args!("{0}({1})", ty, modifiers.join(", ")))write!(f, "{}({})", ty, modifiers.join(", "))
728 }
729 }
730 DataType::Enum(vals, bits) => {
731 match bits {
732 Some(bits) => f.write_fmt(format_args!("ENUM{0}", bits))write!(f, "ENUM{bits}"),
733 None => f.write_fmt(format_args!("ENUM"))write!(f, "ENUM"),
734 }?;
735 f.write_fmt(format_args!("("))write!(f, "(")?;
736 for (i, v) in vals.iter().enumerate() {
737 if i != 0 {
738 f.write_fmt(format_args!(", "))write!(f, ", ")?;
739 }
740 match v {
741 EnumMember::Name(name) => {
742 f.write_fmt(format_args!("\'{0}\'", escape_single_quote_string(name)))write!(f, "'{}'", escape_single_quote_string(name))?
743 }
744 EnumMember::NamedValue(name, value) => {
745 f.write_fmt(format_args!("\'{0}\' = {1}", escape_single_quote_string(name),
value))write!(f, "'{}' = {}", escape_single_quote_string(name), value)?
746 }
747 }
748 }
749 f.write_fmt(format_args!(")"))write!(f, ")")
750 }
751 DataType::Set(vals) => {
752 f.write_fmt(format_args!("SET("))write!(f, "SET(")?;
753 for (i, v) in vals.iter().enumerate() {
754 if i != 0 {
755 f.write_fmt(format_args!(", "))write!(f, ", ")?;
756 }
757 f.write_fmt(format_args!("\'{0}\'", escape_single_quote_string(v)))write!(f, "'{}'", escape_single_quote_string(v))?;
758 }
759 f.write_fmt(format_args!(")"))write!(f, ")")
760 }
761 DataType::Struct(fields, bracket) => {
762 if !fields.is_empty() {
763 match bracket {
764 StructBracketKind::Parentheses => {
765 f.write_fmt(format_args!("STRUCT({0})", display_comma_separated(fields)))write!(f, "STRUCT({})", display_comma_separated(fields))
766 }
767 StructBracketKind::AngleBrackets => {
768 f.write_fmt(format_args!("STRUCT<{0}>", display_comma_separated(fields)))write!(f, "STRUCT<{}>", display_comma_separated(fields))
769 }
770 }
771 } else {
772 f.write_fmt(format_args!("STRUCT"))write!(f, "STRUCT")
773 }
774 }
775 DataType::Union(fields) => {
776 f.write_fmt(format_args!("UNION({0})", display_comma_separated(fields)))write!(f, "UNION({})", display_comma_separated(fields))
777 }
778 DataType::Nullable(data_type) => {
780 f.write_fmt(format_args!("Nullable({0})", data_type))write!(f, "Nullable({data_type})")
781 }
782 DataType::FixedString(character_length) => {
783 f.write_fmt(format_args!("FixedString({0})", character_length))write!(f, "FixedString({character_length})")
784 }
785 DataType::LowCardinality(data_type) => {
786 f.write_fmt(format_args!("LowCardinality({0})", data_type))write!(f, "LowCardinality({data_type})")
787 }
788 DataType::Map(key_data_type, value_data_type) => {
789 f.write_fmt(format_args!("Map({0}, {1})", key_data_type, value_data_type))write!(f, "Map({key_data_type}, {value_data_type})")
790 }
791 DataType::Tuple(fields) => {
792 f.write_fmt(format_args!("Tuple({0})", display_comma_separated(fields)))write!(f, "Tuple({})", display_comma_separated(fields))
793 }
794 DataType::Nested(fields) => {
795 f.write_fmt(format_args!("Nested({0})", display_comma_separated(fields)))write!(f, "Nested({})", display_comma_separated(fields))
796 }
797 DataType::Unspecified => Ok(()),
798 DataType::Trigger => f.write_fmt(format_args!("TRIGGER"))write!(f, "TRIGGER"),
799 DataType::AnyType => f.write_fmt(format_args!("ANY TYPE"))write!(f, "ANY TYPE"),
800 DataType::Table(fields) => match fields {
801 Some(fields) => {
802 f.write_fmt(format_args!("TABLE({0})", display_comma_separated(fields)))write!(f, "TABLE({})", display_comma_separated(fields))
803 }
804 None => {
805 f.write_fmt(format_args!("TABLE"))write!(f, "TABLE")
806 }
807 },
808 DataType::NamedTable { name, columns } => {
809 f.write_fmt(format_args!("{0} TABLE ({1})", name,
display_comma_separated(columns)))write!(f, "{} TABLE ({})", name, display_comma_separated(columns))
810 }
811 DataType::GeometricType(kind) => f.write_fmt(format_args!("{0}", kind))write!(f, "{kind}"),
812 DataType::TsVector => f.write_fmt(format_args!("TSVECTOR"))write!(f, "TSVECTOR"),
813 DataType::TsQuery => f.write_fmt(format_args!("TSQUERY"))write!(f, "TSQUERY"),
814 }
815 }
816}
817
818fn format_type_with_optional_length(
819 f: &mut fmt::Formatter,
820 sql_type: &'static str,
821 len: &Option<u64>,
822 unsigned: bool,
823) -> fmt::Result {
824 f.write_fmt(format_args!("{0}", sql_type))write!(f, "{sql_type}")?;
825 if let Some(len) = len {
826 f.write_fmt(format_args!("({0})", len))write!(f, "({len})")?;
827 }
828 if unsigned {
829 f.write_fmt(format_args!(" UNSIGNED"))write!(f, " UNSIGNED")?;
830 }
831 Ok(())
832}
833
834fn format_character_string_type(
835 f: &mut fmt::Formatter,
836 sql_type: &str,
837 size: &Option<CharacterLength>,
838) -> fmt::Result {
839 f.write_fmt(format_args!("{0}", sql_type))write!(f, "{sql_type}")?;
840 if let Some(size) = size {
841 f.write_fmt(format_args!("({0})", size))write!(f, "({size})")?;
842 }
843 Ok(())
844}
845
846fn format_varbinary_type(
847 f: &mut fmt::Formatter,
848 sql_type: &str,
849 size: &Option<BinaryLength>,
850) -> fmt::Result {
851 f.write_fmt(format_args!("{0}", sql_type))write!(f, "{sql_type}")?;
852 if let Some(size) = size {
853 f.write_fmt(format_args!("({0})", size))write!(f, "({size})")?;
854 }
855 Ok(())
856}
857
858fn format_datetime_precision_and_tz(
859 f: &mut fmt::Formatter,
860 sql_type: &'static str,
861 len: &Option<u64>,
862 time_zone: &TimezoneInfo,
863) -> fmt::Result {
864 f.write_fmt(format_args!("{0}", sql_type))write!(f, "{sql_type}")?;
865 let len_fmt = len.as_ref().map(|l| ::alloc::__export::must_use({
::alloc::fmt::format(format_args!("({0})", l))
})format!("({l})")).unwrap_or_default();
866
867 match time_zone {
868 TimezoneInfo::Tz => {
869 f.write_fmt(format_args!("{0}{1}", time_zone, len_fmt))write!(f, "{time_zone}{len_fmt}")?;
870 }
871 _ => {
872 f.write_fmt(format_args!("{0}{1}", len_fmt, time_zone))write!(f, "{len_fmt}{time_zone}")?;
873 }
874 }
875
876 Ok(())
877}
878
879fn format_clickhouse_datetime_precision_and_timezone(
880 f: &mut fmt::Formatter,
881 sql_type: &'static str,
882 len: &u64,
883 time_zone: &Option<String>,
884) -> fmt::Result {
885 f.write_fmt(format_args!("{0}({1}", sql_type, len))write!(f, "{sql_type}({len}")?;
886
887 if let Some(time_zone) = time_zone {
888 f.write_fmt(format_args!(", \'{0}\'", time_zone))write!(f, ", '{time_zone}'")?;
889 }
890
891 f.write_fmt(format_args!(")"))write!(f, ")")?;
892
893 Ok(())
894}
895
896#[derive(#[automatically_derived]
impl ::core::fmt::Debug for StructBracketKind {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f,
match self {
StructBracketKind::Parentheses => "Parentheses",
StructBracketKind::AngleBrackets => "AngleBrackets",
})
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for StructBracketKind {
#[inline]
fn clone(&self) -> StructBracketKind { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for StructBracketKind { }Copy, #[automatically_derived]
impl ::core::cmp::PartialEq for StructBracketKind {
#[inline]
fn eq(&self, other: &StructBracketKind) -> bool {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
__self_discr == __arg1_discr
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::PartialOrd for StructBracketKind {
#[inline]
fn partial_cmp(&self, other: &StructBracketKind)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
impl ::core::cmp::Eq for StructBracketKind {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {}
}Eq, #[automatically_derived]
impl ::core::cmp::Ord for StructBracketKind {
#[inline]
fn cmp(&self, other: &StructBracketKind) -> ::core::cmp::Ordering {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
::core::cmp::Ord::cmp(&__self_discr, &__arg1_discr)
}
}Ord, #[automatically_derived]
impl ::core::hash::Hash for StructBracketKind {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
let __self_discr = ::core::intrinsics::discriminant_value(self);
::core::hash::Hash::hash(&__self_discr, state)
}
}Hash)]
898#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
899#[cfg_attr(feature = "visitor", derive(impl sqlparser::ast::Visit for StructBracketKind {
fn visit<V: sqlparser::ast::Visitor>(&self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::Parentheses => {}
Self::AngleBrackets => {}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}Visit, impl sqlparser::ast::VisitMut for StructBracketKind {
fn visit<V: sqlparser::ast::VisitorMut>(&mut self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::Parentheses => {}
Self::AngleBrackets => {}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}VisitMut))]
900pub enum StructBracketKind {
901 Parentheses,
903 AngleBrackets,
905}
906
907#[derive(#[automatically_derived]
impl ::core::fmt::Debug for TimezoneInfo {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f,
match self {
TimezoneInfo::None => "None",
TimezoneInfo::WithTimeZone => "WithTimeZone",
TimezoneInfo::WithoutTimeZone => "WithoutTimeZone",
TimezoneInfo::Tz => "Tz",
})
}
}Debug, #[automatically_derived]
impl ::core::marker::Copy for TimezoneInfo { }Copy, #[automatically_derived]
impl ::core::clone::Clone for TimezoneInfo {
#[inline]
fn clone(&self) -> TimezoneInfo { *self }
}Clone, #[automatically_derived]
impl ::core::cmp::PartialEq for TimezoneInfo {
#[inline]
fn eq(&self, other: &TimezoneInfo) -> bool {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
__self_discr == __arg1_discr
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::PartialOrd for TimezoneInfo {
#[inline]
fn partial_cmp(&self, other: &TimezoneInfo)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
impl ::core::cmp::Eq for TimezoneInfo {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {}
}Eq, #[automatically_derived]
impl ::core::cmp::Ord for TimezoneInfo {
#[inline]
fn cmp(&self, other: &TimezoneInfo) -> ::core::cmp::Ordering {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
::core::cmp::Ord::cmp(&__self_discr, &__arg1_discr)
}
}Ord, #[automatically_derived]
impl ::core::hash::Hash for TimezoneInfo {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
let __self_discr = ::core::intrinsics::discriminant_value(self);
::core::hash::Hash::hash(&__self_discr, state)
}
}Hash)]
912#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
913#[cfg_attr(feature = "visitor", derive(impl sqlparser::ast::Visit for TimezoneInfo {
fn visit<V: sqlparser::ast::Visitor>(&self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::None => {}
Self::WithTimeZone => {}
Self::WithoutTimeZone => {}
Self::Tz => {}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}Visit, impl sqlparser::ast::VisitMut for TimezoneInfo {
fn visit<V: sqlparser::ast::VisitorMut>(&mut self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::None => {}
Self::WithTimeZone => {}
Self::WithoutTimeZone => {}
Self::Tz => {}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}VisitMut))]
914pub enum TimezoneInfo {
915 None,
917 WithTimeZone,
922 WithoutTimeZone,
927 Tz,
931}
932
933impl fmt::Display for TimezoneInfo {
934 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
935 match self {
936 TimezoneInfo::None => {
937 f.write_fmt(format_args!(""))write!(f, "")
938 }
939 TimezoneInfo::WithTimeZone => {
940 f.write_fmt(format_args!(" WITH TIME ZONE"))write!(f, " WITH TIME ZONE")
941 }
942 TimezoneInfo::WithoutTimeZone => {
943 f.write_fmt(format_args!(" WITHOUT TIME ZONE"))write!(f, " WITHOUT TIME ZONE")
944 }
945 TimezoneInfo::Tz => {
946 f.write_fmt(format_args!("TZ"))write!(f, "TZ")
950 }
951 }
952 }
953}
954
955#[derive(#[automatically_derived]
impl ::core::fmt::Debug for IntervalFields {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f,
match self {
IntervalFields::Year => "Year",
IntervalFields::Month => "Month",
IntervalFields::Day => "Day",
IntervalFields::Hour => "Hour",
IntervalFields::Minute => "Minute",
IntervalFields::Second => "Second",
IntervalFields::YearToMonth => "YearToMonth",
IntervalFields::DayToHour => "DayToHour",
IntervalFields::DayToMinute => "DayToMinute",
IntervalFields::DayToSecond => "DayToSecond",
IntervalFields::HourToMinute => "HourToMinute",
IntervalFields::HourToSecond => "HourToSecond",
IntervalFields::MinuteToSecond => "MinuteToSecond",
})
}
}Debug, #[automatically_derived]
impl ::core::marker::Copy for IntervalFields { }Copy, #[automatically_derived]
impl ::core::clone::Clone for IntervalFields {
#[inline]
fn clone(&self) -> IntervalFields { *self }
}Clone, #[automatically_derived]
impl ::core::cmp::PartialEq for IntervalFields {
#[inline]
fn eq(&self, other: &IntervalFields) -> bool {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
__self_discr == __arg1_discr
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::PartialOrd for IntervalFields {
#[inline]
fn partial_cmp(&self, other: &IntervalFields)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
impl ::core::cmp::Eq for IntervalFields {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {}
}Eq, #[automatically_derived]
impl ::core::cmp::Ord for IntervalFields {
#[inline]
fn cmp(&self, other: &IntervalFields) -> ::core::cmp::Ordering {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
::core::cmp::Ord::cmp(&__self_discr, &__arg1_discr)
}
}Ord, #[automatically_derived]
impl ::core::hash::Hash for IntervalFields {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
let __self_discr = ::core::intrinsics::discriminant_value(self);
::core::hash::Hash::hash(&__self_discr, state)
}
}Hash)]
959#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
960#[cfg_attr(feature = "visitor", derive(impl sqlparser::ast::Visit for IntervalFields {
fn visit<V: sqlparser::ast::Visitor>(&self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::Year => {}
Self::Month => {}
Self::Day => {}
Self::Hour => {}
Self::Minute => {}
Self::Second => {}
Self::YearToMonth => {}
Self::DayToHour => {}
Self::DayToMinute => {}
Self::DayToSecond => {}
Self::HourToMinute => {}
Self::HourToSecond => {}
Self::MinuteToSecond => {}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}Visit, impl sqlparser::ast::VisitMut for IntervalFields {
fn visit<V: sqlparser::ast::VisitorMut>(&mut self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::Year => {}
Self::Month => {}
Self::Day => {}
Self::Hour => {}
Self::Minute => {}
Self::Second => {}
Self::YearToMonth => {}
Self::DayToHour => {}
Self::DayToMinute => {}
Self::DayToSecond => {}
Self::HourToMinute => {}
Self::HourToSecond => {}
Self::MinuteToSecond => {}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}VisitMut))]
961pub enum IntervalFields {
962 Year,
964 Month,
966 Day,
968 Hour,
970 Minute,
972 Second,
974 YearToMonth,
976 DayToHour,
978 DayToMinute,
980 DayToSecond,
982 HourToMinute,
984 HourToSecond,
986 MinuteToSecond,
988}
989
990impl fmt::Display for IntervalFields {
991 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
992 match self {
993 IntervalFields::Year => f.write_fmt(format_args!("YEAR"))write!(f, "YEAR"),
994 IntervalFields::Month => f.write_fmt(format_args!("MONTH"))write!(f, "MONTH"),
995 IntervalFields::Day => f.write_fmt(format_args!("DAY"))write!(f, "DAY"),
996 IntervalFields::Hour => f.write_fmt(format_args!("HOUR"))write!(f, "HOUR"),
997 IntervalFields::Minute => f.write_fmt(format_args!("MINUTE"))write!(f, "MINUTE"),
998 IntervalFields::Second => f.write_fmt(format_args!("SECOND"))write!(f, "SECOND"),
999 IntervalFields::YearToMonth => f.write_fmt(format_args!("YEAR TO MONTH"))write!(f, "YEAR TO MONTH"),
1000 IntervalFields::DayToHour => f.write_fmt(format_args!("DAY TO HOUR"))write!(f, "DAY TO HOUR"),
1001 IntervalFields::DayToMinute => f.write_fmt(format_args!("DAY TO MINUTE"))write!(f, "DAY TO MINUTE"),
1002 IntervalFields::DayToSecond => f.write_fmt(format_args!("DAY TO SECOND"))write!(f, "DAY TO SECOND"),
1003 IntervalFields::HourToMinute => f.write_fmt(format_args!("HOUR TO MINUTE"))write!(f, "HOUR TO MINUTE"),
1004 IntervalFields::HourToSecond => f.write_fmt(format_args!("HOUR TO SECOND"))write!(f, "HOUR TO SECOND"),
1005 IntervalFields::MinuteToSecond => f.write_fmt(format_args!("MINUTE TO SECOND"))write!(f, "MINUTE TO SECOND"),
1006 }
1007 }
1008}
1009
1010#[derive(#[automatically_derived]
impl ::core::fmt::Debug for ExactNumberInfo {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
match self {
ExactNumberInfo::None =>
::core::fmt::Formatter::write_str(f, "None"),
ExactNumberInfo::Precision(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"Precision", &__self_0),
ExactNumberInfo::PrecisionAndScale(__self_0, __self_1) =>
::core::fmt::Formatter::debug_tuple_field2_finish(f,
"PrecisionAndScale", __self_0, &__self_1),
}
}
}Debug, #[automatically_derived]
impl ::core::marker::Copy for ExactNumberInfo { }Copy, #[automatically_derived]
impl ::core::clone::Clone for ExactNumberInfo {
#[inline]
fn clone(&self) -> ExactNumberInfo {
let _: ::core::clone::AssertParamIsClone<u64>;
let _: ::core::clone::AssertParamIsClone<i64>;
*self
}
}Clone, #[automatically_derived]
impl ::core::cmp::PartialEq for ExactNumberInfo {
#[inline]
fn eq(&self, other: &ExactNumberInfo) -> bool {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
__self_discr == __arg1_discr &&
match (self, other) {
(ExactNumberInfo::Precision(__self_0),
ExactNumberInfo::Precision(__arg1_0)) =>
__self_0 == __arg1_0,
(ExactNumberInfo::PrecisionAndScale(__self_0, __self_1),
ExactNumberInfo::PrecisionAndScale(__arg1_0, __arg1_1)) =>
__self_0 == __arg1_0 && __self_1 == __arg1_1,
_ => true,
}
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::PartialOrd for ExactNumberInfo {
#[inline]
fn partial_cmp(&self, other: &ExactNumberInfo)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
impl ::core::cmp::Eq for ExactNumberInfo {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u64>;
let _: ::core::cmp::AssertParamIsEq<i64>;
}
}Eq, #[automatically_derived]
impl ::core::cmp::Ord for ExactNumberInfo {
#[inline]
fn cmp(&self, other: &ExactNumberInfo) -> ::core::cmp::Ordering {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
match ::core::cmp::Ord::cmp(&__self_discr, &__arg1_discr) {
::core::cmp::Ordering::Equal =>
match (self, other) {
(ExactNumberInfo::Precision(__self_0),
ExactNumberInfo::Precision(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(ExactNumberInfo::PrecisionAndScale(__self_0, __self_1),
ExactNumberInfo::PrecisionAndScale(__arg1_0, __arg1_1)) =>
match ::core::cmp::Ord::cmp(__self_0, __arg1_0) {
::core::cmp::Ordering::Equal =>
::core::cmp::Ord::cmp(__self_1, __arg1_1),
cmp => cmp,
},
_ => ::core::cmp::Ordering::Equal,
},
cmp => cmp,
}
}
}Ord, #[automatically_derived]
impl ::core::hash::Hash for ExactNumberInfo {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
let __self_discr = ::core::intrinsics::discriminant_value(self);
::core::hash::Hash::hash(&__self_discr, state);
match self {
ExactNumberInfo::Precision(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
ExactNumberInfo::PrecisionAndScale(__self_0, __self_1) => {
::core::hash::Hash::hash(__self_0, state);
::core::hash::Hash::hash(__self_1, state)
}
_ => {}
}
}
}Hash)]
1015#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
1016#[cfg_attr(feature = "visitor", derive(impl sqlparser::ast::Visit for ExactNumberInfo {
fn visit<V: sqlparser::ast::Visitor>(&self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::None => {}
Self::Precision(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::PrecisionAndScale(_0, _1) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
sqlparser::ast::Visit::visit(_1, visitor)?;
}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}Visit, impl sqlparser::ast::VisitMut for ExactNumberInfo {
fn visit<V: sqlparser::ast::VisitorMut>(&mut self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::None => {}
Self::Precision(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::PrecisionAndScale(_0, _1) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
sqlparser::ast::VisitMut::visit(_1, visitor)?;
}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}VisitMut))]
1017pub enum ExactNumberInfo {
1018 None,
1020 Precision(u64),
1022 PrecisionAndScale(u64, i64),
1024}
1025
1026impl fmt::Display for ExactNumberInfo {
1027 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1028 match self {
1029 ExactNumberInfo::None => {
1030 f.write_fmt(format_args!(""))write!(f, "")
1031 }
1032 ExactNumberInfo::Precision(p) => {
1033 f.write_fmt(format_args!("({0})", p))write!(f, "({p})")
1034 }
1035 ExactNumberInfo::PrecisionAndScale(p, s) => {
1036 f.write_fmt(format_args!("({0},{1})", p, s))write!(f, "({p},{s})")
1037 }
1038 }
1039 }
1040}
1041
1042#[derive(#[automatically_derived]
impl ::core::fmt::Debug for CharacterLength {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
match self {
CharacterLength::IntegerLength { length: __self_0, unit: __self_1
} =>
::core::fmt::Formatter::debug_struct_field2_finish(f,
"IntegerLength", "length", __self_0, "unit", &__self_1),
CharacterLength::Max =>
::core::fmt::Formatter::write_str(f, "Max"),
}
}
}Debug, #[automatically_derived]
impl ::core::marker::Copy for CharacterLength { }Copy, #[automatically_derived]
impl ::core::clone::Clone for CharacterLength {
#[inline]
fn clone(&self) -> CharacterLength {
let _: ::core::clone::AssertParamIsClone<u64>;
let _: ::core::clone::AssertParamIsClone<Option<CharLengthUnits>>;
*self
}
}Clone, #[automatically_derived]
impl ::core::cmp::PartialEq for CharacterLength {
#[inline]
fn eq(&self, other: &CharacterLength) -> bool {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
__self_discr == __arg1_discr &&
match (self, other) {
(CharacterLength::IntegerLength {
length: __self_0, unit: __self_1 },
CharacterLength::IntegerLength {
length: __arg1_0, unit: __arg1_1 }) =>
__self_0 == __arg1_0 && __self_1 == __arg1_1,
_ => true,
}
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::PartialOrd for CharacterLength {
#[inline]
fn partial_cmp(&self, other: &CharacterLength)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
impl ::core::cmp::Eq for CharacterLength {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u64>;
let _: ::core::cmp::AssertParamIsEq<Option<CharLengthUnits>>;
}
}Eq, #[automatically_derived]
impl ::core::cmp::Ord for CharacterLength {
#[inline]
fn cmp(&self, other: &CharacterLength) -> ::core::cmp::Ordering {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
match ::core::cmp::Ord::cmp(&__self_discr, &__arg1_discr) {
::core::cmp::Ordering::Equal =>
match (self, other) {
(CharacterLength::IntegerLength {
length: __self_0, unit: __self_1 },
CharacterLength::IntegerLength {
length: __arg1_0, unit: __arg1_1 }) =>
match ::core::cmp::Ord::cmp(__self_0, __arg1_0) {
::core::cmp::Ordering::Equal =>
::core::cmp::Ord::cmp(__self_1, __arg1_1),
cmp => cmp,
},
_ => ::core::cmp::Ordering::Equal,
},
cmp => cmp,
}
}
}Ord, #[automatically_derived]
impl ::core::hash::Hash for CharacterLength {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
let __self_discr = ::core::intrinsics::discriminant_value(self);
::core::hash::Hash::hash(&__self_discr, state);
match self {
CharacterLength::IntegerLength { length: __self_0, unit: __self_1
} => {
::core::hash::Hash::hash(__self_0, state);
::core::hash::Hash::hash(__self_1, state)
}
_ => {}
}
}
}Hash)]
1046#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
1047#[cfg_attr(feature = "visitor", derive(impl sqlparser::ast::Visit for CharacterLength {
fn visit<V: sqlparser::ast::Visitor>(&self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::IntegerLength { length, unit } => {
sqlparser::ast::Visit::visit(length, visitor)?;
sqlparser::ast::Visit::visit(unit, visitor)?;
}
Self::Max => {}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}Visit, impl sqlparser::ast::VisitMut for CharacterLength {
fn visit<V: sqlparser::ast::VisitorMut>(&mut self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::IntegerLength { length, unit } => {
sqlparser::ast::VisitMut::visit(length, visitor)?;
sqlparser::ast::VisitMut::visit(unit, visitor)?;
}
Self::Max => {}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}VisitMut))]
1048pub enum CharacterLength {
1049 IntegerLength {
1051 length: u64,
1053 unit: Option<CharLengthUnits>,
1055 },
1056 Max,
1058}
1059
1060impl fmt::Display for CharacterLength {
1061 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1062 match self {
1063 CharacterLength::IntegerLength { length, unit } => {
1064 f.write_fmt(format_args!("{0}", length))write!(f, "{length}")?;
1065 if let Some(unit) = unit {
1066 f.write_fmt(format_args!(" {0}", unit))write!(f, " {unit}")?;
1067 }
1068 }
1069 CharacterLength::Max => {
1070 f.write_fmt(format_args!("MAX"))write!(f, "MAX")?;
1071 }
1072 }
1073 Ok(())
1074 }
1075}
1076
1077#[derive(#[automatically_derived]
impl ::core::fmt::Debug for CharLengthUnits {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f,
match self {
CharLengthUnits::Characters => "Characters",
CharLengthUnits::Octets => "Octets",
})
}
}Debug, #[automatically_derived]
impl ::core::marker::Copy for CharLengthUnits { }Copy, #[automatically_derived]
impl ::core::clone::Clone for CharLengthUnits {
#[inline]
fn clone(&self) -> CharLengthUnits { *self }
}Clone, #[automatically_derived]
impl ::core::cmp::PartialEq for CharLengthUnits {
#[inline]
fn eq(&self, other: &CharLengthUnits) -> bool {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
__self_discr == __arg1_discr
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::PartialOrd for CharLengthUnits {
#[inline]
fn partial_cmp(&self, other: &CharLengthUnits)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
impl ::core::cmp::Eq for CharLengthUnits {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {}
}Eq, #[automatically_derived]
impl ::core::cmp::Ord for CharLengthUnits {
#[inline]
fn cmp(&self, other: &CharLengthUnits) -> ::core::cmp::Ordering {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
::core::cmp::Ord::cmp(&__self_discr, &__arg1_discr)
}
}Ord, #[automatically_derived]
impl ::core::hash::Hash for CharLengthUnits {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
let __self_discr = ::core::intrinsics::discriminant_value(self);
::core::hash::Hash::hash(&__self_discr, state)
}
}Hash)]
1081#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
1082#[cfg_attr(feature = "visitor", derive(impl sqlparser::ast::Visit for CharLengthUnits {
fn visit<V: sqlparser::ast::Visitor>(&self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self { Self::Characters => {} Self::Octets => {} }
::std::ops::ControlFlow::Continue(())
}
})
}
}Visit, impl sqlparser::ast::VisitMut for CharLengthUnits {
fn visit<V: sqlparser::ast::VisitorMut>(&mut self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self { Self::Characters => {} Self::Octets => {} }
::std::ops::ControlFlow::Continue(())
}
})
}
}VisitMut))]
1083pub enum CharLengthUnits {
1084 Characters,
1086 Octets,
1088}
1089
1090impl fmt::Display for CharLengthUnits {
1091 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1092 match self {
1093 Self::Characters => {
1094 f.write_fmt(format_args!("CHARACTERS"))write!(f, "CHARACTERS")
1095 }
1096 Self::Octets => {
1097 f.write_fmt(format_args!("OCTETS"))write!(f, "OCTETS")
1098 }
1099 }
1100 }
1101}
1102
1103#[derive(#[automatically_derived]
impl ::core::fmt::Debug for BinaryLength {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
match self {
BinaryLength::IntegerLength { length: __self_0 } =>
::core::fmt::Formatter::debug_struct_field1_finish(f,
"IntegerLength", "length", &__self_0),
BinaryLength::Max => ::core::fmt::Formatter::write_str(f, "Max"),
}
}
}Debug, #[automatically_derived]
impl ::core::marker::Copy for BinaryLength { }Copy, #[automatically_derived]
impl ::core::clone::Clone for BinaryLength {
#[inline]
fn clone(&self) -> BinaryLength {
let _: ::core::clone::AssertParamIsClone<u64>;
*self
}
}Clone, #[automatically_derived]
impl ::core::cmp::PartialEq for BinaryLength {
#[inline]
fn eq(&self, other: &BinaryLength) -> bool {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
__self_discr == __arg1_discr &&
match (self, other) {
(BinaryLength::IntegerLength { length: __self_0 },
BinaryLength::IntegerLength { length: __arg1_0 }) =>
__self_0 == __arg1_0,
_ => true,
}
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::PartialOrd for BinaryLength {
#[inline]
fn partial_cmp(&self, other: &BinaryLength)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
impl ::core::cmp::Eq for BinaryLength {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u64>;
}
}Eq, #[automatically_derived]
impl ::core::cmp::Ord for BinaryLength {
#[inline]
fn cmp(&self, other: &BinaryLength) -> ::core::cmp::Ordering {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
match ::core::cmp::Ord::cmp(&__self_discr, &__arg1_discr) {
::core::cmp::Ordering::Equal =>
match (self, other) {
(BinaryLength::IntegerLength { length: __self_0 },
BinaryLength::IntegerLength { length: __arg1_0 }) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
_ => ::core::cmp::Ordering::Equal,
},
cmp => cmp,
}
}
}Ord, #[automatically_derived]
impl ::core::hash::Hash for BinaryLength {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
let __self_discr = ::core::intrinsics::discriminant_value(self);
::core::hash::Hash::hash(&__self_discr, state);
match self {
BinaryLength::IntegerLength { length: __self_0 } =>
::core::hash::Hash::hash(__self_0, state),
_ => {}
}
}
}Hash)]
1104#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
1105#[cfg_attr(feature = "visitor", derive(impl sqlparser::ast::Visit for BinaryLength {
fn visit<V: sqlparser::ast::Visitor>(&self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::IntegerLength { length } => {
sqlparser::ast::Visit::visit(length, visitor)?;
}
Self::Max => {}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}Visit, impl sqlparser::ast::VisitMut for BinaryLength {
fn visit<V: sqlparser::ast::VisitorMut>(&mut self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::IntegerLength { length } => {
sqlparser::ast::VisitMut::visit(length, visitor)?;
}
Self::Max => {}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}VisitMut))]
1106pub enum BinaryLength {
1110 IntegerLength {
1112 length: u64,
1114 },
1115 Max,
1117}
1118
1119impl fmt::Display for BinaryLength {
1120 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1121 match self {
1122 BinaryLength::IntegerLength { length } => {
1123 f.write_fmt(format_args!("{0}", length))write!(f, "{length}")?;
1124 }
1125 BinaryLength::Max => {
1126 f.write_fmt(format_args!("MAX"))write!(f, "MAX")?;
1127 }
1128 }
1129 Ok(())
1130 }
1131}
1132
1133#[derive(#[automatically_derived]
impl ::core::fmt::Debug for ArrayElemTypeDef {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
match self {
ArrayElemTypeDef::None =>
::core::fmt::Formatter::write_str(f, "None"),
ArrayElemTypeDef::AngleBracket(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"AngleBracket", &__self_0),
ArrayElemTypeDef::SquareBracket(__self_0, __self_1) =>
::core::fmt::Formatter::debug_tuple_field2_finish(f,
"SquareBracket", __self_0, &__self_1),
ArrayElemTypeDef::Parenthesis(__self_0) =>
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"Parenthesis", &__self_0),
}
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for ArrayElemTypeDef {
#[inline]
fn clone(&self) -> ArrayElemTypeDef {
match self {
ArrayElemTypeDef::None => ArrayElemTypeDef::None,
ArrayElemTypeDef::AngleBracket(__self_0) =>
ArrayElemTypeDef::AngleBracket(::core::clone::Clone::clone(__self_0)),
ArrayElemTypeDef::SquareBracket(__self_0, __self_1) =>
ArrayElemTypeDef::SquareBracket(::core::clone::Clone::clone(__self_0),
::core::clone::Clone::clone(__self_1)),
ArrayElemTypeDef::Parenthesis(__self_0) =>
ArrayElemTypeDef::Parenthesis(::core::clone::Clone::clone(__self_0)),
}
}
}Clone, #[automatically_derived]
impl ::core::cmp::PartialEq for ArrayElemTypeDef {
#[inline]
fn eq(&self, other: &ArrayElemTypeDef) -> bool {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
__self_discr == __arg1_discr &&
match (self, other) {
(ArrayElemTypeDef::AngleBracket(__self_0),
ArrayElemTypeDef::AngleBracket(__arg1_0)) =>
__self_0 == __arg1_0,
(ArrayElemTypeDef::SquareBracket(__self_0, __self_1),
ArrayElemTypeDef::SquareBracket(__arg1_0, __arg1_1)) =>
__self_0 == __arg1_0 && __self_1 == __arg1_1,
(ArrayElemTypeDef::Parenthesis(__self_0),
ArrayElemTypeDef::Parenthesis(__arg1_0)) =>
__self_0 == __arg1_0,
_ => true,
}
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::PartialOrd for ArrayElemTypeDef {
#[inline]
fn partial_cmp(&self, other: &ArrayElemTypeDef)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
impl ::core::cmp::Eq for ArrayElemTypeDef {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<Box<DataType>>;
let _: ::core::cmp::AssertParamIsEq<Box<DataType>>;
let _: ::core::cmp::AssertParamIsEq<Option<u64>>;
let _: ::core::cmp::AssertParamIsEq<Box<DataType>>;
}
}Eq, #[automatically_derived]
impl ::core::cmp::Ord for ArrayElemTypeDef {
#[inline]
fn cmp(&self, other: &ArrayElemTypeDef) -> ::core::cmp::Ordering {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
match ::core::cmp::Ord::cmp(&__self_discr, &__arg1_discr) {
::core::cmp::Ordering::Equal =>
match (self, other) {
(ArrayElemTypeDef::AngleBracket(__self_0),
ArrayElemTypeDef::AngleBracket(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
(ArrayElemTypeDef::SquareBracket(__self_0, __self_1),
ArrayElemTypeDef::SquareBracket(__arg1_0, __arg1_1)) =>
match ::core::cmp::Ord::cmp(__self_0, __arg1_0) {
::core::cmp::Ordering::Equal =>
::core::cmp::Ord::cmp(__self_1, __arg1_1),
cmp => cmp,
},
(ArrayElemTypeDef::Parenthesis(__self_0),
ArrayElemTypeDef::Parenthesis(__arg1_0)) =>
::core::cmp::Ord::cmp(__self_0, __arg1_0),
_ => ::core::cmp::Ordering::Equal,
},
cmp => cmp,
}
}
}Ord, #[automatically_derived]
impl ::core::hash::Hash for ArrayElemTypeDef {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
let __self_discr = ::core::intrinsics::discriminant_value(self);
::core::hash::Hash::hash(&__self_discr, state);
match self {
ArrayElemTypeDef::AngleBracket(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
ArrayElemTypeDef::SquareBracket(__self_0, __self_1) => {
::core::hash::Hash::hash(__self_0, state);
::core::hash::Hash::hash(__self_1, state)
}
ArrayElemTypeDef::Parenthesis(__self_0) =>
::core::hash::Hash::hash(__self_0, state),
_ => {}
}
}
}Hash)]
1138#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
1139#[cfg_attr(feature = "visitor", derive(impl sqlparser::ast::Visit for ArrayElemTypeDef {
fn visit<V: sqlparser::ast::Visitor>(&self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::None => {}
Self::AngleBracket(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
Self::SquareBracket(_0, _1) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
sqlparser::ast::Visit::visit(_1, visitor)?;
}
Self::Parenthesis(_0) => {
sqlparser::ast::Visit::visit(_0, visitor)?;
}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}Visit, impl sqlparser::ast::VisitMut for ArrayElemTypeDef {
fn visit<V: sqlparser::ast::VisitorMut>(&mut self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::None => {}
Self::AngleBracket(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
Self::SquareBracket(_0, _1) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
sqlparser::ast::VisitMut::visit(_1, visitor)?;
}
Self::Parenthesis(_0) => {
sqlparser::ast::VisitMut::visit(_0, visitor)?;
}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}VisitMut))]
1140pub enum ArrayElemTypeDef {
1141 None,
1143 AngleBracket(Box<DataType>),
1145 SquareBracket(Box<DataType>, Option<u64>),
1147 Parenthesis(Box<DataType>),
1149}
1150
1151#[derive(#[automatically_derived]
impl ::core::fmt::Debug for GeometricTypeKind {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f,
match self {
GeometricTypeKind::Point => "Point",
GeometricTypeKind::Line => "Line",
GeometricTypeKind::LineSegment => "LineSegment",
GeometricTypeKind::GeometricBox => "GeometricBox",
GeometricTypeKind::GeometricPath => "GeometricPath",
GeometricTypeKind::Polygon => "Polygon",
GeometricTypeKind::Circle => "Circle",
})
}
}Debug, #[automatically_derived]
impl ::core::marker::Copy for GeometricTypeKind { }Copy, #[automatically_derived]
impl ::core::clone::Clone for GeometricTypeKind {
#[inline]
fn clone(&self) -> GeometricTypeKind { *self }
}Clone, #[automatically_derived]
impl ::core::cmp::PartialEq for GeometricTypeKind {
#[inline]
fn eq(&self, other: &GeometricTypeKind) -> bool {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
__self_discr == __arg1_discr
}
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for GeometricTypeKind {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {}
}Eq, #[automatically_derived]
impl ::core::hash::Hash for GeometricTypeKind {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
let __self_discr = ::core::intrinsics::discriminant_value(self);
::core::hash::Hash::hash(&__self_discr, state)
}
}Hash, #[automatically_derived]
impl ::core::cmp::PartialOrd for GeometricTypeKind {
#[inline]
fn partial_cmp(&self, other: &GeometricTypeKind)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
impl ::core::cmp::Ord for GeometricTypeKind {
#[inline]
fn cmp(&self, other: &GeometricTypeKind) -> ::core::cmp::Ordering {
let __self_discr = ::core::intrinsics::discriminant_value(self);
let __arg1_discr = ::core::intrinsics::discriminant_value(other);
::core::cmp::Ord::cmp(&__self_discr, &__arg1_discr)
}
}Ord)]
1156#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
1157#[cfg_attr(feature = "visitor", derive(impl sqlparser::ast::Visit for GeometricTypeKind {
fn visit<V: sqlparser::ast::Visitor>(&self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::Point => {}
Self::Line => {}
Self::LineSegment => {}
Self::GeometricBox => {}
Self::GeometricPath => {}
Self::Polygon => {}
Self::Circle => {}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}Visit, impl sqlparser::ast::VisitMut for GeometricTypeKind {
fn visit<V: sqlparser::ast::VisitorMut>(&mut self, visitor: &mut V)
-> ::std::ops::ControlFlow<V::Break> {
::recursive::__impl::stacker::maybe_grow(::recursive::get_minimum_stack_size(),
::recursive::get_stack_allocation_size(),
move || -> ::std::ops::ControlFlow<V::Break>
{
{
match self {
Self::Point => {}
Self::Line => {}
Self::LineSegment => {}
Self::GeometricBox => {}
Self::GeometricPath => {}
Self::Polygon => {}
Self::Circle => {}
}
::std::ops::ControlFlow::Continue(())
}
})
}
}VisitMut))]
1158pub enum GeometricTypeKind {
1159 Point,
1161 Line,
1163 LineSegment,
1165 GeometricBox,
1167 GeometricPath,
1169 Polygon,
1171 Circle,
1173}
1174
1175impl fmt::Display for GeometricTypeKind {
1176 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1177 match self {
1178 GeometricTypeKind::Point => f.write_fmt(format_args!("point"))write!(f, "point"),
1179 GeometricTypeKind::Line => f.write_fmt(format_args!("line"))write!(f, "line"),
1180 GeometricTypeKind::LineSegment => f.write_fmt(format_args!("lseg"))write!(f, "lseg"),
1181 GeometricTypeKind::GeometricBox => f.write_fmt(format_args!("box"))write!(f, "box"),
1182 GeometricTypeKind::GeometricPath => f.write_fmt(format_args!("path"))write!(f, "path"),
1183 GeometricTypeKind::Polygon => f.write_fmt(format_args!("polygon"))write!(f, "polygon"),
1184 GeometricTypeKind::Circle => f.write_fmt(format_args!("circle"))write!(f, "circle"),
1185 }
1186 }
1187}