~ubuntu-branches/ubuntu/karmic/firebird2.1/karmic

« back to all changes in this revision

Viewing changes to src/msgs/msg.sql

  • Committer: Bazaar Package Importer
  • Author(s): Damyan Ivanov
  • Date: 2008-05-26 23:59:25 UTC
  • Revision ID: james.westby@ubuntu.com-20080526235925-2pnqj6nxpppoeaer
Tags: upstream-2.1.0.17798-0.ds2
ImportĀ upstreamĀ versionĀ 2.1.0.17798-0.ds2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
CREATE GENERATOR CHANGE_NUM;
 
2
 
 
3
/* Domain definitions */
 
4
CREATE DOMAIN D_ACTION AS BLOB SUB_TYPE 0 SEGMENT SIZE 0;
 
5
CREATE DOMAIN CHANGE_DATE AS TIMESTAMP;
 
6
CREATE DOMAIN CHANGE_NUMBER AS INTEGER;
 
7
CREATE DOMAIN CHANGE_WHO AS VARCHAR(32);
 
8
CREATE DOMAIN CLASS AS CHAR(10);
 
9
CREATE DOMAIN DESCRIPTION AS BLOB SUB_TYPE 0 SEGMENT SIZE 80;
 
10
CREATE DOMAIN EXPLANATION AS BLOB SUB_TYPE 0 SEGMENT SIZE 0;
 
11
CREATE DOMAIN FACILITY AS CHAR(10);
 
12
CREATE DOMAIN FAC_CODE AS SMALLINT;
 
13
CREATE DOMAIN D_FILE AS VARCHAR(30);
 
14
CREATE DOMAIN FLAGS AS SMALLINT;
 
15
CREATE DOMAIN LANGUAGE AS VARCHAR(10);
 
16
CREATE DOMAIN LAST_CHANGE AS TIMESTAMP;
 
17
CREATE DOMAIN LOCALE AS VARCHAR(20);
 
18
CREATE DOMAIN MAX_NUMBER AS SMALLINT;
 
19
CREATE DOMAIN MODULE AS VARCHAR(32);
 
20
CREATE DOMAIN NUMBER AS SMALLINT;
 
21
CREATE DOMAIN OLD_SEQUENCE AS SMALLINT;
 
22
CREATE DOMAIN ROUTINE AS VARCHAR(32);
 
23
CREATE DOMAIN SEQUENCE AS SMALLINT;
 
24
CREATE DOMAIN SEVERITY AS SMALLINT;
 
25
CREATE DOMAIN SEVERITY_TEXT AS CHAR(7);
 
26
CREATE DOMAIN SQL_CLASS AS CHAR(2);
 
27
CREATE DOMAIN SQL_CODE AS SMALLINT;
 
28
CREATE DOMAIN SQL_SUBCLASS AS CHAR(3);
 
29
CREATE DOMAIN SYMBOL AS VARCHAR(32);
 
30
CREATE DOMAIN TEMPLATE AS BLOB SUB_TYPE 0 SEGMENT SIZE 256;
 
31
CREATE DOMAIN TEXT AS VARCHAR(118);
 
32
CREATE DOMAIN TRANSLATOR AS VARCHAR(32);
 
33
CREATE DOMAIN TRANS_DATE AS TIMESTAMP;
 
34
CREATE DOMAIN TRANS_NOTES AS BLOB SUB_TYPE 0 SEGMENT SIZE 0;
 
35
CREATE DOMAIN D_TYPE AS CHAR(12);
 
36
CREATE DOMAIN D_VALUE AS INTEGER;
 
37
CREATE DOMAIN VMS_CODE AS INTEGER;
 
38
 
 
39
COMMIT;
 
40
 
 
41
/* Tables */
 
42
 
 
43
CREATE TABLE FACILITIES (
 
44
    LAST_CHANGE  LAST_CHANGE,
 
45
    FACILITY     FACILITY NOT NULL CONSTRAINT FAC_2 UNIQUE,
 
46
    FAC_CODE     FAC_CODE NOT NULL CONSTRAINT FAC_1 PRIMARY KEY,
 
47
    MAX_NUMBER   MAX_NUMBER
 
48
);
 
