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