-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdevice_type--0.0.1.sql
138 lines (117 loc) · 3.86 KB
/
device_type--0.0.1.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
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION device_type" to load this file. \quit
--source file sql/device_type.sql
CREATE FUNCTION device_type_in(cstring)
RETURNS device_type
AS '$libdir/device_type'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION device_type_out(device_type)
RETURNS cstring
AS '$libdir/device_type'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION device_type_recv(internal)
RETURNS device_type
AS '$libdir/device_type'
LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION device_type_send(device_type)
RETURNS bytea
AS '$libdir/device_type'
LANGUAGE C IMMUTABLE STRICT;
CREATE TYPE device_type (
INPUT = device_type_in,
OUTPUT = device_type_out,
RECEIVE = device_type_recv,
SEND = device_type_send,
LIKE = "char",
CATEGORY = 'S'
);
COMMENT ON TYPE device_type IS 'a device_type internaly stored as uint8';
CREATE FUNCTION device_type_eq(device_type, device_type)
RETURNS boolean LANGUAGE C IMMUTABLE AS '$libdir/device_type';
CREATE FUNCTION device_type_ne(device_type, device_type)
RETURNS boolean LANGUAGE C IMMUTABLE AS '$libdir/device_type';
CREATE FUNCTION device_type_lt(device_type, device_type)
RETURNS boolean LANGUAGE C IMMUTABLE AS '$libdir/device_type';
CREATE FUNCTION device_type_le(device_type, device_type)
RETURNS boolean LANGUAGE C IMMUTABLE AS '$libdir/device_type';
CREATE FUNCTION device_type_gt(device_type, device_type)
RETURNS boolean LANGUAGE C IMMUTABLE AS '$libdir/device_type';
CREATE FUNCTION device_type_ge(device_type, device_type)
RETURNS boolean LANGUAGE C IMMUTABLE AS '$libdir/device_type';
CREATE FUNCTION device_type_cmp(device_type, device_type)
RETURNS integer LANGUAGE C IMMUTABLE AS '$libdir/device_type';
CREATE FUNCTION hash_device_type(device_type)
RETURNS integer LANGUAGE C IMMUTABLE AS '$libdir/device_type';
CREATE OPERATOR = (
LEFTARG = device_type,
RIGHTARG = device_type,
PROCEDURE = device_type_eq,
COMMUTATOR = '=',
NEGATOR = '<>',
RESTRICT = eqsel,
JOIN = eqjoinsel
);
COMMENT ON OPERATOR =(device_type, device_type) IS 'equals?';
CREATE OPERATOR <> (
LEFTARG = device_type,
RIGHTARG = device_type,
PROCEDURE = device_type_ne,
COMMUTATOR = '<>',
NEGATOR = '=',
RESTRICT = neqsel,
JOIN = neqjoinsel
);
COMMENT ON OPERATOR <>(device_type, device_type) IS 'not equals?';
CREATE OPERATOR < (
LEFTARG = device_type,
RIGHTARG = device_type,
PROCEDURE = device_type_lt,
COMMUTATOR = > ,
NEGATOR = >= ,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
COMMENT ON OPERATOR <(device_type, device_type) IS 'less-than';
CREATE OPERATOR <= (
LEFTARG = device_type,
RIGHTARG = device_type,
PROCEDURE = device_type_le,
COMMUTATOR = >= ,
NEGATOR = > ,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel
);
COMMENT ON OPERATOR <=(device_type, device_type) IS 'less-than-or-equal';
CREATE OPERATOR > (
LEFTARG = device_type,
RIGHTARG = device_type,
PROCEDURE = device_type_gt,
COMMUTATOR = < ,
NEGATOR = <= ,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
COMMENT ON OPERATOR >(device_type, device_type) IS 'greater-than';
CREATE OPERATOR >= (
LEFTARG = device_type,
RIGHTARG = device_type,
PROCEDURE = device_type_ge,
COMMUTATOR = <= ,
NEGATOR = < ,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel
);
COMMENT ON OPERATOR >=(device_type, device_type) IS 'greater-than-or-equal';
CREATE OPERATOR CLASS btree_device_type_ops
DEFAULT FOR TYPE device_type USING btree
AS
OPERATOR 1 < ,
OPERATOR 2 <= ,
OPERATOR 3 = ,
OPERATOR 4 >= ,
OPERATOR 5 > ,
FUNCTION 1 device_type_cmp(device_type, device_type);
CREATE OPERATOR CLASS hash_device_type_ops
DEFAULT FOR TYPE device_type USING hash AS
OPERATOR 1 = ,
FUNCTION 1 hash_device_type(device_type);