-
Notifications
You must be signed in to change notification settings - Fork 7
/
emailaddr--0.sql
140 lines (118 loc) · 2.95 KB
/
emailaddr--0.sql
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
SET client_min_messages = warning;
CREATE TYPE emailaddr;
CREATE FUNCTION emailaddr_in(cstring) RETURNS emailaddr
IMMUTABLE
STRICT
LANGUAGE C
AS '$libdir/emailaddr';
CREATE FUNCTION emailaddr_out(emailaddr) RETURNS cstring
IMMUTABLE
STRICT
LANGUAGE C
AS '$libdir/emailaddr';
CREATE TYPE emailaddr (
INTERNALLENGTH = -1,
INPUT = emailaddr_in,
OUTPUT = emailaddr_out
);
CREATE CAST (emailaddr AS text) WITH INOUT AS ASSIGNMENT;
CREATE CAST (text AS emailaddr) WITH INOUT AS ASSIGNMENT;
CREATE FUNCTION emailaddr_lt(emailaddr, emailaddr) RETURNS boolean
IMMUTABLE
STRICT
LANGUAGE C
AS '$libdir/emailaddr';
CREATE FUNCTION emailaddr_le(emailaddr, emailaddr) RETURNS boolean
IMMUTABLE
STRICT
LANGUAGE C
AS '$libdir/emailaddr';
CREATE FUNCTION emailaddr_eq(emailaddr, emailaddr) RETURNS boolean
IMMUTABLE
STRICT
LANGUAGE C
AS '$libdir/emailaddr';
CREATE FUNCTION emailaddr_ne(emailaddr, emailaddr) RETURNS boolean
IMMUTABLE
STRICT
LANGUAGE C
AS '$libdir/emailaddr';
CREATE FUNCTION emailaddr_ge(emailaddr, emailaddr) RETURNS boolean
IMMUTABLE
STRICT
LANGUAGE C
AS '$libdir/emailaddr';
CREATE FUNCTION emailaddr_gt(emailaddr, emailaddr) RETURNS boolean
IMMUTABLE
STRICT
LANGUAGE C
AS '$libdir/emailaddr';
CREATE FUNCTION emailaddr_cmp(emailaddr, emailaddr) RETURNS integer
IMMUTABLE
STRICT
LANGUAGE C
AS '$libdir/emailaddr';
CREATE OPERATOR < (
LEFTARG = emailaddr,
RIGHTARG = emailaddr,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel,
PROCEDURE = emailaddr_lt
);
CREATE OPERATOR <= (
LEFTARG = emailaddr,
RIGHTARG = emailaddr,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel,
PROCEDURE = emailaddr_le
);
CREATE OPERATOR = (
LEFTARG = emailaddr,
RIGHTARG = emailaddr,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES,
MERGES,
PROCEDURE = emailaddr_eq
);
CREATE OPERATOR <> (
LEFTARG = emailaddr,
RIGHTARG = emailaddr,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel,
PROCEDURE = emailaddr_ne
);
CREATE OPERATOR >= (
LEFTARG = emailaddr,
RIGHTARG = emailaddr,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel,
PROCEDURE = emailaddr_ge
);
CREATE OPERATOR > (
LEFTARG = emailaddr,
RIGHTARG = emailaddr,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel,
PROCEDURE = emailaddr_gt
);
CREATE OPERATOR CLASS emailaddr_ops
DEFAULT FOR TYPE emailaddr USING btree AS
OPERATOR 1 < ,
OPERATOR 2 <= ,
OPERATOR 3 = ,
OPERATOR 4 >= ,
OPERATOR 5 > ,
FUNCTION 1 emailaddr_cmp(emailaddr, emailaddr);