Add multirange kind and run cargo fmt

This commit is contained in:
Joseph Koshakow 2022-11-21 16:52:58 -05:00
parent f413e66b14
commit 0c86f9362f
4 changed files with 216 additions and 564 deletions

View File

@ -17,6 +17,7 @@ struct Type {
variant: String,
ident: String,
kind: String,
typtype: Option<String>,
element: u32,
doc: String,
}
@ -217,12 +218,18 @@ fn parse_types() -> BTreeMap<u32, Type> {
continue;
}
let typtype = raw_type.get("typtype").cloned();
let element = match &*kind {
"R" => match &*raw_type["typtype"] {
"R" => match typtype
.as_ref()
.expect("range type must have typtype")
.as_str()
{
"r" => range_elements[&oid],
"m" => multi_range_elements[&oid],
typtype => panic!("invalid range typtype {}", typtype),
}
},
"A" => oids_by_name[&raw_type["typelem"]],
_ => 0,
};
@ -248,6 +255,7 @@ fn parse_types() -> BTreeMap<u32, Type> {
variant,
ident,
kind: "A".to_string(),
typtype: None,
element: oid,
doc,
};
@ -259,6 +267,7 @@ fn parse_types() -> BTreeMap<u32, Type> {
variant,
ident,
kind,
typtype,
element,
doc,
};
@ -362,7 +371,16 @@ fn make_impl(w: &mut BufWriter<File>, types: &BTreeMap<u32, Type>) {
let kind = match &*type_.kind {
"P" => "Pseudo".to_owned(),
"A" => format!("Array(Type(Inner::{}))", types[&type_.element].variant),
"R" => format!("Range(Type(Inner::{}))", types[&type_.element].variant),
"R" => match type_
.typtype
.as_ref()
.expect("range type must have typtype")
.as_str()
{
"r" => format!("Range(Type(Inner::{}))", types[&type_.element].variant),
"m" => format!("Multirange(Type(Inner::{}))", types[&type_.element].variant),
typtype => panic!("invalid range typtype {}", typtype),
},
_ => "Simple".to_owned(),
};

View File

@ -320,6 +320,8 @@ pub enum Kind {
Array(Type),
/// A range type along with the type of its elements.
Range(Type),
/// A multirange type along with the type of its elements.
Multirange(Type),
/// A domain type along with its underlying type.
Domain(Type),
/// A composite type along with information about its fields.

View File

@ -1,7 +1,7 @@
// Autogenerated file - DO NOT EDIT
use std::sync::Arc;
use crate::{Type, Oid, Kind};
use crate::{Kind, Oid, Type};
#[derive(PartialEq, Eq, Debug, Hash)]
pub struct Other {
@ -586,561 +586,191 @@ impl Inner {
pub fn kind(&self) -> &Kind {
match *self {
Inner::Bool => {
&Kind::Simple
}
Inner::Bytea => {
&Kind::Simple
}
Inner::Char => {
&Kind::Simple
}
Inner::Name => {
&Kind::Simple
}
Inner::Int8 => {
&Kind::Simple
}
Inner::Int2 => {
&Kind::Simple
}
Inner::Int2Vector => {
&Kind::Array(Type(Inner::Int2))
}
Inner::Int4 => {
&Kind::Simple
}
Inner::Regproc => {
&Kind::Simple
}
Inner::Text => {
&Kind::Simple
}
Inner::Oid => {
&Kind::Simple
}
Inner::Tid => {
&Kind::Simple
}
Inner::Xid => {
&Kind::Simple
}
Inner::Cid => {
&Kind::Simple
}
Inner::OidVector => {
&Kind::Array(Type(Inner::Oid))
}
Inner::PgDdlCommand => {
&Kind::Pseudo
}
Inner::Json => {
&Kind::Simple
}
Inner::Xml => {
&Kind::Simple
}
Inner::XmlArray => {
&Kind::Array(Type(Inner::Xml))
}
Inner::PgNodeTree => {
&Kind::Simple
}
Inner::JsonArray => {
&Kind::Array(Type(Inner::Json))
}
Inner::TableAmHandler => {
&Kind::Pseudo
}
Inner::Xid8Array => {
&Kind::Array(Type(Inner::Xid8))
}
Inner::IndexAmHandler => {
&Kind::Pseudo
}
Inner::Point => {
&Kind::Simple
}
Inner::Lseg => {
&Kind::Simple
}
Inner::Path => {
&Kind::Simple
}
Inner::Box => {
&Kind::Simple
}
Inner::Polygon => {
&Kind::Simple
}
Inner::Line => {
&Kind::Simple
}
Inner::LineArray => {
&Kind::Array(Type(Inner::Line))
}
Inner::Cidr => {
&Kind::Simple
}
Inner::CidrArray => {
&Kind::Array(Type(Inner::Cidr))
}
Inner::Float4 => {
&Kind::Simple
}
Inner::Float8 => {
&Kind::Simple
}
Inner::Unknown => {
&Kind::Simple
}
Inner::Circle => {
&Kind::Simple
}
Inner::CircleArray => {
&Kind::Array(Type(Inner::Circle))
}
Inner::Macaddr8 => {
&Kind::Simple
}
Inner::Macaddr8Array => {
&Kind::Array(Type(Inner::Macaddr8))
}
Inner::Money => {
&Kind::Simple
}
Inner::MoneyArray => {
&Kind::Array(Type(Inner::Money))
}
Inner::Macaddr => {
&Kind::Simple
}
Inner::Inet => {
&Kind::Simple
}
Inner::BoolArray => {
&Kind::Array(Type(Inner::Bool))
}
Inner::ByteaArray => {
&Kind::Array(Type(Inner::Bytea))
}
Inner::CharArray => {
&Kind::Array(Type(Inner::Char))
}
Inner::NameArray => {
&Kind::Array(Type(Inner::Name))
}
Inner::Int2Array => {
&Kind::Array(Type(Inner::Int2))
}
Inner::Int2VectorArray => {
&Kind::Array(Type(Inner::Int2Vector))
}
Inner::Int4Array => {
&Kind::Array(Type(Inner::Int4))
}
Inner::RegprocArray => {
&Kind::Array(Type(Inner::Regproc))
}
Inner::TextArray => {
&Kind::Array(Type(Inner::Text))
}
Inner::TidArray => {
&Kind::Array(Type(Inner::Tid))
}
Inner::XidArray => {
&Kind::Array(Type(Inner::Xid))
}
Inner::CidArray => {
&Kind::Array(Type(Inner::Cid))
}
Inner::OidVectorArray => {
&Kind::Array(Type(Inner::OidVector))
}
Inner::BpcharArray => {
&Kind::Array(Type(Inner::Bpchar))
}
Inner::VarcharArray => {
&Kind::Array(Type(Inner::Varchar))
}
Inner::Int8Array => {
&Kind::Array(Type(Inner::Int8))
}
Inner::PointArray => {
&Kind::Array(Type(Inner::Point))
}
Inner::LsegArray => {
&Kind::Array(Type(Inner::Lseg))
}
Inner::PathArray => {
&Kind::Array(Type(Inner::Path))
}
Inner::BoxArray => {
&Kind::Array(Type(Inner::Box))
}
Inner::Float4Array => {
&Kind::Array(Type(Inner::Float4))
}
Inner::Float8Array => {
&Kind::Array(Type(Inner::Float8))
}
Inner::PolygonArray => {
&Kind::Array(Type(Inner::Polygon))
}
Inner::OidArray => {
&Kind::Array(Type(Inner::Oid))
}
Inner::Aclitem => {
&Kind::Simple
}
Inner::AclitemArray => {
&Kind::Array(Type(Inner::Aclitem))
}
Inner::MacaddrArray => {
&Kind::Array(Type(Inner::Macaddr))
}
Inner::InetArray => {
&Kind::Array(Type(Inner::Inet))
}
Inner::Bpchar => {
&Kind::Simple
}
Inner::Varchar => {
&Kind::Simple
}
Inner::Date => {
&Kind::Simple
}
Inner::Time => {
&Kind::Simple
}
Inner::Timestamp => {
&Kind::Simple
}
Inner::TimestampArray => {
&Kind::Array(Type(Inner::Timestamp))
}
Inner::DateArray => {
&Kind::Array(Type(Inner::Date))
}
Inner::TimeArray => {
&Kind::Array(Type(Inner::Time))
}
Inner::Timestamptz => {
&Kind::Simple
}
Inner::TimestamptzArray => {
&Kind::Array(Type(Inner::Timestamptz))
}
Inner::Interval => {
&Kind::Simple
}
Inner::IntervalArray => {
&Kind::Array(Type(Inner::Interval))
}
Inner::NumericArray => {
&Kind::Array(Type(Inner::Numeric))
}
Inner::CstringArray => {
&Kind::Array(Type(Inner::Cstring))
}
Inner::Timetz => {
&Kind::Simple
}
Inner::TimetzArray => {
&Kind::Array(Type(Inner::Timetz))
}
Inner::Bit => {
&Kind::Simple
}
Inner::BitArray => {
&Kind::Array(Type(Inner::Bit))
}
Inner::Varbit => {
&Kind::Simple
}
Inner::VarbitArray => {
&Kind::Array(Type(Inner::Varbit))
}
Inner::Numeric => {
&Kind::Simple
}
Inner::Refcursor => {
&Kind::Simple
}
Inner::RefcursorArray => {
&Kind::Array(Type(Inner::Refcursor))
}
Inner::Regprocedure => {
&Kind::Simple
}
Inner::Regoper => {
&Kind::Simple
}
Inner::Regoperator => {
&Kind::Simple
}
Inner::Regclass => {
&Kind::Simple
}
Inner::Regtype => {
&Kind::Simple
}
Inner::RegprocedureArray => {
&Kind::Array(Type(Inner::Regprocedure))
}
Inner::RegoperArray => {
&Kind::Array(Type(Inner::Regoper))
}
Inner::RegoperatorArray => {
&Kind::Array(Type(Inner::Regoperator))
}
Inner::RegclassArray => {
&Kind::Array(Type(Inner::Regclass))
}
Inner::RegtypeArray => {
&Kind::Array(Type(Inner::Regtype))
}
Inner::Record => {
&Kind::Pseudo
}
Inner::Cstring => {
&Kind::Pseudo
}
Inner::Any => {
&Kind::Pseudo
}
Inner::Anyarray => {
&Kind::Pseudo
}
Inner::Void => {
&Kind::Pseudo
}
Inner::Trigger => {
&Kind::Pseudo
}
Inner::LanguageHandler => {
&Kind::Pseudo
}
Inner::Internal => {
&Kind::Pseudo
}
Inner::Anyelement => {
&Kind::Pseudo
}
Inner::RecordArray => {
&Kind::Pseudo
}
Inner::Anynonarray => {
&Kind::Pseudo
}
Inner::TxidSnapshotArray => {
&Kind::Array(Type(Inner::TxidSnapshot))
}
Inner::Uuid => {
&Kind::Simple
}
Inner::UuidArray => {
&Kind::Array(Type(Inner::Uuid))
}
Inner::TxidSnapshot => {
&Kind::Simple
}
Inner::FdwHandler => {
&Kind::Pseudo
}
Inner::PgLsn => {
&Kind::Simple
}
Inner::PgLsnArray => {
&Kind::Array(Type(Inner::PgLsn))
}
Inner::TsmHandler => {
&Kind::Pseudo
}
Inner::PgNdistinct => {
&Kind::Simple
}
Inner::PgDependencies => {
&Kind::Simple
}
Inner::Anyenum => {
&Kind::Pseudo
}
Inner::TsVector => {
&Kind::Simple
}
Inner::Tsquery => {
&Kind::Simple
}
Inner::GtsVector => {
&Kind::Simple
}
Inner::TsVectorArray => {
&Kind::Array(Type(Inner::TsVector))
}
Inner::GtsVectorArray => {
&Kind::Array(Type(Inner::GtsVector))
}
Inner::TsqueryArray => {
&Kind::Array(Type(Inner::Tsquery))
}
Inner::Regconfig => {
&Kind::Simple
}
Inner::RegconfigArray => {
&Kind::Array(Type(Inner::Regconfig))
}
Inner::Regdictionary => {
&Kind::Simple
}
Inner::RegdictionaryArray => {
&Kind::Array(Type(Inner::Regdictionary))
}
Inner::Jsonb => {
&Kind::Simple
}
Inner::JsonbArray => {
&Kind::Array(Type(Inner::Jsonb))
}
Inner::AnyRange => {
&Kind::Pseudo
}
Inner::EventTrigger => {
&Kind::Pseudo
}
Inner::Int4Range => {
&Kind::Range(Type(Inner::Int4))
}
Inner::Int4RangeArray => {
&Kind::Array(Type(Inner::Int4Range))
}
Inner::NumRange => {
&Kind::Range(Type(Inner::Numeric))
}
Inner::NumRangeArray => {
&Kind::Array(Type(Inner::NumRange))
}
Inner::TsRange => {
&Kind::Range(Type(Inner::Timestamp))
}
Inner::TsRangeArray => {
&Kind::Array(Type(Inner::TsRange))
}
Inner::TstzRange => {
&Kind::Range(Type(Inner::Timestamptz))
}
Inner::TstzRangeArray => {
&Kind::Array(Type(Inner::TstzRange))
}
Inner::DateRange => {
&Kind::Range(Type(Inner::Date))
}
Inner::DateRangeArray => {
&Kind::Array(Type(Inner::DateRange))
}
Inner::Int8Range => {
&Kind::Range(Type(Inner::Int8))
}
Inner::Int8RangeArray => {
&Kind::Array(Type(Inner::Int8Range))
}
Inner::Jsonpath => {
&Kind::Simple
}
Inner::JsonpathArray => {
&Kind::Array(Type(Inner::Jsonpath))
}
Inner::Regnamespace => {
&Kind::Simple
}
Inner::RegnamespaceArray => {
&Kind::Array(Type(Inner::Regnamespace))
}
Inner::Regrole => {
&Kind::Simple
}
Inner::RegroleArray => {
&Kind::Array(Type(Inner::Regrole))
}
Inner::Regcollation => {
&Kind::Simple
}
Inner::RegcollationArray => {
&Kind::Array(Type(Inner::Regcollation))
}
Inner::Int4multiRange => {
&Kind::Range(Type(Inner::Int4))
}
Inner::NummultiRange => {
&Kind::Range(Type(Inner::Numeric))
}
Inner::TsmultiRange => {
&Kind::Range(Type(Inner::Timestamp))
}
Inner::TstzmultiRange => {
&Kind::Range(Type(Inner::Timestamptz))
}
Inner::DatemultiRange => {
&Kind::Range(Type(Inner::Date))
}
Inner::Int8multiRange => {
&Kind::Range(Type(Inner::Int8))
}
Inner::AnymultiRange => {
&Kind::Pseudo
}
Inner::AnycompatiblemultiRange => {
&Kind::Pseudo
}
Inner::PgBrinBloomSummary => {
&Kind::Simple
}
Inner::PgBrinMinmaxMultiSummary => {
&Kind::Simple
}
Inner::PgMcvList => {
&Kind::Simple
}
Inner::PgSnapshot => {
&Kind::Simple
}
Inner::PgSnapshotArray => {
&Kind::Array(Type(Inner::PgSnapshot))
}
Inner::Xid8 => {
&Kind::Simple
}
Inner::Anycompatible => {
&Kind::Pseudo
}
Inner::Anycompatiblearray => {
&Kind::Pseudo
}
Inner::Anycompatiblenonarray => {
&Kind::Pseudo
}
Inner::AnycompatibleRange => {
&Kind::Pseudo
}
Inner::Int4multiRangeArray => {
&Kind::Array(Type(Inner::Int4multiRange))
}
Inner::NummultiRangeArray => {
&Kind::Array(Type(Inner::NummultiRange))
}
Inner::TsmultiRangeArray => {
&Kind::Array(Type(Inner::TsmultiRange))
}
Inner::TstzmultiRangeArray => {
&Kind::Array(Type(Inner::TstzmultiRange))
}
Inner::DatemultiRangeArray => {
&Kind::Array(Type(Inner::DatemultiRange))
}
Inner::Int8multiRangeArray => {
&Kind::Array(Type(Inner::Int8multiRange))
}
Inner::Bool => &Kind::Simple,
Inner::Bytea => &Kind::Simple,
Inner::Char => &Kind::Simple,
Inner::Name => &Kind::Simple,
Inner::Int8 => &Kind::Simple,
Inner::Int2 => &Kind::Simple,
Inner::Int2Vector => &Kind::Array(Type(Inner::Int2)),
Inner::Int4 => &Kind::Simple,
Inner::Regproc => &Kind::Simple,
Inner::Text => &Kind::Simple,
Inner::Oid => &Kind::Simple,
Inner::Tid => &Kind::Simple,
Inner::Xid => &Kind::Simple,
Inner::Cid => &Kind::Simple,
Inner::OidVector => &Kind::Array(Type(Inner::Oid)),
Inner::PgDdlCommand => &Kind::Pseudo,
Inner::Json => &Kind::Simple,
Inner::Xml => &Kind::Simple,
Inner::XmlArray => &Kind::Array(Type(Inner::Xml)),
Inner::PgNodeTree => &Kind::Simple,
Inner::JsonArray => &Kind::Array(Type(Inner::Json)),
Inner::TableAmHandler => &Kind::Pseudo,
Inner::Xid8Array => &Kind::Array(Type(Inner::Xid8)),
Inner::IndexAmHandler => &Kind::Pseudo,
Inner::Point => &Kind::Simple,
Inner::Lseg => &Kind::Simple,
Inner::Path => &Kind::Simple,
Inner::Box => &Kind::Simple,
Inner::Polygon => &Kind::Simple,
Inner::Line => &Kind::Simple,
Inner::LineArray => &Kind::Array(Type(Inner::Line)),
Inner::Cidr => &Kind::Simple,
Inner::CidrArray => &Kind::Array(Type(Inner::Cidr)),
Inner::Float4 => &Kind::Simple,
Inner::Float8 => &Kind::Simple,
Inner::Unknown => &Kind::Simple,
Inner::Circle => &Kind::Simple,
Inner::CircleArray => &Kind::Array(Type(Inner::Circle)),
Inner::Macaddr8 => &Kind::Simple,
Inner::Macaddr8Array => &Kind::Array(Type(Inner::Macaddr8)),
Inner::Money => &Kind::Simple,
Inner::MoneyArray => &Kind::Array(Type(Inner::Money)),
Inner::Macaddr => &Kind::Simple,
Inner::Inet => &Kind::Simple,
Inner::BoolArray => &Kind::Array(Type(Inner::Bool)),
Inner::ByteaArray => &Kind::Array(Type(Inner::Bytea)),
Inner::CharArray => &Kind::Array(Type(Inner::Char)),
Inner::NameArray => &Kind::Array(Type(Inner::Name)),
Inner::Int2Array => &Kind::Array(Type(Inner::Int2)),
Inner::Int2VectorArray => &Kind::Array(Type(Inner::Int2Vector)),
Inner::Int4Array => &Kind::Array(Type(Inner::Int4)),
Inner::RegprocArray => &Kind::Array(Type(Inner::Regproc)),
Inner::TextArray => &Kind::Array(Type(Inner::Text)),
Inner::TidArray => &Kind::Array(Type(Inner::Tid)),
Inner::XidArray => &Kind::Array(Type(Inner::Xid)),
Inner::CidArray => &Kind::Array(Type(Inner::Cid)),
Inner::OidVectorArray => &Kind::Array(Type(Inner::OidVector)),
Inner::BpcharArray => &Kind::Array(Type(Inner::Bpchar)),
Inner::VarcharArray => &Kind::Array(Type(Inner::Varchar)),
Inner::Int8Array => &Kind::Array(Type(Inner::Int8)),
Inner::PointArray => &Kind::Array(Type(Inner::Point)),
Inner::LsegArray => &Kind::Array(Type(Inner::Lseg)),
Inner::PathArray => &Kind::Array(Type(Inner::Path)),
Inner::BoxArray => &Kind::Array(Type(Inner::Box)),
Inner::Float4Array => &Kind::Array(Type(Inner::Float4)),
Inner::Float8Array => &Kind::Array(Type(Inner::Float8)),
Inner::PolygonArray => &Kind::Array(Type(Inner::Polygon)),
Inner::OidArray => &Kind::Array(Type(Inner::Oid)),
Inner::Aclitem => &Kind::Simple,
Inner::AclitemArray => &Kind::Array(Type(Inner::Aclitem)),
Inner::MacaddrArray => &Kind::Array(Type(Inner::Macaddr)),
Inner::InetArray => &Kind::Array(Type(Inner::Inet)),
Inner::Bpchar => &Kind::Simple,
Inner::Varchar => &Kind::Simple,
Inner::Date => &Kind::Simple,
Inner::Time => &Kind::Simple,
Inner::Timestamp => &Kind::Simple,
Inner::TimestampArray => &Kind::Array(Type(Inner::Timestamp)),
Inner::DateArray => &Kind::Array(Type(Inner::Date)),
Inner::TimeArray => &Kind::Array(Type(Inner::Time)),
Inner::Timestamptz => &Kind::Simple,
Inner::TimestamptzArray => &Kind::Array(Type(Inner::Timestamptz)),
Inner::Interval => &Kind::Simple,
Inner::IntervalArray => &Kind::Array(Type(Inner::Interval)),
Inner::NumericArray => &Kind::Array(Type(Inner::Numeric)),
Inner::CstringArray => &Kind::Array(Type(Inner::Cstring)),
Inner::Timetz => &Kind::Simple,
Inner::TimetzArray => &Kind::Array(Type(Inner::Timetz)),
Inner::Bit => &Kind::Simple,
Inner::BitArray => &Kind::Array(Type(Inner::Bit)),
Inner::Varbit => &Kind::Simple,
Inner::VarbitArray => &Kind::Array(Type(Inner::Varbit)),
Inner::Numeric => &Kind::Simple,
Inner::Refcursor => &Kind::Simple,
Inner::RefcursorArray => &Kind::Array(Type(Inner::Refcursor)),
Inner::Regprocedure => &Kind::Simple,
Inner::Regoper => &Kind::Simple,
Inner::Regoperator => &Kind::Simple,
Inner::Regclass => &Kind::Simple,
Inner::Regtype => &Kind::Simple,
Inner::RegprocedureArray => &Kind::Array(Type(Inner::Regprocedure)),
Inner::RegoperArray => &Kind::Array(Type(Inner::Regoper)),
Inner::RegoperatorArray => &Kind::Array(Type(Inner::Regoperator)),
Inner::RegclassArray => &Kind::Array(Type(Inner::Regclass)),
Inner::RegtypeArray => &Kind::Array(Type(Inner::Regtype)),
Inner::Record => &Kind::Pseudo,
Inner::Cstring => &Kind::Pseudo,
Inner::Any => &Kind::Pseudo,
Inner::Anyarray => &Kind::Pseudo,
Inner::Void => &Kind::Pseudo,
Inner::Trigger => &Kind::Pseudo,
Inner::LanguageHandler => &Kind::Pseudo,
Inner::Internal => &Kind::Pseudo,
Inner::Anyelement => &Kind::Pseudo,
Inner::RecordArray => &Kind::Pseudo,
Inner::Anynonarray => &Kind::Pseudo,
Inner::TxidSnapshotArray => &Kind::Array(Type(Inner::TxidSnapshot)),
Inner::Uuid => &Kind::Simple,
Inner::UuidArray => &Kind::Array(Type(Inner::Uuid)),
Inner::TxidSnapshot => &Kind::Simple,
Inner::FdwHandler => &Kind::Pseudo,
Inner::PgLsn => &Kind::Simple,
Inner::PgLsnArray => &Kind::Array(Type(Inner::PgLsn)),
Inner::TsmHandler => &Kind::Pseudo,
Inner::PgNdistinct => &Kind::Simple,
Inner::PgDependencies => &Kind::Simple,
Inner::Anyenum => &Kind::Pseudo,
Inner::TsVector => &Kind::Simple,
Inner::Tsquery => &Kind::Simple,
Inner::GtsVector => &Kind::Simple,
Inner::TsVectorArray => &Kind::Array(Type(Inner::TsVector)),
Inner::GtsVectorArray => &Kind::Array(Type(Inner::GtsVector)),
Inner::TsqueryArray => &Kind::Array(Type(Inner::Tsquery)),
Inner::Regconfig => &Kind::Simple,
Inner::RegconfigArray => &Kind::Array(Type(Inner::Regconfig)),
Inner::Regdictionary => &Kind::Simple,
Inner::RegdictionaryArray => &Kind::Array(Type(Inner::Regdictionary)),
Inner::Jsonb => &Kind::Simple,
Inner::JsonbArray => &Kind::Array(Type(Inner::Jsonb)),
Inner::AnyRange => &Kind::Pseudo,
Inner::EventTrigger => &Kind::Pseudo,
Inner::Int4Range => &Kind::Range(Type(Inner::Int4)),
Inner::Int4RangeArray => &Kind::Array(Type(Inner::Int4Range)),
Inner::NumRange => &Kind::Range(Type(Inner::Numeric)),
Inner::NumRangeArray => &Kind::Array(Type(Inner::NumRange)),
Inner::TsRange => &Kind::Range(Type(Inner::Timestamp)),
Inner::TsRangeArray => &Kind::Array(Type(Inner::TsRange)),
Inner::TstzRange => &Kind::Range(Type(Inner::Timestamptz)),
Inner::TstzRangeArray => &Kind::Array(Type(Inner::TstzRange)),
Inner::DateRange => &Kind::Range(Type(Inner::Date)),
Inner::DateRangeArray => &Kind::Array(Type(Inner::DateRange)),
Inner::Int8Range => &Kind::Range(Type(Inner::Int8)),
Inner::Int8RangeArray => &Kind::Array(Type(Inner::Int8Range)),
Inner::Jsonpath => &Kind::Simple,
Inner::JsonpathArray => &Kind::Array(Type(Inner::Jsonpath)),
Inner::Regnamespace => &Kind::Simple,
Inner::RegnamespaceArray => &Kind::Array(Type(Inner::Regnamespace)),
Inner::Regrole => &Kind::Simple,
Inner::RegroleArray => &Kind::Array(Type(Inner::Regrole)),
Inner::Regcollation => &Kind::Simple,
Inner::RegcollationArray => &Kind::Array(Type(Inner::Regcollation)),
Inner::Int4multiRange => &Kind::Multirange(Type(Inner::Int4)),
Inner::NummultiRange => &Kind::Multirange(Type(Inner::Numeric)),
Inner::TsmultiRange => &Kind::Multirange(Type(Inner::Timestamp)),
Inner::TstzmultiRange => &Kind::Multirange(Type(Inner::Timestamptz)),
Inner::DatemultiRange => &Kind::Multirange(Type(Inner::Date)),
Inner::Int8multiRange => &Kind::Multirange(Type(Inner::Int8)),
Inner::AnymultiRange => &Kind::Pseudo,
Inner::AnycompatiblemultiRange => &Kind::Pseudo,
Inner::PgBrinBloomSummary => &Kind::Simple,
Inner::PgBrinMinmaxMultiSummary => &Kind::Simple,
Inner::PgMcvList => &Kind::Simple,
Inner::PgSnapshot => &Kind::Simple,
Inner::PgSnapshotArray => &Kind::Array(Type(Inner::PgSnapshot)),
Inner::Xid8 => &Kind::Simple,
Inner::Anycompatible => &Kind::Pseudo,
Inner::Anycompatiblearray => &Kind::Pseudo,
Inner::Anycompatiblenonarray => &Kind::Pseudo,
Inner::AnycompatibleRange => &Kind::Pseudo,
Inner::Int4multiRangeArray => &Kind::Array(Type(Inner::Int4multiRange)),
Inner::NummultiRangeArray => &Kind::Array(Type(Inner::NummultiRange)),
Inner::TsmultiRangeArray => &Kind::Array(Type(Inner::TsmultiRange)),
Inner::TstzmultiRangeArray => &Kind::Array(Type(Inner::TstzmultiRange)),
Inner::DatemultiRangeArray => &Kind::Array(Type(Inner::DatemultiRange)),
Inner::Int8multiRangeArray => &Kind::Array(Type(Inner::Int8multiRange)),
Inner::Other(ref u) => &u.kind,
}
}

View File

@ -365,7 +365,8 @@ impl SqlState {
pub const DIAGNOSTICS_EXCEPTION: SqlState = SqlState(Inner::E0Z000);
/// 0Z002
pub const STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER: SqlState = SqlState(Inner::E0Z002);
pub const STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER: SqlState =
SqlState(Inner::E0Z002);
/// 20000
pub const CASE_NOT_FOUND: SqlState = SqlState(Inner::E20000);
@ -623,7 +624,8 @@ impl SqlState {
pub const INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION: SqlState = SqlState(Inner::E25003);
/// 25004
pub const INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION: SqlState = SqlState(Inner::E25004);
pub const INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION: SqlState =
SqlState(Inner::E25004);
/// 25005
pub const NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION: SqlState = SqlState(Inner::E25005);