From 0c86f9362fe98a584fb80828650b22417bb661a2 Mon Sep 17 00:00:00 2001 From: Joseph Koshakow Date: Mon, 21 Nov 2022 16:52:58 -0500 Subject: [PATCH] Add multirange kind and run cargo fmt --- codegen/src/type_gen.rs | 24 +- postgres-types/src/lib.rs | 2 + postgres-types/src/type_gen.rs | 744 +++++++-------------------- tokio-postgres/src/error/sqlstate.rs | 10 +- 4 files changed, 216 insertions(+), 564 deletions(-) diff --git a/codegen/src/type_gen.rs b/codegen/src/type_gen.rs index 249c5530..fd7a5645 100644 --- a/codegen/src/type_gen.rs +++ b/codegen/src/type_gen.rs @@ -17,6 +17,7 @@ struct Type { variant: String, ident: String, kind: String, + typtype: Option, element: u32, doc: String, } @@ -217,12 +218,18 @@ fn parse_types() -> BTreeMap { 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 { variant, ident, kind: "A".to_string(), + typtype: None, element: oid, doc, }; @@ -259,6 +267,7 @@ fn parse_types() -> BTreeMap { variant, ident, kind, + typtype, element, doc, }; @@ -362,7 +371,16 @@ fn make_impl(w: &mut BufWriter, types: &BTreeMap) { 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(), }; diff --git a/postgres-types/src/lib.rs b/postgres-types/src/lib.rs index ca4233f8..fa49d99e 100644 --- a/postgres-types/src/lib.rs +++ b/postgres-types/src/lib.rs @@ -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. diff --git a/postgres-types/src/type_gen.rs b/postgres-types/src/type_gen.rs index 901fb46e..a1bc3f85 100644 --- a/postgres-types/src/type_gen.rs +++ b/postgres-types/src/type_gen.rs @@ -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, } } @@ -1891,4 +1521,4 @@ impl Type { /// INT8MULTIRANGE[] pub const INT8MULTI_RANGE_ARRAY: Type = Type(Inner::Int8multiRangeArray); -} \ No newline at end of file +} diff --git a/tokio-postgres/src/error/sqlstate.rs b/tokio-postgres/src/error/sqlstate.rs index 6f191fc1..13a1d75f 100644 --- a/tokio-postgres/src/error/sqlstate.rs +++ b/tokio-postgres/src/error/sqlstate.rs @@ -279,7 +279,7 @@ impl SqlState { Inner::Other(code) => code, } } - + /// 00000 pub const SUCCESSFUL_COMPLETION: SqlState = SqlState(Inner::E00000); @@ -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); @@ -1344,7 +1346,7 @@ enum Inner { EXX002, Other(Box), } - + #[rustfmt::skip] static SQLSTATE_MAP: phf::Map<&'static str, SqlState> = ::phf::Map {