49
 
 
50
CREATE TABLE HISTORY (
 
51
    CHANGE_NUMBER    CHANGE_NUMBER NOT NULL CONSTRAINT HIS_1 PRIMARY KEY,
 
52
    CHANGE_WHO       CHANGE_WHO NOT NULL,
 
53
    CHANGE_DATE      CHANGE_DATE NOT NULL,
 
54
    FAC_CODE         FAC_CODE NOT NULL /*REFERENCES FACILITIES*/,
 
55
    NUMBER           NUMBER NOT NULL,
 
56
    OLD_TEXT         TEXT,
 
57
    OLD_ACTION       D_ACTION,
 
58
    OLD_EXPLANATION  EXPLANATION,
 
59
    LOCALE           LOCALE,
 
60
    CODE             COMPUTED BY (fac_code * 10000 + number)
 
61
);
 
62
 
 
63
CREATE TABLE LOCALES (
 
64
    LOCALE       LOCALE NOT NULL CONSTRAINT PRIMARY_LOCALES PRIMARY KEY,
 
65
    DESCRIPTION  DESCRIPTION
 
66
);
 
67
 
 
68
CREATE TABLE MESSAGES (
 
69
    SYMBOL       SYMBOL,
 
70
    ROUTINE      ROUTINE,
 
71
    MODULE       MODULE,
 
72
    TRANS_NOTES  TRANS_NOTES,
 
73
    FAC_CODE     FAC_CODE NOT NULL REFERENCES FACILITIES,
 
74
    NUMBER       NUMBER NOT NULL,
 
75
    FLAGS        FLAGS,
 
76
    TEXT         TEXT,
 
77
    "ACTION"     D_ACTION,
 
78
    EXPLANATION  EXPLANATION,
 
79
    CODE         COMPUTED BY (fac_code * 10000 + number),
 
80
    CONSTRAINT MSG_1 UNIQUE(FAC_CODE, NUMBER)
 
81
);
 
82
 
 
83
CREATE TABLE SYMBOLS (
 
84
    SYMBOL    SYMBOL NOT NULL CONSTRAINT SYM2 PRIMARY KEY,
 
85
    "VALUE"   D_VALUE,
 
86
    CLASS     CLASS,
 
87
    "TYPE"    D_TYPE,
 
88
    SEQUENCE  SEQUENCE
 
89
);
 
90
 
 
91
CREATE TABLE SYSTEM_ERRORS (
 
92
    SQL_CODE       SQL_CODE,
 
93
    SQL_CLASS      SQL_CLASS,
 
94
    SQL_SUBCLASS   SQL_SUBCLASS,
 
95
    FAC_CODE       FAC_CODE NOT NULL REFERENCES FACILITIES,
 
96
    NUMBER         NUMBER NOT NULL,
 
97
    VMS_CODE       VMS_CODE,
 
98
    GDS_SYMBOL     SYMBOL NOT NULL CONSTRAINT SYSERR2 UNIQUE,
 
99
    SEVERITY       SEVERITY,
 
100
    SEVERITY_TEXT  SEVERITY_TEXT,
 
101
    CODE           COMPUTED BY (FAC_CODE * 10000 + NUMBER),
 
102
    SQL_STATE      COMPUTED BY (SQL_CLASS || SQL_SUBCLASS),
 
103
        CONSTRAINT SYSERR1 UNIQUE(FAC_CODE, NUMBER)
 
104
);
 
105
 
 
106
CREATE TABLE TEMPLATES (
 
107
    LANGUAGE  LANGUAGE,
 
108
    "FILE"    D_FILE,
 
109
    TEMPLATE  TEMPLATE
 
110
);
 
111
 
 
112
COMMIT;
 
113
 
 
114
CREATE TABLE TRANSMSGS (
 
115
    ENG_TEXT         TEXT,
 
116
    ENG_ACTION       D_ACTION,
 
117
    ENG_EXPLANATION  EXPLANATION,
 
118
    FAC_CODE         FAC_CODE NOT NULL REFERENCES FACILITIES,
 
119
    NUMBER           NUMBER NOT NULL,
 
120
    LOCALE           LOCALE NOT NULL CONSTRAINT UNKNOWN_LOCALE REFERENCES LOCALES,
 
121
    TEXT             TEXT,
 
122
    "ACTION"         D_ACTION,
 
123
    EXPLANATION      EXPLANATION,
 
124
    TRANSLATOR       TRANSLATOR,
 
125
    TRANS_DATE       TRANS_DATE,
 
126
    CODE             COMPUTED BY (fac_code * 10000 + number),
 
127
        CONSTRAINT TMSG_1 UNIQUE(LOCALE, FAC_CODE, NUMBER)
 
128
);
 
