Part one of the sybase work by Caelum (mostly reviewed)
[dbsrgits/DBIx-Class.git] / t / lib / sqlite.sql
1 -- Created on Tue Aug 25 12:34:34 2009
2 -- 
3
4
5 BEGIN TRANSACTION;
6
7 --
8 -- Table: artist
9 --
10 CREATE TABLE artist (
11   artistid INTEGER PRIMARY KEY NOT NULL,
12   name varchar(100),
13   rank integer NOT NULL DEFAULT '13',
14   charfield char(10)
15 );
16
17 CREATE INDEX artist_name_hookidx ON artist (name);
18
19 --
20 -- Table: bindtype_test
21 --
22 CREATE TABLE bindtype_test (
23   id INTEGER PRIMARY KEY NOT NULL,
24   bytea blob,
25   blob blob,
26   clob clob
27 );
28
29 --
30 -- Table: collection
31 --
32 CREATE TABLE collection (
33   collectionid INTEGER PRIMARY KEY NOT NULL,
34   name varchar(100) NOT NULL
35 );
36
37 --
38 -- Table: employee
39 --
40 CREATE TABLE employee (
41   employee_id INTEGER PRIMARY KEY NOT NULL,
42   position integer NOT NULL,
43   group_id integer,
44   group_id_2 integer,
45   group_id_3 integer,
46   name varchar(100)
47 );
48
49 --
50 -- Table: encoded
51 --
52 CREATE TABLE encoded (
53   id INTEGER PRIMARY KEY NOT NULL,
54   encoded varchar(100)
55 );
56
57 --
58 -- Table: event
59 --
60 CREATE TABLE event (
61   id INTEGER PRIMARY KEY NOT NULL,
62   starts_at datetime NOT NULL,
63   created_on timestamp NOT NULL,
64   varchar_date varchar(20),
65   varchar_datetime varchar(20),
66   skip_inflation datetime,
67   ts_without_tz datetime
68 );
69
70 --
71 -- Table: file_columns
72 --
73 CREATE TABLE file_columns (
74   id INTEGER PRIMARY KEY NOT NULL,
75   file varchar(255) NOT NULL
76 );
77
78 --
79 -- Table: fourkeys
80 --
81 CREATE TABLE fourkeys (
82   foo integer NOT NULL,
83   bar integer NOT NULL,
84   hello integer NOT NULL,
85   goodbye integer NOT NULL,
86   sensors character(10) NOT NULL,
87   read_count integer,
88   PRIMARY KEY (foo, bar, hello, goodbye)
89 );
90
91 --
92 -- Table: genre
93 --
94 CREATE TABLE genre (
95   genreid INTEGER PRIMARY KEY NOT NULL,
96   name varchar(100) NOT NULL
97 );
98
99 CREATE UNIQUE INDEX genre_name ON genre (name);
100
101 --
102 -- Table: link
103 --
104 CREATE TABLE link (
105   id INTEGER PRIMARY KEY NOT NULL,
106   url varchar(100),
107   title varchar(100)
108 );
109
110 --
111 -- Table: money_test
112 --
113 CREATE TABLE money_test (
114   id INTEGER PRIMARY KEY NOT NULL,
115   amount money
116 );
117
118 --
119 -- Table: noprimarykey
120 --
121 CREATE TABLE noprimarykey (
122   foo integer NOT NULL,
123   bar integer NOT NULL,
124   baz integer NOT NULL
125 );
126
127 CREATE UNIQUE INDEX foo_bar ON noprimarykey (foo, bar);
128
129 --
130 -- Table: onekey
131 --
132 CREATE TABLE onekey (
133   id INTEGER PRIMARY KEY NOT NULL,
134   artist integer NOT NULL,
135   cd integer NOT NULL
136 );
137
138 --
139 -- Table: owners
140 --
141 CREATE TABLE owners (
142   id INTEGER PRIMARY KEY NOT NULL,
143   name varchar(100) NOT NULL
144 );
145
146 --
147 -- Table: producer
148 --
149 CREATE TABLE producer (
150   producerid INTEGER PRIMARY KEY NOT NULL,
151   name varchar(100) NOT NULL
152 );
153
154 CREATE UNIQUE INDEX prod_name ON producer (name);
155
156 --
157 -- Table: self_ref
158 --
159 CREATE TABLE self_ref (
160   id INTEGER PRIMARY KEY NOT NULL,
161   name varchar(100) NOT NULL
162 );
163
164 --
165 -- Table: sequence_test
166 --
167 CREATE TABLE sequence_test (
168   pkid1 integer NOT NULL,
169   pkid2 integer NOT NULL,
170   nonpkid integer NOT NULL,
171   name varchar(100),
172   PRIMARY KEY (pkid1, pkid2)
173 );
174
175 --
176 -- Table: serialized
177 --
178 CREATE TABLE serialized (
179   id INTEGER PRIMARY KEY NOT NULL,
180   serialized text NOT NULL
181 );
182
183 --
184 -- Table: treelike
185 --
186 CREATE TABLE treelike (
187   id INTEGER PRIMARY KEY NOT NULL,
188   parent integer,
189   name varchar(100) NOT NULL
190 );
191
192 CREATE INDEX treelike_idx_parent ON treelike (parent);
193
194 --
195 -- Table: twokeytreelike
196 --
197 CREATE TABLE twokeytreelike (
198   id1 integer NOT NULL,
199   id2 integer NOT NULL,
200   parent1 integer NOT NULL,
201   parent2 integer NOT NULL,
202   name varchar(100) NOT NULL,
203   PRIMARY KEY (id1, id2)
204 );
205
206 CREATE INDEX twokeytreelike_idx_parent1_parent2 ON twokeytreelike (parent1, parent2);
207
208 CREATE UNIQUE INDEX tktlnameunique ON twokeytreelike (name);
209
210 --
211 -- Table: typed_object
212 --
213 CREATE TABLE typed_object (
214   objectid INTEGER PRIMARY KEY NOT NULL,
215   type varchar(100) NOT NULL,
216   value varchar(100) NOT NULL
217 );
218
219 --
220 -- Table: artist_undirected_map
221 --
222 CREATE TABLE artist_undirected_map (
223   id1 integer NOT NULL,
224   id2 integer NOT NULL,
225   PRIMARY KEY (id1, id2)
226 );
227
228 CREATE INDEX artist_undirected_map_idx_id1 ON artist_undirected_map (id1);
229
230 CREATE INDEX artist_undirected_map_idx_id2 ON artist_undirected_map (id2);
231
232 --
233 -- Table: bookmark
234 --
235 CREATE TABLE bookmark (
236   id INTEGER PRIMARY KEY NOT NULL,
237   link integer
238 );
239
240 CREATE INDEX bookmark_idx_link ON bookmark (link);
241
242 --
243 -- Table: books
244 --
245 CREATE TABLE books (
246   id INTEGER PRIMARY KEY NOT NULL,
247   source varchar(100) NOT NULL,
248   owner integer NOT NULL,
249   title varchar(100) NOT NULL,
250   price integer
251 );
252
253 CREATE INDEX books_idx_owner ON books (owner);
254
255 --
256 -- Table: forceforeign
257 --
258 CREATE TABLE forceforeign (
259   artist INTEGER PRIMARY KEY NOT NULL,
260   cd integer NOT NULL
261 );
262
263 CREATE INDEX forceforeign_idx_artist ON forceforeign (artist);
264
265 --
266 -- Table: self_ref_alias
267 --
268 CREATE TABLE self_ref_alias (
269   self_ref integer NOT NULL,
270   alias integer NOT NULL,
271   PRIMARY KEY (self_ref, alias)
272 );
273
274 CREATE INDEX self_ref_alias_idx_alias ON self_ref_alias (alias);
275
276 CREATE INDEX self_ref_alias_idx_self_ref ON self_ref_alias (self_ref);
277
278 --
279 -- Table: track
280 --
281 CREATE TABLE track (
282   trackid INTEGER PRIMARY KEY NOT NULL,
283   cd integer NOT NULL,
284   position int NOT NULL,
285   title varchar(100) NOT NULL,
286   last_updated_on datetime,
287   last_updated_at datetime,
288   small_dt smalldatetime
289 );
290
291 CREATE INDEX track_idx_cd ON track (cd);
292
293 CREATE UNIQUE INDEX track_cd_position ON track (cd, position);
294
295 CREATE UNIQUE INDEX track_cd_title ON track (cd, title);
296
297 --
298 -- Table: cd
299 --
300 CREATE TABLE cd (
301   cdid INTEGER PRIMARY KEY NOT NULL,
302   artist integer NOT NULL,
303   title varchar(100) NOT NULL,
304   year varchar(100) NOT NULL,
305   genreid integer,
306   single_track integer
307 );
308
309 CREATE INDEX cd_idx_artist ON cd (artist);
310
311 CREATE INDEX cd_idx_genreid ON cd (genreid);
312
313 CREATE INDEX cd_idx_single_track ON cd (single_track);
314
315 CREATE UNIQUE INDEX cd_artist_title ON cd (artist, title);
316
317 --
318 -- Table: collection_object
319 --
320 CREATE TABLE collection_object (
321   collection integer NOT NULL,
322   object integer NOT NULL,
323   PRIMARY KEY (collection, object)
324 );
325
326 CREATE INDEX collection_object_idx_collection ON collection_object (collection);
327
328 CREATE INDEX collection_object_idx_object ON collection_object (object);
329
330 --
331 -- Table: lyrics
332 --
333 CREATE TABLE lyrics (
334   lyric_id INTEGER PRIMARY KEY NOT NULL,
335   track_id integer NOT NULL
336 );
337
338 CREATE INDEX lyrics_idx_track_id ON lyrics (track_id);
339
340 --
341 -- Table: cd_artwork
342 --
343 CREATE TABLE cd_artwork (
344   cd_id INTEGER PRIMARY KEY NOT NULL
345 );
346
347 CREATE INDEX cd_artwork_idx_cd_id ON cd_artwork (cd_id);
348
349 --
350 -- Table: liner_notes
351 --
352 CREATE TABLE liner_notes (
353   liner_id INTEGER PRIMARY KEY NOT NULL,
354   notes varchar(100) NOT NULL
355 );
356
357 CREATE INDEX liner_notes_idx_liner_id ON liner_notes (liner_id);
358
359 --
360 -- Table: lyric_versions
361 --
362 CREATE TABLE lyric_versions (
363   id INTEGER PRIMARY KEY NOT NULL,
364   lyric_id integer NOT NULL,
365   text varchar(100) NOT NULL
366 );
367
368 CREATE INDEX lyric_versions_idx_lyric_id ON lyric_versions (lyric_id);
369
370 --
371 -- Table: tags
372 --
373 CREATE TABLE tags (
374   tagid INTEGER PRIMARY KEY NOT NULL,
375   cd integer NOT NULL,
376   tag varchar(100) NOT NULL
377 );
378
379 CREATE INDEX tags_idx_cd ON tags (cd);
380
381 --
382 -- Table: cd_to_producer
383 --
384 CREATE TABLE cd_to_producer (
385   cd integer NOT NULL,
386   producer integer NOT NULL,
387   attribute integer,
388   PRIMARY KEY (cd, producer)
389 );
390
391 CREATE INDEX cd_to_producer_idx_cd ON cd_to_producer (cd);
392
393 CREATE INDEX cd_to_producer_idx_producer ON cd_to_producer (producer);
394
395 --
396 -- Table: images
397 --
398 CREATE TABLE images (
399   id INTEGER PRIMARY KEY NOT NULL,
400   artwork_id integer NOT NULL,
401   name varchar(100) NOT NULL,
402   data blob
403 );
404
405 CREATE INDEX images_idx_artwork_id ON images (artwork_id);
406
407 --
408 -- Table: twokeys
409 --
410 CREATE TABLE twokeys (
411   artist integer NOT NULL,
412   cd integer NOT NULL,
413   PRIMARY KEY (artist, cd)
414 );
415
416 CREATE INDEX twokeys_idx_artist ON twokeys (artist);
417
418 --
419 -- Table: artwork_to_artist
420 --
421 CREATE TABLE artwork_to_artist (
422   artwork_cd_id integer NOT NULL,
423   artist_id integer NOT NULL,
424   PRIMARY KEY (artwork_cd_id, artist_id)
425 );
426
427 CREATE INDEX artwork_to_artist_idx_artist_id ON artwork_to_artist (artist_id);
428
429 CREATE INDEX artwork_to_artist_idx_artwork_cd_id ON artwork_to_artist (artwork_cd_id);
430
431 --
432 -- Table: fourkeys_to_twokeys
433 --
434 CREATE TABLE fourkeys_to_twokeys (
435   f_foo integer NOT NULL,
436   f_bar integer NOT NULL,
437   f_hello integer NOT NULL,
438   f_goodbye integer NOT NULL,
439   t_artist integer NOT NULL,
440   t_cd integer NOT NULL,
441   autopilot character NOT NULL,
442   pilot_sequence integer,
443   PRIMARY KEY (f_foo, f_bar, f_hello, f_goodbye, t_artist, t_cd)
444 );
445
446 CREATE INDEX fourkeys_to_twokeys_idx_f_foo_f_bar_f_hello_f_goodbye ON fourkeys_to_twokeys (f_foo, f_bar, f_hello, f_goodbye);
447
448 CREATE INDEX fourkeys_to_twokeys_idx_t_artist_t_cd ON fourkeys_to_twokeys (t_artist, t_cd);
449
450 --
451 -- View: year2000cds
452 --
453 CREATE VIEW year2000cds AS
454     SELECT cdid, artist, title FROM cd WHERE year ='2000';
455
456 COMMIT;