File: 080.sql

package info (click to toggle)
zeitgeist 1.0.4-5
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 2,440 kB
  • sloc: python: 8,116; cpp: 3,006; ansic: 1,298; sql: 1,192; makefile: 951; javascript: 753; sh: 156
file content (279 lines) | stat: -rw-r--r-- 9,639 bytes parent folder | download | duplicates (5)
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE uri
			(id INTEGER PRIMARY KEY, value VARCHAR UNIQUE);
INSERT INTO "uri" VALUES(1,'file:///tmp');
INSERT INTO "uri" VALUES(2,'http://www.google.de');
INSERT INTO "uri" VALUES(3,'belly');
INSERT INTO "uri" VALUES(5,'file:///tmp/foo.txt');
INSERT INTO "uri" VALUES(6,'big bang');
CREATE TABLE interpretation
			(id INTEGER PRIMARY KEY, value VARCHAR UNIQUE);
INSERT INTO "interpretation" VALUES(1,'stfu:OpenEvent');
INSERT INTO "interpretation" VALUES(2,'stfu:Document');
INSERT INTO "interpretation" VALUES(3,'stfu:ShalalalalaEvent');
INSERT INTO "interpretation" VALUES(4,'stfu:Image');
INSERT INTO "interpretation" VALUES(5,'stfu:FoobarEvent');
INSERT INTO "interpretation" VALUES(6,'stfu:Test');
CREATE TABLE manifestation
			(id INTEGER PRIMARY KEY, value VARCHAR UNIQUE);
INSERT INTO "manifestation" VALUES(1,'stfu:YourActivity');
INSERT INTO "manifestation" VALUES(2,'http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RemoteDataObject');
INSERT INTO "manifestation" VALUES(3,'stfu:BooActivity');
INSERT INTO "manifestation" VALUES(4,'stfu:Ethereal');
INSERT INTO "manifestation" VALUES(5,'stfu:SomeActivity');
CREATE TABLE mimetype
			(id INTEGER PRIMARY KEY, value VARCHAR UNIQUE);
INSERT INTO "mimetype" VALUES(1,'meat/raw');
INSERT INTO "mimetype" VALUES(2,'text/plain');
CREATE TABLE actor
			(id INTEGER PRIMARY KEY, value VARCHAR UNIQUE);
INSERT INTO "actor" VALUES(1,'firefox');
INSERT INTO "actor" VALUES(2,'geany');
INSERT INTO "actor" VALUES(3,'gedit');
CREATE TABLE text
			(id INTEGER PRIMARY KEY, value VARCHAR UNIQUE);
INSERT INTO "text" VALUES(1,'this item has not text... rly!');
CREATE TABLE payload
			(id INTEGER PRIMARY KEY, value BLOB);
CREATE TABLE storage
			(id INTEGER PRIMARY KEY,
			 value VARCHAR UNIQUE,
			 state INTEGER,
			 icon VARCHAR,
			 display_name VARCHAR);
INSERT INTO "storage" VALUES(1,'net',0,NULL,NULL);
INSERT INTO "storage" VALUES(2,'368c991f-8b59-4018-8130-3ce0ec944157',NULL,NULL,NULL);
CREATE TABLE event (
			id INTEGER,
			timestamp INTEGER,
			interpretation INTEGER,
			manifestation INTEGER,
			actor INTEGER,
			payload INTEGER,
			subj_id INTEGER,
			subj_interpretation INTEGER,
			subj_manifestation INTEGER,
			subj_origin INTEGER,
			subj_mimetype INTEGER,
			subj_text INTEGER,
			subj_storage INTEGER,
			origin INTEGER,
			subj_id_current INTEGER,
			CONSTRAINT interpretation_fk FOREIGN KEY(interpretation)
				REFERENCES interpretation(id) ON DELETE CASCADE,
			CONSTRAINT manifestation_fk FOREIGN KEY(manifestation)
				REFERENCES manifestation(id) ON DELETE CASCADE,
			CONSTRAINT actor_fk FOREIGN KEY(actor)
				REFERENCES actor(id) ON DELETE CASCADE,
			CONSTRAINT origin_fk FOREIGN KEY(origin)
				REFERENCES uri(id) ON DELETE CASCADE,
			CONSTRAINT payload_fk FOREIGN KEY(payload)
				REFERENCES payload(id) ON DELETE CASCADE,
			CONSTRAINT subj_id_fk FOREIGN KEY(subj_id)
				REFERENCES uri(id) ON DELETE CASCADE,
			CONSTRAINT subj_id_current_fk FOREIGN KEY(subj_id_current)
				REFERENCES uri(id) ON DELETE CASCADE,
			CONSTRAINT subj_interpretation_fk FOREIGN KEY(subj_interpretation)
				REFERENCES interpretation(id) ON DELETE CASCADE,
			CONSTRAINT subj_manifestation_fk FOREIGN KEY(subj_manifestation)
				REFERENCES manifestation(id) ON DELETE CASCADE,
			CONSTRAINT subj_origin_fk FOREIGN KEY(subj_origin)
				REFERENCES uri(id) ON DELETE CASCADE,
			CONSTRAINT subj_mimetype_fk FOREIGN KEY(subj_mimetype)
				REFERENCES mimetype(id) ON DELETE CASCADE,
			CONSTRAINT subj_text_fk FOREIGN KEY(subj_text)
				REFERENCES text(id) ON DELETE CASCADE,
			CONSTRAINT subj_storage_fk FOREIGN KEY(subj_storage)
				REFERENCES storage(id) ON DELETE CASCADE,
			CONSTRAINT unique_event UNIQUE (timestamp, interpretation, manifestation, actor, subj_id)
		);