129
 
 
130
COMMIT;
 
131
 
 
132
/*  Index definitions for all user tables */
 
133
CREATE INDEX SYM1 ON SYMBOLS(CLASS, "TYPE");
 
134
 
 
135
COMMIT;
 
136
 
 
137
SET TERM ^ ;
 
138
 
 
139
/* Triggers */
 
140
CREATE TRIGGER FACILITIES$STORE FOR FACILITIES 
 
141
ACTIVE BEFORE INSERT POSITION 0 AS
 
142
begin
 
143
        new.last_change = CURRENT_TIMESTAMP;
 
144
end^
 
145
 
 
146
CREATE TRIGGER FACILITIES$MODIFY FOR FACILITIES
 
147
ACTIVE BEFORE UPDATE POSITION 0 AS
 
148
begin
 
149
        new.last_change = CURRENT_TIMESTAMP;
 
150
end^
 
151
 
 
152
CREATE TRIGGER MESSAGES$MODIFY FOR MESSAGES 
 
153
ACTIVE AFTER UPDATE POSITION 0 AS
 
154
begin
 
155
        update facilities
 
156
                set last_change = current_timestamp
 
157
                where fac_code = new.fac_code;
 
158
end^
 
159
 
 
160
CREATE TRIGGER MSGS$MODIFY FOR MESSAGES 
 
161
ACTIVE AFTER UPDATE POSITION 1 AS
 
162
begin
 
163
   if (new.text <> old.text) then
 
164
      begin
 
165
                insert into history (change_number, change_date, change_who, fac_code,
 
166
                                                         number, old_text, old_action, old_explanation, locale)
 
167
                        values (gen_id(change_num, 1), current_timestamp, current_user,
 
168
                                        old.fac_code, old.number, old.text, old."ACTION",
 
169
                                        old.explanation, 'c_pg');
 
170
      end
 
171
end^
 
172
 
 
173
CREATE TRIGGER TRANSMSGS$STORE FOR TRANSMSGS 
 
174
ACTIVE BEFORE INSERT POSITION 0 AS
 
175
begin
 
176
   if (new.translator is NULL) then
 
177
           new.translator = current_user;
 
178
   if (new.trans_date is NULL) then
 
179
           new.trans_date = current_timestamp;
 
180
end^
 
181
 
 
182
CREATE TRIGGER TRANSMSGS$MODIFY FOR TRANSMSGS 
 
183
ACTIVE AFTER UPDATE POSITION 0 AS
 
184
begin
 
185
   if (new.text <> old.text) then
 
186
      begin
 
187
                insert into history (change_number, change_date, change_who, fac_code,
 
188
                                                         number, old_text, old_action, old_explanation, locale)
 
189
                        values (gen_id(change_num, 1), current_timestamp, current_user,
 
190
                                        old.fac_code, old.number, old.text, old."ACTION",
 
191
                                        old.explanation, old.locale);
 
192
      end
 
193
end^
 
194
 
 
195
COMMIT^
 
196
SET TERM ; ^
 
197
 
 
198
-- Grant permission to the general audience to read these tables.
 
199
GRANT SELECT ON FACILITIES    TO PUBLIC;
 
200
GRANT SELECT ON HISTORY       TO PUBLIC;
 
201
GRANT SELECT ON LOCALES       TO PUBLIC;
 
202
GRANT SELECT ON MESSAGES      TO PUBLIC;
 
203
GRANT SELECT ON SYMBOLS       TO PUBLIC;
 
204
GRANT SELECT ON SYSTEM_ERRORS TO PUBLIC;
 
205
GRANT SELECT ON TEMPLATES     TO PUBLIC;
 
206
GRANT SELECT ON TRANSMSGS     TO PUBLIC;
 
207
 
 
208
COMMIT;
 
209