postgres_types/
type_gen.rs

1// Autogenerated file - DO NOT EDIT
2use std::sync::Arc;
3
4use crate::{Kind, Oid, Type};
5
6#[derive(PartialEq, Eq, Debug, Hash)]
7pub struct Other {
8    pub name: String,
9    pub oid: Oid,
10    pub kind: Kind,
11    pub schema: String,
12}
13
14#[derive(PartialEq, Eq, Clone, Debug, Hash)]
15pub enum Inner {
16    Bool,
17    Bytea,
18    Char,
19    Name,
20    Int8,
21    Int2,
22    Int2Vector,
23    Int4,
24    Regproc,
25    Text,
26    Oid,
27    Tid,
28    Xid,
29    Cid,
30    OidVector,
31    PgDdlCommand,
32    Json,
33    Xml,
34    XmlArray,
35    PgNodeTree,
36    JsonArray,
37    TableAmHandler,
38    Xid8Array,
39    IndexAmHandler,
40    Point,
41    Lseg,
42    Path,
43    Box,
44    Polygon,
45    Line,
46    LineArray,
47    Cidr,
48    CidrArray,
49    Float4,
50    Float8,
51    Unknown,
52    Circle,
53    CircleArray,
54    Macaddr8,
55    Macaddr8Array,
56    Money,
57    MoneyArray,
58    Macaddr,
59    Inet,
60    BoolArray,
61    ByteaArray,
62    CharArray,
63    NameArray,
64    Int2Array,
65    Int2VectorArray,
66    Int4Array,
67    RegprocArray,
68    TextArray,
69    TidArray,
70    XidArray,
71    CidArray,
72    OidVectorArray,
73    BpcharArray,
74    VarcharArray,
75    Int8Array,
76    PointArray,
77    LsegArray,
78    PathArray,
79    BoxArray,
80    Float4Array,
81    Float8Array,
82    PolygonArray,
83    OidArray,
84    Aclitem,
85    AclitemArray,
86    MacaddrArray,
87    InetArray,
88    Bpchar,
89    Varchar,
90    Date,
91    Time,
92    Timestamp,
93    TimestampArray,
94    DateArray,
95    TimeArray,
96    Timestamptz,
97    TimestamptzArray,
98    Interval,
99    IntervalArray,
100    NumericArray,
101    CstringArray,
102    Timetz,
103    TimetzArray,
104    Bit,
105    BitArray,
106    Varbit,
107    VarbitArray,
108    Numeric,
109    Refcursor,
110    RefcursorArray,
111    Regprocedure,
112    Regoper,
113    Regoperator,
114    Regclass,
115    Regtype,
116    RegprocedureArray,
117    RegoperArray,
118    RegoperatorArray,
119    RegclassArray,
120    RegtypeArray,
121    Record,
122    Cstring,
123    Any,
124    Anyarray,
125    Void,
126    Trigger,
127    LanguageHandler,
128    Internal,
129    Anyelement,
130    RecordArray,
131    Anynonarray,
132    TxidSnapshotArray,
133    Uuid,
134    UuidArray,
135    TxidSnapshot,
136    FdwHandler,
137    PgLsn,
138    PgLsnArray,
139    TsmHandler,
140    PgNdistinct,
141    PgDependencies,
142    Anyenum,
143    TsVector,
144    Tsquery,
145    GtsVector,
146    TsVectorArray,
147    GtsVectorArray,
148    TsqueryArray,
149    Regconfig,
150    RegconfigArray,
151    Regdictionary,
152    RegdictionaryArray,
153    Jsonb,
154    JsonbArray,
155    AnyRange,
156    EventTrigger,
157    Int4Range,
158    Int4RangeArray,
159    NumRange,
160    NumRangeArray,
161    TsRange,
162    TsRangeArray,
163    TstzRange,
164    TstzRangeArray,
165    DateRange,
166    DateRangeArray,
167    Int8Range,
168    Int8RangeArray,
169    Jsonpath,
170    JsonpathArray,
171    Regnamespace,
172    RegnamespaceArray,
173    Regrole,
174    RegroleArray,
175    Regcollation,
176    RegcollationArray,
177    Int4multiRange,
178    NummultiRange,
179    TsmultiRange,
180    TstzmultiRange,
181    DatemultiRange,
182    Int8multiRange,
183    AnymultiRange,
184    AnycompatiblemultiRange,
185    PgBrinBloomSummary,
186    PgBrinMinmaxMultiSummary,
187    PgMcvList,
188    PgSnapshot,
189    PgSnapshotArray,
190    Xid8,
191    Anycompatible,
192    Anycompatiblearray,
193    Anycompatiblenonarray,
194    AnycompatibleRange,
195    Int4multiRangeArray,
196    NummultiRangeArray,
197    TsmultiRangeArray,
198    TstzmultiRangeArray,
199    DatemultiRangeArray,
200    Int8multiRangeArray,
201    Other(Arc<Other>),
202}
203
204impl Inner {
205    pub fn from_oid(oid: Oid) -> Option<Inner> {
206        match oid {
207            16 => Some(Inner::Bool),
208            17 => Some(Inner::Bytea),
209            18 => Some(Inner::Char),
210            19 => Some(Inner::Name),
211            20 => Some(Inner::Int8),
212            21 => Some(Inner::Int2),
213            22 => Some(Inner::Int2Vector),
214            23 => Some(Inner::Int4),
215            24 => Some(Inner::Regproc),
216            25 => Some(Inner::Text),
217            26 => Some(Inner::Oid),
218            27 => Some(Inner::Tid),
219            28 => Some(Inner::Xid),
220            29 => Some(Inner::Cid),
221            30 => Some(Inner::OidVector),
222            32 => Some(Inner::PgDdlCommand),
223            114 => Some(Inner::Json),
224            142 => Some(Inner::Xml),
225            143 => Some(Inner::XmlArray),
226            194 => Some(Inner::PgNodeTree),
227            199 => Some(Inner::JsonArray),
228            269 => Some(Inner::TableAmHandler),
229            271 => Some(Inner::Xid8Array),
230            325 => Some(Inner::IndexAmHandler),
231            600 => Some(Inner::Point),
232            601 => Some(Inner::Lseg),
233            602 => Some(Inner::Path),
234            603 => Some(Inner::Box),
235            604 => Some(Inner::Polygon),
236            628 => Some(Inner::Line),
237            629 => Some(Inner::LineArray),
238            650 => Some(Inner::Cidr),
239            651 => Some(Inner::CidrArray),
240            700 => Some(Inner::Float4),
241            701 => Some(Inner::Float8),
242            705 => Some(Inner::Unknown),
243            718 => Some(Inner::Circle),
244            719 => Some(Inner::CircleArray),
245            774 => Some(Inner::Macaddr8),
246            775 => Some(Inner::Macaddr8Array),
247            790 => Some(Inner::Money),
248            791 => Some(Inner::MoneyArray),
249            829 => Some(Inner::Macaddr),
250            869 => Some(Inner::Inet),
251            1000 => Some(Inner::BoolArray),
252            1001 => Some(Inner::ByteaArray),
253            1002 => Some(Inner::CharArray),
254            1003 => Some(Inner::NameArray),
255            1005 => Some(Inner::Int2Array),
256            1006 => Some(Inner::Int2VectorArray),
257            1007 => Some(Inner::Int4Array),
258            1008 => Some(Inner::RegprocArray),
259            1009 => Some(Inner::TextArray),
260            1010 => Some(Inner::TidArray),
261            1011 => Some(Inner::XidArray),
262            1012 => Some(Inner::CidArray),
263            1013 => Some(Inner::OidVectorArray),
264            1014 => Some(Inner::BpcharArray),
265            1015 => Some(Inner::VarcharArray),
266            1016 => Some(Inner::Int8Array),
267            1017 => Some(Inner::PointArray),
268            1018 => Some(Inner::LsegArray),
269            1019 => Some(Inner::PathArray),
270            1020 => Some(Inner::BoxArray),
271            1021 => Some(Inner::Float4Array),
272            1022 => Some(Inner::Float8Array),
273            1027 => Some(Inner::PolygonArray),
274            1028 => Some(Inner::OidArray),
275            1033 => Some(Inner::Aclitem),
276            1034 => Some(Inner::AclitemArray),
277            1040 => Some(Inner::MacaddrArray),
278            1041 => Some(Inner::InetArray),
279            1042 => Some(Inner::Bpchar),
280            1043 => Some(Inner::Varchar),
281            1082 => Some(Inner::Date),
282            1083 => Some(Inner::Time),
283            1114 => Some(Inner::Timestamp),
284            1115 => Some(Inner::TimestampArray),
285            1182 => Some(Inner::DateArray),
286            1183 => Some(Inner::TimeArray),
287            1184 => Some(Inner::Timestamptz),
288            1185 => Some(Inner::TimestamptzArray),
289            1186 => Some(Inner::Interval),
290            1187 => Some(Inner::IntervalArray),
291            1231 => Some(Inner::NumericArray),
292            1263 => Some(Inner::CstringArray),
293            1266 => Some(Inner::Timetz),
294            1270 => Some(Inner::TimetzArray),
295            1560 => Some(Inner::Bit),
296            1561 => Some(Inner::BitArray),
297            1562 => Some(Inner::Varbit),
298            1563 => Some(Inner::VarbitArray),
299            1700 => Some(Inner::Numeric),
300            1790 => Some(Inner::Refcursor),
301            2201 => Some(Inner::RefcursorArray),
302            2202 => Some(Inner::Regprocedure),
303            2203 => Some(Inner::Regoper),
304            2204 => Some(Inner::Regoperator),
305            2205 => Some(Inner::Regclass),
306            2206 => Some(Inner::Regtype),
307            2207 => Some(Inner::RegprocedureArray),
308            2208 => Some(Inner::RegoperArray),
309            2209 => Some(Inner::RegoperatorArray),
310            2210 => Some(Inner::RegclassArray),
311            2211 => Some(Inner::RegtypeArray),
312            2249 => Some(Inner::Record),
313            2275 => Some(Inner::Cstring),
314            2276 => Some(Inner::Any),
315            2277 => Some(Inner::Anyarray),
316            2278 => Some(Inner::Void),
317            2279 => Some(Inner::Trigger),
318            2280 => Some(Inner::LanguageHandler),
319            2281 => Some(Inner::Internal),
320            2283 => Some(Inner::Anyelement),
321            2287 => Some(Inner::RecordArray),
322            2776 => Some(Inner::Anynonarray),
323            2949 => Some(Inner::TxidSnapshotArray),
324            2950 => Some(Inner::Uuid),
325            2951 => Some(Inner::UuidArray),
326            2970 => Some(Inner::TxidSnapshot),
327            3115 => Some(Inner::FdwHandler),
328            3220 => Some(Inner::PgLsn),
329            3221 => Some(Inner::PgLsnArray),
330            3310 => Some(Inner::TsmHandler),
331            3361 => Some(Inner::PgNdistinct),
332            3402 => Some(Inner::PgDependencies),
333            3500 => Some(Inner::Anyenum),
334            3614 => Some(Inner::TsVector),
335            3615 => Some(Inner::Tsquery),
336            3642 => Some(Inner::GtsVector),
337            3643 => Some(Inner::TsVectorArray),
338            3644 => Some(Inner::GtsVectorArray),
339            3645 => Some(Inner::TsqueryArray),
340            3734 => Some(Inner::Regconfig),
341            3735 => Some(Inner::RegconfigArray),
342            3769 => Some(Inner::Regdictionary),
343            3770 => Some(Inner::RegdictionaryArray),
344            3802 => Some(Inner::Jsonb),
345            3807 => Some(Inner::JsonbArray),
346            3831 => Some(Inner::AnyRange),
347            3838 => Some(Inner::EventTrigger),
348            3904 => Some(Inner::Int4Range),
349            3905 => Some(Inner::Int4RangeArray),
350            3906 => Some(Inner::NumRange),
351            3907 => Some(Inner::NumRangeArray),
352            3908 => Some(Inner::TsRange),
353            3909 => Some(Inner::TsRangeArray),
354            3910 => Some(Inner::TstzRange),
355            3911 => Some(Inner::TstzRangeArray),
356            3912 => Some(Inner::DateRange),
357            3913 => Some(Inner::DateRangeArray),
358            3926 => Some(Inner::Int8Range),
359            3927 => Some(Inner::Int8RangeArray),
360            4072 => Some(Inner::Jsonpath),
361            4073 => Some(Inner::JsonpathArray),
362            4089 => Some(Inner::Regnamespace),
363            4090 => Some(Inner::RegnamespaceArray),
364            4096 => Some(Inner::Regrole),
365            4097 => Some(Inner::RegroleArray),
366            4191 => Some(Inner::Regcollation),
367            4192 => Some(Inner::RegcollationArray),
368            4451 => Some(Inner::Int4multiRange),
369            4532 => Some(Inner::NummultiRange),
370            4533 => Some(Inner::TsmultiRange),
371            4534 => Some(Inner::TstzmultiRange),
372            4535 => Some(Inner::DatemultiRange),
373            4536 => Some(Inner::Int8multiRange),
374            4537 => Some(Inner::AnymultiRange),
375            4538 => Some(Inner::AnycompatiblemultiRange),
376            4600 => Some(Inner::PgBrinBloomSummary),
377            4601 => Some(Inner::PgBrinMinmaxMultiSummary),
378            5017 => Some(Inner::PgMcvList),
379            5038 => Some(Inner::PgSnapshot),
380            5039 => Some(Inner::PgSnapshotArray),
381            5069 => Some(Inner::Xid8),
382            5077 => Some(Inner::Anycompatible),
383            5078 => Some(Inner::Anycompatiblearray),
384            5079 => Some(Inner::Anycompatiblenonarray),
385            5080 => Some(Inner::AnycompatibleRange),
386            6150 => Some(Inner::Int4multiRangeArray),
387            6151 => Some(Inner::NummultiRangeArray),
388            6152 => Some(Inner::TsmultiRangeArray),
389            6153 => Some(Inner::TstzmultiRangeArray),
390            6155 => Some(Inner::DatemultiRangeArray),
391            6157 => Some(Inner::Int8multiRangeArray),
392            _ => None,
393        }
394    }
395
396    pub fn oid(&self) -> Oid {
397        match *self {
398            Inner::Bool => 16,
399            Inner::Bytea => 17,
400            Inner::Char => 18,
401            Inner::Name => 19,
402            Inner::Int8 => 20,
403            Inner::Int2 => 21,
404            Inner::Int2Vector => 22,
405            Inner::Int4 => 23,
406            Inner::Regproc => 24,
407            Inner::Text => 25,
408            Inner::Oid => 26,
409            Inner::Tid => 27,
410            Inner::Xid => 28,
411            Inner::Cid => 29,
412            Inner::OidVector => 30,
413            Inner::PgDdlCommand => 32,
414            Inner::Json => 114,
415            Inner::Xml => 142,
416            Inner::XmlArray => 143,
417            Inner::PgNodeTree => 194,
418            Inner::JsonArray => 199,
419            Inner::TableAmHandler => 269,
420            Inner::Xid8Array => 271,
421            Inner::IndexAmHandler => 325,
422            Inner::Point => 600,
423            Inner::Lseg => 601,
424            Inner::Path => 602,
425            Inner::Box => 603,
426            Inner::Polygon => 604,
427            Inner::Line => 628,
428            Inner::LineArray => 629,
429            Inner::Cidr => 650,
430            Inner::CidrArray => 651,
431            Inner::Float4 => 700,
432            Inner::Float8 => 701,
433            Inner::Unknown => 705,
434            Inner::Circle => 718,
435            Inner::CircleArray => 719,
436            Inner::Macaddr8 => 774,
437            Inner::Macaddr8Array => 775,
438            Inner::Money => 790,
439            Inner::MoneyArray => 791,
440            Inner::Macaddr => 829,
441            Inner::Inet => 869,
442            Inner::BoolArray => 1000,
443            Inner::ByteaArray => 1001,
444            Inner::CharArray => 1002,
445            Inner::NameArray => 1003,
446            Inner::Int2Array => 1005,
447            Inner::Int2VectorArray => 1006,
448            Inner::Int4Array => 1007,
449            Inner::RegprocArray => 1008,
450            Inner::TextArray => 1009,
451            Inner::TidArray => 1010,
452            Inner::XidArray => 1011,
453            Inner::CidArray => 1012,
454            Inner::OidVectorArray => 1013,
455            Inner::BpcharArray => 1014,
456            Inner::VarcharArray => 1015,
457            Inner::Int8Array => 1016,
458            Inner::PointArray => 1017,
459            Inner::LsegArray => 1018,
460            Inner::PathArray => 1019,
461            Inner::BoxArray => 1020,
462            Inner::Float4Array => 1021,
463            Inner::Float8Array => 1022,
464            Inner::PolygonArray => 1027,
465            Inner::OidArray => 1028,
466            Inner::Aclitem => 1033,
467            Inner::AclitemArray => 1034,
468            Inner::MacaddrArray => 1040,
469            Inner::InetArray => 1041,
470            Inner::Bpchar => 1042,
471            Inner::Varchar => 1043,
472            Inner::Date => 1082,
473            Inner::Time => 1083,
474            Inner::Timestamp => 1114,
475            Inner::TimestampArray => 1115,
476            Inner::DateArray => 1182,
477            Inner::TimeArray => 1183,
478            Inner::Timestamptz => 1184,
479            Inner::TimestamptzArray => 1185,
480            Inner::Interval => 1186,
481            Inner::IntervalArray => 1187,
482            Inner::NumericArray => 1231,
483            Inner::CstringArray => 1263,
484            Inner::Timetz => 1266,
485            Inner::TimetzArray => 1270,
486            Inner::Bit => 1560,
487            Inner::BitArray => 1561,
488            Inner::Varbit => 1562,
489            Inner::VarbitArray => 1563,
490            Inner::Numeric => 1700,
491            Inner::Refcursor => 1790,
492            Inner::RefcursorArray => 2201,
493            Inner::Regprocedure => 2202,
494            Inner::Regoper => 2203,
495            Inner::Regoperator => 2204,
496            Inner::Regclass => 2205,
497            Inner::Regtype => 2206,
498            Inner::RegprocedureArray => 2207,
499            Inner::RegoperArray => 2208,
500            Inner::RegoperatorArray => 2209,
501            Inner::RegclassArray => 2210,
502            Inner::RegtypeArray => 2211,
503            Inner::Record => 2249,
504            Inner::Cstring => 2275,
505            Inner::Any => 2276,
506            Inner::Anyarray => 2277,
507            Inner::Void => 2278,
508            Inner::Trigger => 2279,
509            Inner::LanguageHandler => 2280,
510            Inner::Internal => 2281,
511            Inner::Anyelement => 2283,
512            Inner::RecordArray => 2287,
513            Inner::Anynonarray => 2776,
514            Inner::TxidSnapshotArray => 2949,
515            Inner::Uuid => 2950,
516            Inner::UuidArray => 2951,
517            Inner::TxidSnapshot => 2970,
518            Inner::FdwHandler => 3115,
519            Inner::PgLsn => 3220,
520            Inner::PgLsnArray => 3221,
521            Inner::TsmHandler => 3310,
522            Inner::PgNdistinct => 3361,
523            Inner::PgDependencies => 3402,
524            Inner::Anyenum => 3500,
525            Inner::TsVector => 3614,
526            Inner::Tsquery => 3615,
527            Inner::GtsVector => 3642,
528            Inner::TsVectorArray => 3643,
529            Inner::GtsVectorArray => 3644,
530            Inner::TsqueryArray => 3645,
531            Inner::Regconfig => 3734,
532            Inner::RegconfigArray => 3735,
533            Inner::Regdictionary => 3769,
534            Inner::RegdictionaryArray => 3770,
535            Inner::Jsonb => 3802,
536            Inner::JsonbArray => 3807,
537            Inner::AnyRange => 3831,
538            Inner::EventTrigger => 3838,
539            Inner::Int4Range => 3904,
540            Inner::Int4RangeArray => 3905,
541            Inner::NumRange => 3906,
542            Inner::NumRangeArray => 3907,
543            Inner::TsRange => 3908,
544            Inner::TsRangeArray => 3909,
545            Inner::TstzRange => 3910,
546            Inner::TstzRangeArray => 3911,
547            Inner::DateRange => 3912,
548            Inner::DateRangeArray => 3913,
549            Inner::Int8Range => 3926,
550            Inner::Int8RangeArray => 3927,
551            Inner::Jsonpath => 4072,
552            Inner::JsonpathArray => 4073,
553            Inner::Regnamespace => 4089,
554            Inner::RegnamespaceArray => 4090,
555            Inner::Regrole => 4096,
556            Inner::RegroleArray => 4097,
557            Inner::Regcollation => 4191,
558            Inner::RegcollationArray => 4192,
559            Inner::Int4multiRange => 4451,
560            Inner::NummultiRange => 4532,
561            Inner::TsmultiRange => 4533,
562            Inner::TstzmultiRange => 4534,
563            Inner::DatemultiRange => 4535,
564            Inner::Int8multiRange => 4536,
565            Inner::AnymultiRange => 4537,
566            Inner::AnycompatiblemultiRange => 4538,
567            Inner::PgBrinBloomSummary => 4600,
568            Inner::PgBrinMinmaxMultiSummary => 4601,
569            Inner::PgMcvList => 5017,
570            Inner::PgSnapshot => 5038,
571            Inner::PgSnapshotArray => 5039,
572            Inner::Xid8 => 5069,
573            Inner::Anycompatible => 5077,
574            Inner::Anycompatiblearray => 5078,
575            Inner::Anycompatiblenonarray => 5079,
576            Inner::AnycompatibleRange => 5080,
577            Inner::Int4multiRangeArray => 6150,
578            Inner::NummultiRangeArray => 6151,
579            Inner::TsmultiRangeArray => 6152,
580            Inner::TstzmultiRangeArray => 6153,
581            Inner::DatemultiRangeArray => 6155,
582            Inner::Int8multiRangeArray => 6157,
583            Inner::Other(ref u) => u.oid,
584        }
585    }
586
587    pub fn kind(&self) -> &Kind {
588        match *self {
589            Inner::Bool => &Kind::Simple,
590            Inner::Bytea => &Kind::Simple,
591            Inner::Char => &Kind::Simple,
592            Inner::Name => &Kind::Simple,
593            Inner::Int8 => &Kind::Simple,
594            Inner::Int2 => &Kind::Simple,
595            Inner::Int2Vector => &Kind::Array(Type(Inner::Int2)),
596            Inner::Int4 => &Kind::Simple,
597            Inner::Regproc => &Kind::Simple,
598            Inner::Text => &Kind::Simple,
599            Inner::Oid => &Kind::Simple,
600            Inner::Tid => &Kind::Simple,
601            Inner::Xid => &Kind::Simple,
602            Inner::Cid => &Kind::Simple,
603            Inner::OidVector => &Kind::Array(Type(Inner::Oid)),
604            Inner::PgDdlCommand => &Kind::Pseudo,
605            Inner::Json => &Kind::Simple,
606            Inner::Xml => &Kind::Simple,
607            Inner::XmlArray => &Kind::Array(Type(Inner::Xml)),
608            Inner::PgNodeTree => &Kind::Simple,
609            Inner::JsonArray => &Kind::Array(Type(Inner::Json)),
610            Inner::TableAmHandler => &Kind::Pseudo,
611            Inner::Xid8Array => &Kind::Array(Type(Inner::Xid8)),
612            Inner::IndexAmHandler => &Kind::Pseudo,
613            Inner::Point => &Kind::Simple,
614            Inner::Lseg => &Kind::Simple,
615            Inner::Path => &Kind::Simple,
616            Inner::Box => &Kind::Simple,
617            Inner::Polygon => &Kind::Simple,
618            Inner::Line => &Kind::Simple,
619            Inner::LineArray => &Kind::Array(Type(Inner::Line)),
620            Inner::Cidr => &Kind::Simple,
621            Inner::CidrArray => &Kind::Array(Type(Inner::Cidr)),
622            Inner::Float4 => &Kind::Simple,
623            Inner::Float8 => &Kind::Simple,
624            Inner::Unknown => &Kind::Simple,
625            Inner::Circle => &Kind::Simple,
626            Inner::CircleArray => &Kind::Array(Type(Inner::Circle)),
627            Inner::Macaddr8 => &Kind::Simple,
628            Inner::Macaddr8Array => &Kind::Array(Type(Inner::Macaddr8)),
629            Inner::Money => &Kind::Simple,
630            Inner::MoneyArray => &Kind::Array(Type(Inner::Money)),
631            Inner::Macaddr => &Kind::Simple,
632            Inner::Inet => &Kind::Simple,
633            Inner::BoolArray => &Kind::Array(Type(Inner::Bool)),
634            Inner::ByteaArray => &Kind::Array(Type(Inner::Bytea)),
635            Inner::CharArray => &Kind::Array(Type(Inner::Char)),
636            Inner::NameArray => &Kind::Array(Type(Inner::Name)),
637            Inner::Int2Array => &Kind::Array(Type(Inner::Int2)),
638            Inner::Int2VectorArray => &Kind::Array(Type(Inner::Int2Vector)),
639            Inner::Int4Array => &Kind::Array(Type(Inner::Int4)),
640            Inner::RegprocArray => &Kind::Array(Type(Inner::Regproc)),
641            Inner::TextArray => &Kind::Array(Type(Inner::Text)),
642            Inner::TidArray => &Kind::Array(Type(Inner::Tid)),
643            Inner::XidArray => &Kind::Array(Type(Inner::Xid)),
644            Inner::CidArray => &Kind::Array(Type(Inner::Cid)),
645            Inner::OidVectorArray => &Kind::Array(Type(Inner::OidVector)),
646            Inner::BpcharArray => &Kind::Array(Type(Inner::Bpchar)),
647            Inner::VarcharArray => &Kind::Array(Type(Inner::Varchar)),
648            Inner::Int8Array => &Kind::Array(Type(Inner::Int8)),
649            Inner::PointArray => &Kind::Array(Type(Inner::Point)),
650            Inner::LsegArray => &Kind::Array(Type(Inner::Lseg)),
651            Inner::PathArray => &Kind::Array(Type(Inner::Path)),
652            Inner::BoxArray => &Kind::Array(Type(Inner::Box)),
653            Inner::Float4Array => &Kind::Array(Type(Inner::Float4)),
654            Inner::Float8Array => &Kind::Array(Type(Inner::Float8)),
655            Inner::PolygonArray => &Kind::Array(Type(Inner::Polygon)),
656            Inner::OidArray => &Kind::Array(Type(Inner::Oid)),
657            Inner::Aclitem => &Kind::Simple,
658            Inner::AclitemArray => &Kind::Array(Type(Inner::Aclitem)),
659            Inner::MacaddrArray => &Kind::Array(Type(Inner::Macaddr)),
660            Inner::InetArray => &Kind::Array(Type(Inner::Inet)),
661            Inner::Bpchar => &Kind::Simple,
662            Inner::Varchar => &Kind::Simple,
663            Inner::Date => &Kind::Simple,
664            Inner::Time => &Kind::Simple,
665            Inner::Timestamp => &Kind::Simple,
666            Inner::TimestampArray => &Kind::Array(Type(Inner::Timestamp)),
667            Inner::DateArray => &Kind::Array(Type(Inner::Date)),
668            Inner::TimeArray => &Kind::Array(Type(Inner::Time)),
669            Inner::Timestamptz => &Kind::Simple,
670            Inner::TimestamptzArray => &Kind::Array(Type(Inner::Timestamptz)),
671            Inner::Interval => &Kind::Simple,
672            Inner::IntervalArray => &Kind::Array(Type(Inner::Interval)),
673            Inner::NumericArray => &Kind::Array(Type(Inner::Numeric)),
674            Inner::CstringArray => &Kind::Array(Type(Inner::Cstring)),
675            Inner::Timetz => &Kind::Simple,
676            Inner::TimetzArray => &Kind::Array(Type(Inner::Timetz)),
677            Inner::Bit => &Kind::Simple,
678            Inner::BitArray => &Kind::Array(Type(Inner::Bit)),
679            Inner::Varbit => &Kind::Simple,
680            Inner::VarbitArray => &Kind::Array(Type(Inner::Varbit)),
681            Inner::Numeric => &Kind::Simple,
682            Inner::Refcursor => &Kind::Simple,
683            Inner::RefcursorArray => &Kind::Array(Type(Inner::Refcursor)),
684            Inner::Regprocedure => &Kind::Simple,
685            Inner::Regoper => &Kind::Simple,
686            Inner::Regoperator => &Kind::Simple,
687            Inner::Regclass => &Kind::Simple,
688            Inner::Regtype => &Kind::Simple,
689            Inner::RegprocedureArray => &Kind::Array(Type(Inner::Regprocedure)),
690            Inner::RegoperArray => &Kind::Array(Type(Inner::Regoper)),
691            Inner::RegoperatorArray => &Kind::Array(Type(Inner::Regoperator)),
692            Inner::RegclassArray => &Kind::Array(Type(Inner::Regclass)),
693            Inner::RegtypeArray => &Kind::Array(Type(Inner::Regtype)),
694            Inner::Record => &Kind::Pseudo,
695            Inner::Cstring => &Kind::Pseudo,
696            Inner::Any => &Kind::Pseudo,
697            Inner::Anyarray => &Kind::Pseudo,
698            Inner::Void => &Kind::Pseudo,
699            Inner::Trigger => &Kind::Pseudo,
700            Inner::LanguageHandler => &Kind::Pseudo,
701            Inner::Internal => &Kind::Pseudo,
702            Inner::Anyelement => &Kind::Pseudo,
703            Inner::RecordArray => &Kind::Pseudo,
704            Inner::Anynonarray => &Kind::Pseudo,
705            Inner::TxidSnapshotArray => &Kind::Array(Type(Inner::TxidSnapshot)),
706            Inner::Uuid => &Kind::Simple,
707            Inner::UuidArray => &Kind::Array(Type(Inner::Uuid)),
708            Inner::TxidSnapshot => &Kind::Simple,
709            Inner::FdwHandler => &Kind::Pseudo,
710            Inner::PgLsn => &Kind::Simple,
711            Inner::PgLsnArray => &Kind::Array(Type(Inner::PgLsn)),
712            Inner::TsmHandler => &Kind::Pseudo,
713            Inner::PgNdistinct => &Kind::Simple,
714            Inner::PgDependencies => &Kind::Simple,
715            Inner::Anyenum => &Kind::Pseudo,
716            Inner::TsVector => &Kind::Simple,
717            Inner::Tsquery => &Kind::Simple,
718            Inner::GtsVector => &Kind::Simple,
719            Inner::TsVectorArray => &Kind::Array(Type(Inner::TsVector)),
720            Inner::GtsVectorArray => &Kind::Array(Type(Inner::GtsVector)),
721            Inner::TsqueryArray => &Kind::Array(Type(Inner::Tsquery)),
722            Inner::Regconfig => &Kind::Simple,
723            Inner::RegconfigArray => &Kind::Array(Type(Inner::Regconfig)),
724            Inner::Regdictionary => &Kind::Simple,
725            Inner::RegdictionaryArray => &Kind::Array(Type(Inner::Regdictionary)),
726            Inner::Jsonb => &Kind::Simple,
727            Inner::JsonbArray => &Kind::Array(Type(Inner::Jsonb)),
728            Inner::AnyRange => &Kind::Pseudo,
729            Inner::EventTrigger => &Kind::Pseudo,
730            Inner::Int4Range => &Kind::Range(Type(Inner::Int4)),
731            Inner::Int4RangeArray => &Kind::Array(Type(Inner::Int4Range)),
732            Inner::NumRange => &Kind::Range(Type(Inner::Numeric)),
733            Inner::NumRangeArray => &Kind::Array(Type(Inner::NumRange)),
734            Inner::TsRange => &Kind::Range(Type(Inner::Timestamp)),
735            Inner::TsRangeArray => &Kind::Array(Type(Inner::TsRange)),
736            Inner::TstzRange => &Kind::Range(Type(Inner::Timestamptz)),
737            Inner::TstzRangeArray => &Kind::Array(Type(Inner::TstzRange)),
738            Inner::DateRange => &Kind::Range(Type(Inner::Date)),
739            Inner::DateRangeArray => &Kind::Array(Type(Inner::DateRange)),
740            Inner::Int8Range => &Kind::Range(Type(Inner::Int8)),
741            Inner::Int8RangeArray => &Kind::Array(Type(Inner::Int8Range)),
742            Inner::Jsonpath => &Kind::Simple,
743            Inner::JsonpathArray => &Kind::Array(Type(Inner::Jsonpath)),
744            Inner::Regnamespace => &Kind::Simple,
745            Inner::RegnamespaceArray => &Kind::Array(Type(Inner::Regnamespace)),
746            Inner::Regrole => &Kind::Simple,
747            Inner::RegroleArray => &Kind::Array(Type(Inner::Regrole)),
748            Inner::Regcollation => &Kind::Simple,
749            Inner::RegcollationArray => &Kind::Array(Type(Inner::Regcollation)),
750            Inner::Int4multiRange => &Kind::Multirange(Type(Inner::Int4)),
751            Inner::NummultiRange => &Kind::Multirange(Type(Inner::Numeric)),
752            Inner::TsmultiRange => &Kind::Multirange(Type(Inner::Timestamp)),
753            Inner::TstzmultiRange => &Kind::Multirange(Type(Inner::Timestamptz)),
754            Inner::DatemultiRange => &Kind::Multirange(Type(Inner::Date)),
755            Inner::Int8multiRange => &Kind::Multirange(Type(Inner::Int8)),
756            Inner::AnymultiRange => &Kind::Pseudo,
757            Inner::AnycompatiblemultiRange => &Kind::Pseudo,
758            Inner::PgBrinBloomSummary => &Kind::Simple,
759            Inner::PgBrinMinmaxMultiSummary => &Kind::Simple,
760            Inner::PgMcvList => &Kind::Simple,
761            Inner::PgSnapshot => &Kind::Simple,
762            Inner::PgSnapshotArray => &Kind::Array(Type(Inner::PgSnapshot)),
763            Inner::Xid8 => &Kind::Simple,
764            Inner::Anycompatible => &Kind::Pseudo,
765            Inner::Anycompatiblearray => &Kind::Pseudo,
766            Inner::Anycompatiblenonarray => &Kind::Pseudo,
767            Inner::AnycompatibleRange => &Kind::Pseudo,
768            Inner::Int4multiRangeArray => &Kind::Array(Type(Inner::Int4multiRange)),
769            Inner::NummultiRangeArray => &Kind::Array(Type(Inner::NummultiRange)),
770            Inner::TsmultiRangeArray => &Kind::Array(Type(Inner::TsmultiRange)),
771            Inner::TstzmultiRangeArray => &Kind::Array(Type(Inner::TstzmultiRange)),
772            Inner::DatemultiRangeArray => &Kind::Array(Type(Inner::DatemultiRange)),
773            Inner::Int8multiRangeArray => &Kind::Array(Type(Inner::Int8multiRange)),
774            Inner::Other(ref u) => &u.kind,
775        }
776    }
777
778    pub fn name(&self) -> &str {
779        match *self {
780            Inner::Bool => "bool",
781            Inner::Bytea => "bytea",
782            Inner::Char => "char",
783            Inner::Name => "name",
784            Inner::Int8 => "int8",
785            Inner::Int2 => "int2",
786            Inner::Int2Vector => "int2vector",
787            Inner::Int4 => "int4",
788            Inner::Regproc => "regproc",
789            Inner::Text => "text",
790            Inner::Oid => "oid",
791            Inner::Tid => "tid",
792            Inner::Xid => "xid",
793            Inner::Cid => "cid",
794            Inner::OidVector => "oidvector",
795            Inner::PgDdlCommand => "pg_ddl_command",
796            Inner::Json => "json",
797            Inner::Xml => "xml",
798            Inner::XmlArray => "_xml",
799            Inner::PgNodeTree => "pg_node_tree",
800            Inner::JsonArray => "_json",
801            Inner::TableAmHandler => "table_am_handler",
802            Inner::Xid8Array => "_xid8",
803            Inner::IndexAmHandler => "index_am_handler",
804            Inner::Point => "point",
805            Inner::Lseg => "lseg",
806            Inner::Path => "path",
807            Inner::Box => "box",
808            Inner::Polygon => "polygon",
809            Inner::Line => "line",
810            Inner::LineArray => "_line",
811            Inner::Cidr => "cidr",
812            Inner::CidrArray => "_cidr",
813            Inner::Float4 => "float4",
814            Inner::Float8 => "float8",
815            Inner::Unknown => "unknown",
816            Inner::Circle => "circle",
817            Inner::CircleArray => "_circle",
818            Inner::Macaddr8 => "macaddr8",
819            Inner::Macaddr8Array => "_macaddr8",
820            Inner::Money => "money",
821            Inner::MoneyArray => "_money",
822            Inner::Macaddr => "macaddr",
823            Inner::Inet => "inet",
824            Inner::BoolArray => "_bool",
825            Inner::ByteaArray => "_bytea",
826            Inner::CharArray => "_char",
827            Inner::NameArray => "_name",
828            Inner::Int2Array => "_int2",
829            Inner::Int2VectorArray => "_int2vector",
830            Inner::Int4Array => "_int4",
831            Inner::RegprocArray => "_regproc",
832            Inner::TextArray => "_text",
833            Inner::TidArray => "_tid",
834            Inner::XidArray => "_xid",
835            Inner::CidArray => "_cid",
836            Inner::OidVectorArray => "_oidvector",
837            Inner::BpcharArray => "_bpchar",
838            Inner::VarcharArray => "_varchar",
839            Inner::Int8Array => "_int8",
840            Inner::PointArray => "_point",
841            Inner::LsegArray => "_lseg",
842            Inner::PathArray => "_path",
843            Inner::BoxArray => "_box",
844            Inner::Float4Array => "_float4",
845            Inner::Float8Array => "_float8",
846            Inner::PolygonArray => "_polygon",
847            Inner::OidArray => "_oid",
848            Inner::Aclitem => "aclitem",
849            Inner::AclitemArray => "_aclitem",
850            Inner::MacaddrArray => "_macaddr",
851            Inner::InetArray => "_inet",
852            Inner::Bpchar => "bpchar",
853            Inner::Varchar => "varchar",
854            Inner::Date => "date",
855            Inner::Time => "time",
856            Inner::Timestamp => "timestamp",
857            Inner::TimestampArray => "_timestamp",
858            Inner::DateArray => "_date",
859            Inner::TimeArray => "_time",
860            Inner::Timestamptz => "timestamptz",
861            Inner::TimestamptzArray => "_timestamptz",
862            Inner::Interval => "interval",
863            Inner::IntervalArray => "_interval",
864            Inner::NumericArray => "_numeric",
865            Inner::CstringArray => "_cstring",
866            Inner::Timetz => "timetz",
867            Inner::TimetzArray => "_timetz",
868            Inner::Bit => "bit",
869            Inner::BitArray => "_bit",
870            Inner::Varbit => "varbit",
871            Inner::VarbitArray => "_varbit",
872            Inner::Numeric => "numeric",
873            Inner::Refcursor => "refcursor",
874            Inner::RefcursorArray => "_refcursor",
875            Inner::Regprocedure => "regprocedure",
876            Inner::Regoper => "regoper",
877            Inner::Regoperator => "regoperator",
878            Inner::Regclass => "regclass",
879            Inner::Regtype => "regtype",
880            Inner::RegprocedureArray => "_regprocedure",
881            Inner::RegoperArray => "_regoper",
882            Inner::RegoperatorArray => "_regoperator",
883            Inner::RegclassArray => "_regclass",
884            Inner::RegtypeArray => "_regtype",
885            Inner::Record => "record",
886            Inner::Cstring => "cstring",
887            Inner::Any => "any",
888            Inner::Anyarray => "anyarray",
889            Inner::Void => "void",
890            Inner::Trigger => "trigger",
891            Inner::LanguageHandler => "language_handler",
892            Inner::Internal => "internal",
893            Inner::Anyelement => "anyelement",
894            Inner::RecordArray => "_record",
895            Inner::Anynonarray => "anynonarray",
896            Inner::TxidSnapshotArray => "_txid_snapshot",
897            Inner::Uuid => "uuid",
898            Inner::UuidArray => "_uuid",
899            Inner::TxidSnapshot => "txid_snapshot",
900            Inner::FdwHandler => "fdw_handler",
901            Inner::PgLsn => "pg_lsn",
902            Inner::PgLsnArray => "_pg_lsn",
903            Inner::TsmHandler => "tsm_handler",
904            Inner::PgNdistinct => "pg_ndistinct",
905            Inner::PgDependencies => "pg_dependencies",
906            Inner::Anyenum => "anyenum",
907            Inner::TsVector => "tsvector",
908            Inner::Tsquery => "tsquery",
909            Inner::GtsVector => "gtsvector",
910            Inner::TsVectorArray => "_tsvector",
911            Inner::GtsVectorArray => "_gtsvector",
912            Inner::TsqueryArray => "_tsquery",
913            Inner::Regconfig => "regconfig",
914            Inner::RegconfigArray => "_regconfig",
915            Inner::Regdictionary => "regdictionary",
916            Inner::RegdictionaryArray => "_regdictionary",
917            Inner::Jsonb => "jsonb",
918            Inner::JsonbArray => "_jsonb",
919            Inner::AnyRange => "anyrange",
920            Inner::EventTrigger => "event_trigger",
921            Inner::Int4Range => "int4range",
922            Inner::Int4RangeArray => "_int4range",
923            Inner::NumRange => "numrange",
924            Inner::NumRangeArray => "_numrange",
925            Inner::TsRange => "tsrange",
926            Inner::TsRangeArray => "_tsrange",
927            Inner::TstzRange => "tstzrange",
928            Inner::TstzRangeArray => "_tstzrange",
929            Inner::DateRange => "daterange",
930            Inner::DateRangeArray => "_daterange",
931            Inner::Int8Range => "int8range",
932            Inner::Int8RangeArray => "_int8range",
933            Inner::Jsonpath => "jsonpath",
934            Inner::JsonpathArray => "_jsonpath",
935            Inner::Regnamespace => "regnamespace",
936            Inner::RegnamespaceArray => "_regnamespace",
937            Inner::Regrole => "regrole",
938            Inner::RegroleArray => "_regrole",
939            Inner::Regcollation => "regcollation",
940            Inner::RegcollationArray => "_regcollation",
941            Inner::Int4multiRange => "int4multirange",
942            Inner::NummultiRange => "nummultirange",
943            Inner::TsmultiRange => "tsmultirange",
944            Inner::TstzmultiRange => "tstzmultirange",
945            Inner::DatemultiRange => "datemultirange",
946            Inner::Int8multiRange => "int8multirange",
947            Inner::AnymultiRange => "anymultirange",
948            Inner::AnycompatiblemultiRange => "anycompatiblemultirange",
949            Inner::PgBrinBloomSummary => "pg_brin_bloom_summary",
950            Inner::PgBrinMinmaxMultiSummary => "pg_brin_minmax_multi_summary",
951            Inner::PgMcvList => "pg_mcv_list",
952            Inner::PgSnapshot => "pg_snapshot",
953            Inner::PgSnapshotArray => "_pg_snapshot",
954            Inner::Xid8 => "xid8",
955            Inner::Anycompatible => "anycompatible",
956            Inner::Anycompatiblearray => "anycompatiblearray",
957            Inner::Anycompatiblenonarray => "anycompatiblenonarray",
958            Inner::AnycompatibleRange => "anycompatiblerange",
959            Inner::Int4multiRangeArray => "_int4multirange",
960            Inner::NummultiRangeArray => "_nummultirange",
961            Inner::TsmultiRangeArray => "_tsmultirange",
962            Inner::TstzmultiRangeArray => "_tstzmultirange",
963            Inner::DatemultiRangeArray => "_datemultirange",
964            Inner::Int8multiRangeArray => "_int8multirange",
965            Inner::Other(ref u) => &u.name,
966        }
967    }
968}
969impl Type {
970    /// BOOL - boolean, &#39;true&#39;/&#39;false&#39;
971    pub const BOOL: Type = Type(Inner::Bool);
972
973    /// BYTEA - variable-length string, binary values escaped
974    pub const BYTEA: Type = Type(Inner::Bytea);
975
976    /// CHAR - single character
977    pub const CHAR: Type = Type(Inner::Char);
978
979    /// NAME - 63-byte type for storing system identifiers
980    pub const NAME: Type = Type(Inner::Name);
981
982    /// INT8 - ~18 digit integer, 8-byte storage
983    pub const INT8: Type = Type(Inner::Int8);
984
985    /// INT2 - -32 thousand to 32 thousand, 2-byte storage
986    pub const INT2: Type = Type(Inner::Int2);
987
988    /// INT2VECTOR - array of int2, used in system tables
989    pub const INT2_VECTOR: Type = Type(Inner::Int2Vector);
990
991    /// INT4 - -2 billion to 2 billion integer, 4-byte storage
992    pub const INT4: Type = Type(Inner::Int4);
993
994    /// REGPROC - registered procedure
995    pub const REGPROC: Type = Type(Inner::Regproc);
996
997    /// TEXT - variable-length string, no limit specified
998    pub const TEXT: Type = Type(Inner::Text);
999
1000    /// OID - object identifier&#40;oid&#41;, maximum 4 billion
1001    pub const OID: Type = Type(Inner::Oid);
1002
1003    /// TID - &#40;block, offset&#41;, physical location of tuple
1004    pub const TID: Type = Type(Inner::Tid);
1005
1006    /// XID - transaction id
1007    pub const XID: Type = Type(Inner::Xid);
1008
1009    /// CID - command identifier type, sequence in transaction id
1010    pub const CID: Type = Type(Inner::Cid);
1011
1012    /// OIDVECTOR - array of oids, used in system tables
1013    pub const OID_VECTOR: Type = Type(Inner::OidVector);
1014
1015    /// PG_DDL_COMMAND - internal type for passing CollectedCommand
1016    pub const PG_DDL_COMMAND: Type = Type(Inner::PgDdlCommand);
1017
1018    /// JSON - JSON stored as text
1019    pub const JSON: Type = Type(Inner::Json);
1020
1021    /// XML - XML content
1022    pub const XML: Type = Type(Inner::Xml);
1023
1024    /// XML&#91;&#93;
1025    pub const XML_ARRAY: Type = Type(Inner::XmlArray);
1026
1027    /// PG_NODE_TREE - string representing an internal node tree
1028    pub const PG_NODE_TREE: Type = Type(Inner::PgNodeTree);
1029
1030    /// JSON&#91;&#93;
1031    pub const JSON_ARRAY: Type = Type(Inner::JsonArray);
1032
1033    /// TABLE_AM_HANDLER
1034    pub const TABLE_AM_HANDLER: Type = Type(Inner::TableAmHandler);
1035
1036    /// XID8&#91;&#93;
1037    pub const XID8_ARRAY: Type = Type(Inner::Xid8Array);
1038
1039    /// INDEX_AM_HANDLER - pseudo-type for the result of an index AM handler function
1040    pub const INDEX_AM_HANDLER: Type = Type(Inner::IndexAmHandler);
1041
1042    /// POINT - geometric point &#39;&#40;x, y&#41;&#39;
1043    pub const POINT: Type = Type(Inner::Point);
1044
1045    /// LSEG - geometric line segment &#39;&#40;pt1,pt2&#41;&#39;
1046    pub const LSEG: Type = Type(Inner::Lseg);
1047
1048    /// PATH - geometric path &#39;&#40;pt1,...&#41;&#39;
1049    pub const PATH: Type = Type(Inner::Path);
1050
1051    /// BOX - geometric box &#39;&#40;lower left,upper right&#41;&#39;
1052    pub const BOX: Type = Type(Inner::Box);
1053
1054    /// POLYGON - geometric polygon &#39;&#40;pt1,...&#41;&#39;
1055    pub const POLYGON: Type = Type(Inner::Polygon);
1056
1057    /// LINE - geometric line
1058    pub const LINE: Type = Type(Inner::Line);
1059
1060    /// LINE&#91;&#93;
1061    pub const LINE_ARRAY: Type = Type(Inner::LineArray);
1062
1063    /// CIDR - network IP address/netmask, network address
1064    pub const CIDR: Type = Type(Inner::Cidr);
1065
1066    /// CIDR&#91;&#93;
1067    pub const CIDR_ARRAY: Type = Type(Inner::CidrArray);
1068
1069    /// FLOAT4 - single-precision floating point number, 4-byte storage
1070    pub const FLOAT4: Type = Type(Inner::Float4);
1071
1072    /// FLOAT8 - double-precision floating point number, 8-byte storage
1073    pub const FLOAT8: Type = Type(Inner::Float8);
1074
1075    /// UNKNOWN - pseudo-type representing an undetermined type
1076    pub const UNKNOWN: Type = Type(Inner::Unknown);
1077
1078    /// CIRCLE - geometric circle &#39;&#40;center,radius&#41;&#39;
1079    pub const CIRCLE: Type = Type(Inner::Circle);
1080
1081    /// CIRCLE&#91;&#93;
1082    pub const CIRCLE_ARRAY: Type = Type(Inner::CircleArray);
1083
1084    /// MACADDR8 - XX:XX:XX:XX:XX:XX:XX:XX, MAC address
1085    pub const MACADDR8: Type = Type(Inner::Macaddr8);
1086
1087    /// MACADDR8&#91;&#93;
1088    pub const MACADDR8_ARRAY: Type = Type(Inner::Macaddr8Array);
1089
1090    /// MONEY - monetary amounts, &#36;d,ddd.cc
1091    pub const MONEY: Type = Type(Inner::Money);
1092
1093    /// MONEY&#91;&#93;
1094    pub const MONEY_ARRAY: Type = Type(Inner::MoneyArray);
1095
1096    /// MACADDR - XX:XX:XX:XX:XX:XX, MAC address
1097    pub const MACADDR: Type = Type(Inner::Macaddr);
1098
1099    /// INET - IP address/netmask, host address, netmask optional
1100    pub const INET: Type = Type(Inner::Inet);
1101
1102    /// BOOL&#91;&#93;
1103    pub const BOOL_ARRAY: Type = Type(Inner::BoolArray);
1104
1105    /// BYTEA&#91;&#93;
1106    pub const BYTEA_ARRAY: Type = Type(Inner::ByteaArray);
1107
1108    /// CHAR&#91;&#93;
1109    pub const CHAR_ARRAY: Type = Type(Inner::CharArray);
1110
1111    /// NAME&#91;&#93;
1112    pub const NAME_ARRAY: Type = Type(Inner::NameArray);
1113
1114    /// INT2&#91;&#93;
1115    pub const INT2_ARRAY: Type = Type(Inner::Int2Array);
1116
1117    /// INT2VECTOR&#91;&#93;
1118    pub const INT2_VECTOR_ARRAY: Type = Type(Inner::Int2VectorArray);
1119
1120    /// INT4&#91;&#93;
1121    pub const INT4_ARRAY: Type = Type(Inner::Int4Array);
1122
1123    /// REGPROC&#91;&#93;
1124    pub const REGPROC_ARRAY: Type = Type(Inner::RegprocArray);
1125
1126    /// TEXT&#91;&#93;
1127    pub const TEXT_ARRAY: Type = Type(Inner::TextArray);
1128
1129    /// TID&#91;&#93;
1130    pub const TID_ARRAY: Type = Type(Inner::TidArray);
1131
1132    /// XID&#91;&#93;
1133    pub const XID_ARRAY: Type = Type(Inner::XidArray);
1134
1135    /// CID&#91;&#93;
1136    pub const CID_ARRAY: Type = Type(Inner::CidArray);
1137
1138    /// OIDVECTOR&#91;&#93;
1139    pub const OID_VECTOR_ARRAY: Type = Type(Inner::OidVectorArray);
1140
1141    /// BPCHAR&#91;&#93;
1142    pub const BPCHAR_ARRAY: Type = Type(Inner::BpcharArray);
1143
1144    /// VARCHAR&#91;&#93;
1145    pub const VARCHAR_ARRAY: Type = Type(Inner::VarcharArray);
1146
1147    /// INT8&#91;&#93;
1148    pub const INT8_ARRAY: Type = Type(Inner::Int8Array);
1149
1150    /// POINT&#91;&#93;
1151    pub const POINT_ARRAY: Type = Type(Inner::PointArray);
1152
1153    /// LSEG&#91;&#93;
1154    pub const LSEG_ARRAY: Type = Type(Inner::LsegArray);
1155
1156    /// PATH&#91;&#93;
1157    pub const PATH_ARRAY: Type = Type(Inner::PathArray);
1158
1159    /// BOX&#91;&#93;
1160    pub const BOX_ARRAY: Type = Type(Inner::BoxArray);
1161
1162    /// FLOAT4&#91;&#93;
1163    pub const FLOAT4_ARRAY: Type = Type(Inner::Float4Array);
1164
1165    /// FLOAT8&#91;&#93;
1166    pub const FLOAT8_ARRAY: Type = Type(Inner::Float8Array);
1167
1168    /// POLYGON&#91;&#93;
1169    pub const POLYGON_ARRAY: Type = Type(Inner::PolygonArray);
1170
1171    /// OID&#91;&#93;
1172    pub const OID_ARRAY: Type = Type(Inner::OidArray);
1173
1174    /// ACLITEM - access control list
1175    pub const ACLITEM: Type = Type(Inner::Aclitem);
1176
1177    /// ACLITEM&#91;&#93;
1178    pub const ACLITEM_ARRAY: Type = Type(Inner::AclitemArray);
1179
1180    /// MACADDR&#91;&#93;
1181    pub const MACADDR_ARRAY: Type = Type(Inner::MacaddrArray);
1182
1183    /// INET&#91;&#93;
1184    pub const INET_ARRAY: Type = Type(Inner::InetArray);
1185
1186    /// BPCHAR - char&#40;length&#41;, blank-padded string, fixed storage length
1187    pub const BPCHAR: Type = Type(Inner::Bpchar);
1188
1189    /// VARCHAR - varchar&#40;length&#41;, non-blank-padded string, variable storage length
1190    pub const VARCHAR: Type = Type(Inner::Varchar);
1191
1192    /// DATE - date
1193    pub const DATE: Type = Type(Inner::Date);
1194
1195    /// TIME - time of day
1196    pub const TIME: Type = Type(Inner::Time);
1197
1198    /// TIMESTAMP - date and time
1199    pub const TIMESTAMP: Type = Type(Inner::Timestamp);
1200
1201    /// TIMESTAMP&#91;&#93;
1202    pub const TIMESTAMP_ARRAY: Type = Type(Inner::TimestampArray);
1203
1204    /// DATE&#91;&#93;
1205    pub const DATE_ARRAY: Type = Type(Inner::DateArray);
1206
1207    /// TIME&#91;&#93;
1208    pub const TIME_ARRAY: Type = Type(Inner::TimeArray);
1209
1210    /// TIMESTAMPTZ - date and time with time zone
1211    pub const TIMESTAMPTZ: Type = Type(Inner::Timestamptz);
1212
1213    /// TIMESTAMPTZ&#91;&#93;
1214    pub const TIMESTAMPTZ_ARRAY: Type = Type(Inner::TimestamptzArray);
1215
1216    /// INTERVAL - &#64; &lt;number&gt; &lt;units&gt;, time interval
1217    pub const INTERVAL: Type = Type(Inner::Interval);
1218
1219    /// INTERVAL&#91;&#93;
1220    pub const INTERVAL_ARRAY: Type = Type(Inner::IntervalArray);
1221
1222    /// NUMERIC&#91;&#93;
1223    pub const NUMERIC_ARRAY: Type = Type(Inner::NumericArray);
1224
1225    /// CSTRING&#91;&#93;
1226    pub const CSTRING_ARRAY: Type = Type(Inner::CstringArray);
1227
1228    /// TIMETZ - time of day with time zone
1229    pub const TIMETZ: Type = Type(Inner::Timetz);
1230
1231    /// TIMETZ&#91;&#93;
1232    pub const TIMETZ_ARRAY: Type = Type(Inner::TimetzArray);
1233
1234    /// BIT - fixed-length bit string
1235    pub const BIT: Type = Type(Inner::Bit);
1236
1237    /// BIT&#91;&#93;
1238    pub const BIT_ARRAY: Type = Type(Inner::BitArray);
1239
1240    /// VARBIT - variable-length bit string
1241    pub const VARBIT: Type = Type(Inner::Varbit);
1242
1243    /// VARBIT&#91;&#93;
1244    pub const VARBIT_ARRAY: Type = Type(Inner::VarbitArray);
1245
1246    /// NUMERIC - numeric&#40;precision, decimal&#41;, arbitrary precision number
1247    pub const NUMERIC: Type = Type(Inner::Numeric);
1248
1249    /// REFCURSOR - reference to cursor &#40;portal name&#41;
1250    pub const REFCURSOR: Type = Type(Inner::Refcursor);
1251
1252    /// REFCURSOR&#91;&#93;
1253    pub const REFCURSOR_ARRAY: Type = Type(Inner::RefcursorArray);
1254
1255    /// REGPROCEDURE - registered procedure &#40;with args&#41;
1256    pub const REGPROCEDURE: Type = Type(Inner::Regprocedure);
1257
1258    /// REGOPER - registered operator
1259    pub const REGOPER: Type = Type(Inner::Regoper);
1260
1261    /// REGOPERATOR - registered operator &#40;with args&#41;
1262    pub const REGOPERATOR: Type = Type(Inner::Regoperator);
1263
1264    /// REGCLASS - registered class
1265    pub const REGCLASS: Type = Type(Inner::Regclass);
1266
1267    /// REGTYPE - registered type
1268    pub const REGTYPE: Type = Type(Inner::Regtype);
1269
1270    /// REGPROCEDURE&#91;&#93;
1271    pub const REGPROCEDURE_ARRAY: Type = Type(Inner::RegprocedureArray);
1272
1273    /// REGOPER&#91;&#93;
1274    pub const REGOPER_ARRAY: Type = Type(Inner::RegoperArray);
1275
1276    /// REGOPERATOR&#91;&#93;
1277    pub const REGOPERATOR_ARRAY: Type = Type(Inner::RegoperatorArray);
1278
1279    /// REGCLASS&#91;&#93;
1280    pub const REGCLASS_ARRAY: Type = Type(Inner::RegclassArray);
1281
1282    /// REGTYPE&#91;&#93;
1283    pub const REGTYPE_ARRAY: Type = Type(Inner::RegtypeArray);
1284
1285    /// RECORD - pseudo-type representing any composite type
1286    pub const RECORD: Type = Type(Inner::Record);
1287
1288    /// CSTRING - C-style string
1289    pub const CSTRING: Type = Type(Inner::Cstring);
1290
1291    /// ANY - pseudo-type representing any type
1292    pub const ANY: Type = Type(Inner::Any);
1293
1294    /// ANYARRAY - pseudo-type representing a polymorphic array type
1295    pub const ANYARRAY: Type = Type(Inner::Anyarray);
1296
1297    /// VOID - pseudo-type for the result of a function with no real result
1298    pub const VOID: Type = Type(Inner::Void);
1299
1300    /// TRIGGER - pseudo-type for the result of a trigger function
1301    pub const TRIGGER: Type = Type(Inner::Trigger);
1302
1303    /// LANGUAGE_HANDLER - pseudo-type for the result of a language handler function
1304    pub const LANGUAGE_HANDLER: Type = Type(Inner::LanguageHandler);
1305
1306    /// INTERNAL - pseudo-type representing an internal data structure
1307    pub const INTERNAL: Type = Type(Inner::Internal);
1308
1309    /// ANYELEMENT - pseudo-type representing a polymorphic base type
1310    pub const ANYELEMENT: Type = Type(Inner::Anyelement);
1311
1312    /// RECORD&#91;&#93;
1313    pub const RECORD_ARRAY: Type = Type(Inner::RecordArray);
1314
1315    /// ANYNONARRAY - pseudo-type representing a polymorphic base type that is not an array
1316    pub const ANYNONARRAY: Type = Type(Inner::Anynonarray);
1317
1318    /// TXID_SNAPSHOT&#91;&#93;
1319    pub const TXID_SNAPSHOT_ARRAY: Type = Type(Inner::TxidSnapshotArray);
1320
1321    /// UUID - UUID datatype
1322    pub const UUID: Type = Type(Inner::Uuid);
1323
1324    /// UUID&#91;&#93;
1325    pub const UUID_ARRAY: Type = Type(Inner::UuidArray);
1326
1327    /// TXID_SNAPSHOT - txid snapshot
1328    pub const TXID_SNAPSHOT: Type = Type(Inner::TxidSnapshot);
1329
1330    /// FDW_HANDLER - pseudo-type for the result of an FDW handler function
1331    pub const FDW_HANDLER: Type = Type(Inner::FdwHandler);
1332
1333    /// PG_LSN - PostgreSQL LSN datatype
1334    pub const PG_LSN: Type = Type(Inner::PgLsn);
1335
1336    /// PG_LSN&#91;&#93;
1337    pub const PG_LSN_ARRAY: Type = Type(Inner::PgLsnArray);
1338
1339    /// TSM_HANDLER - pseudo-type for the result of a tablesample method function
1340    pub const TSM_HANDLER: Type = Type(Inner::TsmHandler);
1341
1342    /// PG_NDISTINCT - multivariate ndistinct coefficients
1343    pub const PG_NDISTINCT: Type = Type(Inner::PgNdistinct);
1344
1345    /// PG_DEPENDENCIES - multivariate dependencies
1346    pub const PG_DEPENDENCIES: Type = Type(Inner::PgDependencies);
1347
1348    /// ANYENUM - pseudo-type representing a polymorphic base type that is an enum
1349    pub const ANYENUM: Type = Type(Inner::Anyenum);
1350
1351    /// TSVECTOR - text representation for text search
1352    pub const TS_VECTOR: Type = Type(Inner::TsVector);
1353
1354    /// TSQUERY - query representation for text search
1355    pub const TSQUERY: Type = Type(Inner::Tsquery);
1356
1357    /// GTSVECTOR - GiST index internal text representation for text search
1358    pub const GTS_VECTOR: Type = Type(Inner::GtsVector);
1359
1360    /// TSVECTOR&#91;&#93;
1361    pub const TS_VECTOR_ARRAY: Type = Type(Inner::TsVectorArray);
1362
1363    /// GTSVECTOR&#91;&#93;
1364    pub const GTS_VECTOR_ARRAY: Type = Type(Inner::GtsVectorArray);
1365
1366    /// TSQUERY&#91;&#93;
1367    pub const TSQUERY_ARRAY: Type = Type(Inner::TsqueryArray);
1368
1369    /// REGCONFIG - registered text search configuration
1370    pub const REGCONFIG: Type = Type(Inner::Regconfig);
1371
1372    /// REGCONFIG&#91;&#93;
1373    pub const REGCONFIG_ARRAY: Type = Type(Inner::RegconfigArray);
1374
1375    /// REGDICTIONARY - registered text search dictionary
1376    pub const REGDICTIONARY: Type = Type(Inner::Regdictionary);
1377
1378    /// REGDICTIONARY&#91;&#93;
1379    pub const REGDICTIONARY_ARRAY: Type = Type(Inner::RegdictionaryArray);
1380
1381    /// JSONB - Binary JSON
1382    pub const JSONB: Type = Type(Inner::Jsonb);
1383
1384    /// JSONB&#91;&#93;
1385    pub const JSONB_ARRAY: Type = Type(Inner::JsonbArray);
1386
1387    /// ANYRANGE - pseudo-type representing a range over a polymorphic base type
1388    pub const ANY_RANGE: Type = Type(Inner::AnyRange);
1389
1390    /// EVENT_TRIGGER - pseudo-type for the result of an event trigger function
1391    pub const EVENT_TRIGGER: Type = Type(Inner::EventTrigger);
1392
1393    /// INT4RANGE - range of integers
1394    pub const INT4_RANGE: Type = Type(Inner::Int4Range);
1395
1396    /// INT4RANGE&#91;&#93;
1397    pub const INT4_RANGE_ARRAY: Type = Type(Inner::Int4RangeArray);
1398
1399    /// NUMRANGE - range of numerics
1400    pub const NUM_RANGE: Type = Type(Inner::NumRange);
1401
1402    /// NUMRANGE&#91;&#93;
1403    pub const NUM_RANGE_ARRAY: Type = Type(Inner::NumRangeArray);
1404
1405    /// TSRANGE - range of timestamps without time zone
1406    pub const TS_RANGE: Type = Type(Inner::TsRange);
1407
1408    /// TSRANGE&#91;&#93;
1409    pub const TS_RANGE_ARRAY: Type = Type(Inner::TsRangeArray);
1410
1411    /// TSTZRANGE - range of timestamps with time zone
1412    pub const TSTZ_RANGE: Type = Type(Inner::TstzRange);
1413
1414    /// TSTZRANGE&#91;&#93;
1415    pub const TSTZ_RANGE_ARRAY: Type = Type(Inner::TstzRangeArray);
1416
1417    /// DATERANGE - range of dates
1418    pub const DATE_RANGE: Type = Type(Inner::DateRange);
1419
1420    /// DATERANGE&#91;&#93;
1421    pub const DATE_RANGE_ARRAY: Type = Type(Inner::DateRangeArray);
1422
1423    /// INT8RANGE - range of bigints
1424    pub const INT8_RANGE: Type = Type(Inner::Int8Range);
1425
1426    /// INT8RANGE&#91;&#93;
1427    pub const INT8_RANGE_ARRAY: Type = Type(Inner::Int8RangeArray);
1428
1429    /// JSONPATH - JSON path
1430    pub const JSONPATH: Type = Type(Inner::Jsonpath);
1431
1432    /// JSONPATH&#91;&#93;
1433    pub const JSONPATH_ARRAY: Type = Type(Inner::JsonpathArray);
1434
1435    /// REGNAMESPACE - registered namespace
1436    pub const REGNAMESPACE: Type = Type(Inner::Regnamespace);
1437
1438    /// REGNAMESPACE&#91;&#93;
1439    pub const REGNAMESPACE_ARRAY: Type = Type(Inner::RegnamespaceArray);
1440
1441    /// REGROLE - registered role
1442    pub const REGROLE: Type = Type(Inner::Regrole);
1443
1444    /// REGROLE&#91;&#93;
1445    pub const REGROLE_ARRAY: Type = Type(Inner::RegroleArray);
1446
1447    /// REGCOLLATION - registered collation
1448    pub const REGCOLLATION: Type = Type(Inner::Regcollation);
1449
1450    /// REGCOLLATION&#91;&#93;
1451    pub const REGCOLLATION_ARRAY: Type = Type(Inner::RegcollationArray);
1452
1453    /// INT4MULTIRANGE - multirange of integers
1454    pub const INT4MULTI_RANGE: Type = Type(Inner::Int4multiRange);
1455
1456    /// NUMMULTIRANGE - multirange of numerics
1457    pub const NUMMULTI_RANGE: Type = Type(Inner::NummultiRange);
1458
1459    /// TSMULTIRANGE - multirange of timestamps without time zone
1460    pub const TSMULTI_RANGE: Type = Type(Inner::TsmultiRange);
1461
1462    /// TSTZMULTIRANGE - multirange of timestamps with time zone
1463    pub const TSTZMULTI_RANGE: Type = Type(Inner::TstzmultiRange);
1464
1465    /// DATEMULTIRANGE - multirange of dates
1466    pub const DATEMULTI_RANGE: Type = Type(Inner::DatemultiRange);
1467
1468    /// INT8MULTIRANGE - multirange of bigints
1469    pub const INT8MULTI_RANGE: Type = Type(Inner::Int8multiRange);
1470
1471    /// ANYMULTIRANGE - pseudo-type representing a polymorphic base type that is a multirange
1472    pub const ANYMULTI_RANGE: Type = Type(Inner::AnymultiRange);
1473
1474    /// ANYCOMPATIBLEMULTIRANGE - pseudo-type representing a multirange over a polymorphic common type
1475    pub const ANYCOMPATIBLEMULTI_RANGE: Type = Type(Inner::AnycompatiblemultiRange);
1476
1477    /// PG_BRIN_BLOOM_SUMMARY - BRIN bloom summary
1478    pub const PG_BRIN_BLOOM_SUMMARY: Type = Type(Inner::PgBrinBloomSummary);
1479
1480    /// PG_BRIN_MINMAX_MULTI_SUMMARY - BRIN minmax-multi summary
1481    pub const PG_BRIN_MINMAX_MULTI_SUMMARY: Type = Type(Inner::PgBrinMinmaxMultiSummary);
1482
1483    /// PG_MCV_LIST - multivariate MCV list
1484    pub const PG_MCV_LIST: Type = Type(Inner::PgMcvList);
1485
1486    /// PG_SNAPSHOT - snapshot
1487    pub const PG_SNAPSHOT: Type = Type(Inner::PgSnapshot);
1488
1489    /// PG_SNAPSHOT&#91;&#93;
1490    pub const PG_SNAPSHOT_ARRAY: Type = Type(Inner::PgSnapshotArray);
1491
1492    /// XID8 - full transaction id
1493    pub const XID8: Type = Type(Inner::Xid8);
1494
1495    /// ANYCOMPATIBLE - pseudo-type representing a polymorphic common type
1496    pub const ANYCOMPATIBLE: Type = Type(Inner::Anycompatible);
1497
1498    /// ANYCOMPATIBLEARRAY - pseudo-type representing an array of polymorphic common type elements
1499    pub const ANYCOMPATIBLEARRAY: Type = Type(Inner::Anycompatiblearray);
1500
1501    /// ANYCOMPATIBLENONARRAY - pseudo-type representing a polymorphic common type that is not an array
1502    pub const ANYCOMPATIBLENONARRAY: Type = Type(Inner::Anycompatiblenonarray);
1503
1504    /// ANYCOMPATIBLERANGE - pseudo-type representing a range over a polymorphic common type
1505    pub const ANYCOMPATIBLE_RANGE: Type = Type(Inner::AnycompatibleRange);
1506
1507    /// INT4MULTIRANGE&#91;&#93;
1508    pub const INT4MULTI_RANGE_ARRAY: Type = Type(Inner::Int4multiRangeArray);
1509
1510    /// NUMMULTIRANGE&#91;&#93;
1511    pub const NUMMULTI_RANGE_ARRAY: Type = Type(Inner::NummultiRangeArray);
1512
1513    /// TSMULTIRANGE&#91;&#93;
1514    pub const TSMULTI_RANGE_ARRAY: Type = Type(Inner::TsmultiRangeArray);
1515
1516    /// TSTZMULTIRANGE&#91;&#93;
1517    pub const TSTZMULTI_RANGE_ARRAY: Type = Type(Inner::TstzmultiRangeArray);
1518
1519    /// DATEMULTIRANGE&#91;&#93;
1520    pub const DATEMULTI_RANGE_ARRAY: Type = Type(Inner::DatemultiRangeArray);
1521
1522    /// INT8MULTIRANGE&#91;&#93;
1523    pub const INT8MULTI_RANGE_ARRAY: Type = Type(Inner::Int8multiRangeArray);
1524}