/[sql]/access_fix.sql
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /access_fix.sql

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Fri Feb 22 17:28:19 2002 UTC (22 years, 1 month ago) by dpavlin
Branch: MAIN
some operators to make access work better with pgsql database over ODBC

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    

  ViewVC Help
Powered by ViewVC 1.1.26