1 |
drop function int4eq(xid,int4); |
2 |
drop operator = (xid,int4) ; |
3 |
|
4 |
create function int4eq(xid,int4) |
5 |
returns bool |
6 |
as '' |
7 |
language 'internal'; |
8 |
|
9 |
create operator = ( |
10 |
leftarg=xid, |
11 |
rightarg=int4, |
12 |
procedure=int4eq, |
13 |
commutator='=', |
14 |
negator='<>', |
15 |
restrict=eqsel, |
16 |
join=eqjoinsel |
17 |
); |
18 |
|
19 |
|
20 |
|
21 |
DROP OPERATOR = (bool, int4); |
22 |
DROP OPERATOR = (int4, bool); |
23 |
|
24 |
DROP FUNCTION MsAccessBool1 (bool, int4); |
25 |
CREATE FUNCTION MsAccessBool1 (bool, int4) RETURNS BOOL AS ' |
26 |
BEGIN |
27 |
IF $1 ISNULL THEN |
28 |
RETURN NULL; |
29 |
END IF; |
30 |
|
31 |
IF $1 IS TRUE THEN |
32 |
IF $2 <> 0 THEN |
33 |
RETURN TRUE; |
34 |
END IF; |
35 |
ELSE |
36 |
IF $2 = 0 THEN |
37 |
RETURN TRUE; |
38 |
END IF; |
39 |
END IF; |
40 |
RETURN FALSE; |
41 |
END; |
42 |
' LANGUAGE 'plpgsql'; |
43 |
|
44 |
CREATE OPERATOR = ( |
45 |
LEFTARG = BOOL, |
46 |
RIGHTARG = INT4, |
47 |
PROCEDURE = MsAccessBool1, |
48 |
COMMUTATOR = '=', |
49 |
NEGATOR = '<>', |
50 |
RESTRICT = EQSEL, |
51 |
JOIN = EQJOINSEL |
52 |
); |
53 |
|
54 |
|
55 |
DROP FUNCTION MsAccessBool2 (int4, bool); |
56 |
CREATE FUNCTION MsAccessBool2 (int4, bool) RETURNS BOOL AS ' |
57 |
BEGIN |
58 |
IF $2 ISNULL THEN |
59 |
RETURN NULL; |
60 |
END IF; |
61 |
|
62 |
IF $2 IS TRUE THEN |
63 |
IF $1 <> 0 THEN |
64 |
RETURN TRUE; |
65 |
END IF; |
66 |
ELSE |
67 |
IF $1 = 0 THEN |
68 |
RETURN TRUE; |
69 |
END IF; |
70 |
END IF; |
71 |
RETURN FALSE; |
72 |
END; |
73 |
' LANGUAGE 'plpgsql'; |
74 |
|
75 |
CREATE OPERATOR = ( |
76 |
LEFTARG = int4, |
77 |
RIGHTARG = bool, |
78 |
PROCEDURE = MsAccessBool2, |
79 |
COMMUTATOR = '=', |
80 |
NEGATOR = '<>', |
81 |
RESTRICT = EQSEL, |
82 |
JOIN = EQJOINSEL |
83 |
); |
84 |
|
85 |
DROP FUNCTION not (int4); |
86 |
CREATE FUNCTION not (int4) RETURNS BOOL AS ' |
87 |
BEGIN |
88 |
IF $1 IS NULL THEN |
89 |
RETURN NULL; |
90 |
END IF; |
91 |
|
92 |
IF $1 == 0 THEN |
93 |
RETURN TRUE; |
94 |
END IF; |
95 |
RETURN FALSE; |
96 |
END; |
97 |
' LANGUAGE 'plpgsql'; |
98 |
|