-
Notifications
You must be signed in to change notification settings - Fork 874
Expand file tree
/
Copy pathDataTypeNames.cs
More file actions
110 lines (107 loc) · 7.67 KB
/
DataTypeNames.cs
File metadata and controls
110 lines (107 loc) · 7.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
using System;
using static Npgsql.Internal.Postgres.DataTypeName;
namespace Npgsql.Internal.Postgres;
/// <summary>
/// Well-known PostgreSQL data type names.
/// </summary>
static class DataTypeNames
{
// Generated from the following query:
// SELECT '"' || string_agg(typname, '" or "') || '"' FROM (
// SELECT typname FROM pg_catalog.pg_type WHERE typtype = 'b' AND typcategory <> 'A'
// AND typnamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'pg_catalog') ORDER BY typname);
public static bool IsWellKnownUnqualifiedName(ReadOnlySpan<char> name) => name switch
{
"aclitem" or "bit" or "bool" or "box" or "bpchar" or "bytea" or "char" or "cid" or
"cidr" or "circle" or "date" or "float4" or "float8" or "gtsvector" or "inet" or
"int2" or "int4" or "int8" or "interval" or "json" or "jsonb" or "jsonpath" or
"line" or "lseg" or "macaddr" or "macaddr8" or "money" or "name" or "numeric" or
"oid" or "path" or "pg_brin_bloom_summary" or "pg_brin_minmax_multi_summary" or
"pg_dependencies" or "pg_lsn" or "pg_mcv_list" or "pg_ndistinct" or "pg_node_tree" or
"pg_snapshot" or "point" or "polygon" or "refcursor" or "regclass" or "regcollation" or
"regconfig" or "regdictionary" or "regnamespace" or "regoper" or "regoperator" or
"regproc" or "regprocedure" or "regrole" or "regtype" or "text" or "tid" or "time" or
"timestamp" or "timestamptz" or "timetz" or "tsquery" or "tsvector" or "txid_snapshot" or
"uuid" or "varbit" or "varchar" or "xid" or "xid8" or "xml"
=> true,
_ => false
};
// Note: The names are fully qualified in source so the strings are constants and instances will be interned after the first call.
// Uses an internal constructor bypassing the public DataTypeName constructor validation, as we don't want to store all these names on
// fields either.
public static DataTypeName Int2 => ValidatedName("pg_catalog.int2");
public static DataTypeName Int4 => ValidatedName("pg_catalog.int4");
public static DataTypeName Int4Range => ValidatedName("pg_catalog.int4range");
public static DataTypeName Int4Multirange => ValidatedName("pg_catalog.int4multirange");
public static DataTypeName Int8 => ValidatedName("pg_catalog.int8");
public static DataTypeName Int8Range => ValidatedName("pg_catalog.int8range");
public static DataTypeName Int8Multirange => ValidatedName("pg_catalog.int8multirange");
public static DataTypeName Float4 => ValidatedName("pg_catalog.float4");
public static DataTypeName Float8 => ValidatedName("pg_catalog.float8");
public static DataTypeName Numeric => ValidatedName("pg_catalog.numeric");
public static DataTypeName NumRange => ValidatedName("pg_catalog.numrange");
public static DataTypeName NumMultirange => ValidatedName("pg_catalog.nummultirange");
public static DataTypeName Money => ValidatedName("pg_catalog.money");
public static DataTypeName Bool => ValidatedName("pg_catalog.bool");
public static DataTypeName Box => ValidatedName("pg_catalog.box");
public static DataTypeName Circle => ValidatedName("pg_catalog.circle");
public static DataTypeName Line => ValidatedName("pg_catalog.line");
public static DataTypeName LSeg => ValidatedName("pg_catalog.lseg");
public static DataTypeName Path => ValidatedName("pg_catalog.path");
public static DataTypeName Point => ValidatedName("pg_catalog.point");
public static DataTypeName Polygon => ValidatedName("pg_catalog.polygon");
public static DataTypeName Bpchar => ValidatedName("pg_catalog.bpchar");
public static DataTypeName Text => ValidatedName("pg_catalog.text");
public static DataTypeName Varchar => ValidatedName("pg_catalog.varchar");
public static DataTypeName Char => ValidatedName("pg_catalog.char");
public static DataTypeName Name => ValidatedName("pg_catalog.name");
public static DataTypeName Bytea => ValidatedName("pg_catalog.bytea");
public static DataTypeName Date => ValidatedName("pg_catalog.date");
public static DataTypeName DateRange => ValidatedName("pg_catalog.daterange");
public static DataTypeName DateMultirange => ValidatedName("pg_catalog.datemultirange");
public static DataTypeName Time => ValidatedName("pg_catalog.time");
public static DataTypeName Timestamp => ValidatedName("pg_catalog.timestamp");
public static DataTypeName TsRange => ValidatedName("pg_catalog.tsrange");
public static DataTypeName TsMultirange => ValidatedName("pg_catalog.tsmultirange");
public static DataTypeName TimestampTz => ValidatedName("pg_catalog.timestamptz");
public static DataTypeName TsTzRange => ValidatedName("pg_catalog.tstzrange");
public static DataTypeName TsTzMultirange => ValidatedName("pg_catalog.tstzmultirange");
public static DataTypeName Interval => ValidatedName("pg_catalog.interval");
public static DataTypeName TimeTz => ValidatedName("pg_catalog.timetz");
public static DataTypeName Inet => ValidatedName("pg_catalog.inet");
public static DataTypeName Cidr => ValidatedName("pg_catalog.cidr");
public static DataTypeName MacAddr => ValidatedName("pg_catalog.macaddr");
public static DataTypeName MacAddr8 => ValidatedName("pg_catalog.macaddr8");
public static DataTypeName Bit => ValidatedName("pg_catalog.bit");
public static DataTypeName Varbit => ValidatedName("pg_catalog.varbit");
public static DataTypeName TsVector => ValidatedName("pg_catalog.tsvector");
public static DataTypeName TsQuery => ValidatedName("pg_catalog.tsquery");
public static DataTypeName RegClass => ValidatedName("pg_catalog.regclass");
public static DataTypeName RegCollation => ValidatedName("pg_catalog.regcollation");
public static DataTypeName RegConfig => ValidatedName("pg_catalog.regconfig");
public static DataTypeName RegDictionary => ValidatedName("pg_catalog.regdictionary");
public static DataTypeName RegNamespace => ValidatedName("pg_catalog.regnamespace");
public static DataTypeName RegOper => ValidatedName("pg_catalog.regoper");
public static DataTypeName RegOperator => ValidatedName("pg_catalog.regoperator");
public static DataTypeName RegProc => ValidatedName("pg_catalog.regproc");
public static DataTypeName RegProcedure => ValidatedName("pg_catalog.regprocedure");
public static DataTypeName RegRole => ValidatedName("pg_catalog.regrole");
public static DataTypeName Uuid => ValidatedName("pg_catalog.uuid");
public static DataTypeName Xml => ValidatedName("pg_catalog.xml");
public static DataTypeName Json => ValidatedName("pg_catalog.json");
public static DataTypeName Jsonb => ValidatedName("pg_catalog.jsonb");
public static DataTypeName Jsonpath => ValidatedName("pg_catalog.jsonpath");
public static DataTypeName Record => ValidatedName("pg_catalog.record");
public static DataTypeName RefCursor => ValidatedName("pg_catalog.refcursor");
public static DataTypeName OidVector => ValidatedName("pg_catalog.oidvector");
public static DataTypeName Int2Vector => ValidatedName("pg_catalog.int2vector");
public static DataTypeName Oid => ValidatedName("pg_catalog.oid");
public static DataTypeName Xid => ValidatedName("pg_catalog.xid");
public static DataTypeName Xid8 => ValidatedName("pg_catalog.xid8");
public static DataTypeName Cid => ValidatedName("pg_catalog.cid");
public static DataTypeName RegType => ValidatedName("pg_catalog.regtype");
public static DataTypeName Tid => ValidatedName("pg_catalog.tid");
public static DataTypeName PgLsn => ValidatedName("pg_catalog.pg_lsn");
public static DataTypeName Unknown => ValidatedName("pg_catalog.unknown");
public static DataTypeName Void => ValidatedName("pg_catalog.void");
}