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   increment integer
288 );
289
290 CREATE INDEX track_idx_cd ON track (cd);
291
292 CREATE UNIQUE INDEX track_cd_position ON track (cd, position);
293
294 CREATE UNIQUE INDEX track_cd_title ON track (cd, title);
295
296 --
297 -- Table: cd
298 --
299 CREATE TABLE cd (
300   cdid INTEGER PRIMARY KEY NOT NULL,
301   artist integer NOT NULL,
302   title varchar(100) NOT NULL,
303   year varchar(100) NOT NULL,
304   genreid integer,
305   single_track integer
306 );
307
308 CREATE INDEX cd_idx_artist ON cd (artist);
309
310 CREATE INDEX cd_idx_genreid ON cd (genreid);
311
312 CREATE INDEX cd_idx_single_track ON cd (single_track);
313
314 CREATE UNIQUE INDEX cd_artist_title ON cd (artist, title);
315
316 --
317 -- Table: collection_object
318 --
319 CREATE TABLE collection_object (
320   collection integer NOT NULL,
321   object integer NOT NULL,
322   PRIMARY KEY (collection, object)
323 );
324
325 CREATE INDEX collection_object_idx_collection ON collection_object (collection);
326
327 CREATE INDEX collection_object_idx_object ON collection_object (object);
328
329 --
330 -- Table: lyrics
331 --
332 CREATE TABLE lyrics (
333   lyric_id INTEGER PRIMARY KEY NOT NULL,
334   track_id integer NOT NULL
335 );
336
337 CREATE INDEX lyrics_idx_track_id ON lyrics (track_id);
338
339 --
340 -- Table: cd_artwork
341 --
342 CREATE TABLE cd_artwork (
343   cd_id INTEGER PRIMARY KEY NOT NULL
344 );
345
346 CREATE INDEX cd_artwork_idx_cd_id ON cd_artwork (cd_id);
347
348 --
349 -- Table: liner_notes
350 --
351 CREATE TABLE liner_notes (
352   liner_id INTEGER PRIMARY KEY NOT NULL,
353   notes varchar(100) NOT NULL
354 );
355
356 CREATE INDEX liner_notes_idx_liner_id ON liner_notes (liner_id);
357
358 --
359 -- Table: lyric_versions
360 --
361 CREATE TABLE lyric_versions (
362   id INTEGER PRIMARY KEY NOT NULL,
363   lyric_id integer NOT NULL,
364   text varchar(100) NOT NULL
365 );
366
367 CREATE INDEX lyric_versions_idx_lyric_id ON lyric_versions (lyric_id);
368
369 --
370 -- Table: tags
371 --
372 CREATE TABLE tags (
373   tagid INTEGER PRIMARY KEY NOT NULL,
374   cd integer NOT NULL,
375   tag varchar(100) NOT NULL
376 );
377
378 CREATE INDEX tags_idx_cd ON tags (cd);
379
380 --
381 -- Table: cd_to_producer
382 --
383 CREATE TABLE cd_to_producer (
384   cd integer NOT NULL,
385   producer integer NOT NULL,
386   attribute integer,
387   PRIMARY KEY (cd, producer)
388 );
389
390 CREATE INDEX cd_to_producer_idx_cd ON cd_to_producer (cd);
391
392 CREATE INDEX cd_to_producer_idx_producer ON cd_to_producer (producer);
393
394 --
395 -- Table: images
396 --
397 CREATE TABLE images (
398   id INTEGER PRIMARY KEY NOT NULL,
399   artwork_id integer NOT NULL,
400   name varchar(100) NOT NULL,
401   data blob
402 );
403
404 CREATE INDEX images_idx_artwork_id ON images (artwork_id);
405
406 --
407 -- Table: twokeys
408 --
409 CREATE TABLE twokeys (
410   artist integer NOT NULL,
411   cd integer NOT NULL,
412   PRIMARY KEY (artist, cd)
413 );
414
415 CREATE INDEX twokeys_idx_artist ON twokeys (artist);
416
417 --
418 -- Table: artwork_to_artist
419 --
420 CREATE TABLE artwork_to_artist (
421   artwork_cd_id integer NOT NULL,
422   artist_id integer NOT NULL,
423   PRIMARY KEY (artwork_cd_id, artist_id)
424 );
425
426 CREATE INDEX artwork_to_artist_idx_artist_id ON artwork_to_artist (artist_id);
427
428 CREATE INDEX artwork_to_artist_idx_artwork_cd_id ON artwork_to_artist (artwork_cd_id);
429
430 --
431 -- Table: fourkeys_to_twokeys
432 --
433 CREATE TABLE fourkeys_to_twokeys (
434   f_foo integer NOT NULL,
435   f_bar integer NOT NULL,
436   f_hello integer NOT NULL,
437   f_goodbye integer NOT NULL,
438   t_artist integer NOT NULL,
439   t_cd integer NOT NULL,
440   autopilot character NOT NULL,
441   pilot_sequence integer,
442   PRIMARY KEY (f_foo, f_bar, f_hello, f_goodbye, t_artist, t_cd)
443 );
444
445 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);
446
447 CREATE INDEX fourkeys_to_twokeys_idx_t_artist_t_cd ON fourkeys_to_twokeys (t_artist, t_cd);
448
449 --
450 -- View: year2000cds
451 --
452 CREATE VIEW year2000cds AS
453     SELECT cdid, artist, title FROM cd WHERE year ='2000';
454
455 COMMIT;