INSERT INTO "event" VALUES(1,1347652042579,1,1,1,'',2,2,2,1,1,1,2,NULL,2);
INSERT INTO "event" VALUES(2,143,3,3,2,'',5,4,4,1,2,1,2,3,5);
INSERT INTO "event" VALUES(3,133,5,5,3,'',2,6,2,1,2,1,2,6,2);
CREATE TABLE schema_version
			(schema VARCHAR PRIMARY KEY ON CONFLICT REPLACE, version INT);
INSERT INTO "schema_version" VALUES('core',4);
CREATE UNIQUE INDEX uri_value ON uri(value);
CREATE UNIQUE INDEX interpretation_value
			ON interpretation(value);
CREATE UNIQUE INDEX manifestation_value
			ON manifestation(value);
CREATE UNIQUE INDEX mimetype_value
			ON mimetype(value);
CREATE UNIQUE INDEX actor_value
			ON actor(value);
CREATE UNIQUE INDEX text_value
			ON text(value);
CREATE UNIQUE INDEX storage_value
			ON storage(value);
CREATE INDEX event_id
			ON event(id);
CREATE INDEX event_timestamp
			ON event(timestamp);
CREATE INDEX event_interpretation
			ON event(interpretation);
CREATE INDEX event_manifestation
			ON event(manifestation);
CREATE INDEX event_actor
			ON event(actor);
CREATE INDEX event_origin
			ON event(origin);
CREATE INDEX event_subj_id
			ON event(subj_id);
CREATE INDEX event_subj_id_current
			ON event(subj_id_current);
CREATE INDEX event_subj_interpretation
			ON event(subj_interpretation);
CREATE INDEX event_subj_manifestation
			ON event(subj_manifestation);
CREATE INDEX event_subj_origin
			ON event(subj_origin);
CREATE INDEX event_subj_mimetype
			ON event(subj_mimetype);
CREATE INDEX event_subj_text
			ON event(subj_text);
CREATE INDEX event_subj_storage
			ON event(subj_storage);
CREATE TRIGGER fkdc_event_interpretation
				BEFORE DELETE ON event
				WHEN ((SELECT COUNT(*) FROM event WHERE interpretation=OLD.interpretation) < 2)
				BEGIN
					DELETE FROM interpretation WHERE id=OLD.interpretation;
				END;
CREATE TRIGGER fkdc_event_subj_interpretation
				BEFORE DELETE ON event
				WHEN ((SELECT COUNT(*) FROM event WHERE subj_interpretation=OLD.subj_interpretation) < 2)
				BEGIN
					DELETE FROM interpretation WHERE id=OLD.subj_interpretation;
				END;
CREATE TRIGGER fkdc_event_manifestation
				BEFORE DELETE ON event
				WHEN ((SELECT COUNT(*) FROM event WHERE manifestation=OLD.manifestation) < 2)
				BEGIN
					DELETE FROM manifestation WHERE id=OLD.manifestation;
				END;
CREATE TRIGGER fkdc_event_subj_manifestation
				BEFORE DELETE ON event
				WHEN ((SELECT COUNT(*) FROM event WHERE subj_manifestation=OLD.subj_manifestation) < 2)
				BEGIN
					DELETE FROM manifestation WHERE id=OLD.subj_manifestation;
				END;
