summaryrefslogtreecommitdiffstats
path: root/contrib/citext/citext--1.4--1.5.sql
blob: 5ae522b7dadb9a70b484c8b6367557cc009ee77d (plain)
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
/* contrib/citext/citext--1.4--1.5.sql */

-- complain if script is sourced in psql, rather than via ALTER EXTENSION
\echo Use "ALTER EXTENSION citext UPDATE TO '1.5'" to load this file. \quit

ALTER OPERATOR <= (citext, citext) SET (
    RESTRICT   = scalarlesel,
    JOIN       = scalarlejoinsel
);

ALTER OPERATOR >= (citext, citext) SET (
    RESTRICT   = scalargesel,
    JOIN       = scalargejoinsel
);

CREATE FUNCTION citext_pattern_lt( citext, citext )
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;

CREATE FUNCTION citext_pattern_le( citext, citext )
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;

CREATE FUNCTION citext_pattern_gt( citext, citext )
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;

CREATE FUNCTION citext_pattern_ge( citext, citext )
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;

CREATE OPERATOR ~<~ (
    LEFTARG    = CITEXT,
    RIGHTARG   = CITEXT,
    NEGATOR    = ~>=~,
    COMMUTATOR = ~>~,
    PROCEDURE  = citext_pattern_lt,
    RESTRICT   = scalarltsel,
    JOIN       = scalarltjoinsel
);

CREATE OPERATOR ~<=~ (
    LEFTARG    = CITEXT,
    RIGHTARG   = CITEXT,
    NEGATOR    = ~>~,
    COMMUTATOR = ~>=~,
    PROCEDURE  = citext_pattern_le,
    RESTRICT   = scalarltsel,
    JOIN       = scalarltjoinsel
);

CREATE OPERATOR ~>=~ (
    LEFTARG    = CITEXT,
    RIGHTARG   = CITEXT,
    NEGATOR    = ~<~,
    COMMUTATOR = ~<=~,
    PROCEDURE  = citext_pattern_ge,
    RESTRICT   = scalargtsel,
    JOIN       = scalargtjoinsel
);

CREATE OPERATOR ~>~ (
    LEFTARG    = CITEXT,
    RIGHTARG   = CITEXT,
    NEGATOR    = ~<=~,
    COMMUTATOR = ~<~,
    PROCEDURE  = citext_pattern_gt,
    RESTRICT   = scalargtsel,
    JOIN       = scalargtjoinsel
);

CREATE FUNCTION citext_pattern_cmp(citext, citext)
RETURNS int4
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;

CREATE OPERATOR CLASS citext_pattern_ops
FOR TYPE CITEXT USING btree AS
    OPERATOR    1   ~<~  (citext, citext),
    OPERATOR    2   ~<=~ (citext, citext),
    OPERATOR    3   =    (citext, citext),
    OPERATOR    4   ~>=~ (citext, citext),
    OPERATOR    5   ~>~  (citext, citext),
    FUNCTION    1   citext_pattern_cmp(citext, citext);