1 |
dpavlin |
1.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 |
|
|
|