CREATE TRIGGER fkdc_event_actor
				BEFORE DELETE ON event
				WHEN ((SELECT COUNT(*) FROM event WHERE actor=OLD.actor) < 2)
				BEGIN
					DELETE FROM actor WHERE id=OLD.actor;
				END;
CREATE TRIGGER fkdc_event_payload
				BEFORE DELETE ON event
				WHEN ((SELECT COUNT(*) FROM event WHERE payload=OLD.payload) < 2)
				BEGIN
					DELETE FROM payload WHERE id=OLD.payload;
				END;
CREATE TRIGGER fkdc_event_subj_mimetype
				BEFORE DELETE ON event
				WHEN ((SELECT COUNT(*) FROM event WHERE subj_mimetype=OLD.subj_mimetype) < 2)
				BEGIN
					DELETE FROM mimetype WHERE id=OLD.subj_mimetype;
				END;
CREATE TRIGGER fkdc_event_subj_text
				BEFORE DELETE ON event
				WHEN ((SELECT COUNT(*) FROM event WHERE subj_text=OLD.subj_text) < 2)
				BEGIN
					DELETE FROM text WHERE id=OLD.subj_text;
				END;
CREATE TRIGGER fkdc_event_subj_storage
				BEFORE DELETE ON event
				WHEN ((SELECT COUNT(*) FROM event WHERE subj_storage=OLD.subj_storage) < 2)
				BEGIN
					DELETE FROM storage WHERE id=OLD.subj_storage;
				END;
CREATE TRIGGER fkdc_event_uri_1
			BEFORE DELETE ON event
			WHEN ((
				SELECT COUNT(*)
				FROM event
				WHERE
					origin=OLD.subj_id
					OR subj_id=OLD.subj_id
					OR subj_id_current=OLD.subj_id
					OR subj_origin=OLD.subj_id
				) < 2)
			BEGIN
				DELETE FROM uri WHERE id=OLD.subj_id;
			END;
CREATE TRIGGER fkdc_event_uri_2
			BEFORE DELETE ON event
			WHEN ((
				SELECT COUNT(*)
				FROM event
				WHERE
					origin=OLD.subj_origin
					OR subj_id=OLD.subj_origin
					OR subj_id_current=OLD.subj_origin
					OR subj_origin=OLD.subj_origin
				) < 2)
			BEGIN
				DELETE FROM uri WHERE id=OLD.subj_origin;
			END;
CREATE TRIGGER fkdc_event_uri_3
			BEFORE DELETE ON event
			WHEN ((
				SELECT COUNT(*)
				FROM event
				WHERE
					origin=OLD.subj_id_current
					OR subj_id=OLD.subj_id_current
					OR subj_id_current=OLD.subj_id_current
					OR subj_origin=OLD.subj_id_current
				) < 2)
			BEGIN
				DELETE FROM uri WHERE id=OLD.subj_id_current;
			END;
CREATE TRIGGER fkdc_event_uri_4
			BEFORE DELETE ON event
			WHEN ((
				SELECT COUNT(*)
				FROM event
				WHERE
					origin=OLD.origin
					OR subj_id=OLD.origin
					OR subj_id_current=OLD.origin
					OR subj_origin=OLD.origin
				) < 2)
			BEGIN
				DELETE FROM uri WHERE id=OLD.origin;
			END;
CREATE VIEW event_view AS
			SELECT event.id,
				event.timestamp,
				event.interpretation,
				event.manifestation,
				event.actor,
				(SELECT value FROM payload WHERE payload.id=event.payload)
					AS payload,
				(SELECT value FROM uri WHERE uri.id=event.subj_id)
					AS subj_uri,
				event.subj_id, -- #this directly points to an id in the uri table
				event.subj_interpretation,
				event.subj_manifestation,
				event.subj_origin,
				(SELECT value FROM uri WHERE uri.id=event.subj_origin)
					AS subj_origin_uri,
				event.subj_mimetype,
				(SELECT value FROM text WHERE text.id = event.subj_text)
					AS subj_text,
				(SELECT value FROM storage
					WHERE storage.id=event.subj_storage) AS subj_storage,
				(SELECT state FROM storage
					WHERE storage.id=event.subj_storage) AS subj_storage_state,
				event.origin,
				(SELECT value FROM uri WHERE uri.id=event.origin)
					AS event_origin_uri,
				(SELECT value FROM uri WHERE uri.id=event.subj_id_current)
					AS subj_current_uri,
				event.subj_id_current
			FROM event
;
COMMIT;