/src/libtomahawk/database/Schema.sql.h

http://github.com/tomahawk-player/tomahawk · C Header · 208 lines · 201 code · 4 blank · 3 comment · 0 complexity · 3ec3ed084452706491d0d003c6caeaf4 MD5 · raw file

  1. /*
  2. This file was automatically generated from ./Schema.sql on Tue Jul 30 12:51:06 CEST 2013.
  3. */
  4. static const char * tomahawk_schema_sql =
  5. "CREATE TABLE IF NOT EXISTS oplog ("
  6. " id INTEGER PRIMARY KEY AUTOINCREMENT,"
  7. " source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE, "
  8. " guid TEXT NOT NULL,"
  9. " command TEXT NOT NULL,"
  10. " singleton BOOLEAN NOT NULL,"
  11. " compressed BOOLEAN NOT NULL,"
  12. " json TEXT NOT NULL"
  13. ");"
  14. "CREATE UNIQUE INDEX oplog_guid ON oplog(guid);"
  15. "CREATE INDEX oplog_source ON oplog(source);"
  16. "CREATE TABLE IF NOT EXISTS artist ("
  17. " id INTEGER PRIMARY KEY AUTOINCREMENT,"
  18. " name TEXT NOT NULL,"
  19. " sortname TEXT NOT NULL"
  20. ");"
  21. "CREATE UNIQUE INDEX artist_sortname ON artist(sortname);"
  22. "CREATE INDEX artist_name ON artist(name);"
  23. "CREATE TABLE IF NOT EXISTS track ("
  24. " id INTEGER PRIMARY KEY AUTOINCREMENT,"
  25. " artist INTEGER NOT NULL REFERENCES artist(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  26. " name TEXT NOT NULL,"
  27. " sortname TEXT NOT NULL"
  28. ");"
  29. "CREATE UNIQUE INDEX track_artist_sortname ON track(artist,sortname);"
  30. "CREATE INDEX track_name ON track(name);"
  31. "CREATE TABLE IF NOT EXISTS album ("
  32. " id INTEGER PRIMARY KEY AUTOINCREMENT,"
  33. " artist INTEGER NOT NULL REFERENCES artist(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  34. " name TEXT NOT NULL,"
  35. " sortname TEXT NOT NULL"
  36. ");"
  37. "CREATE UNIQUE INDEX album_artist_sortname ON album(artist,sortname);"
  38. "CREATE TABLE IF NOT EXISTS source ("
  39. " id INTEGER PRIMARY KEY AUTOINCREMENT,"
  40. " name TEXT NOT NULL,"
  41. " friendlyname TEXT,"
  42. " lastop TEXT NOT NULL DEFAULT \"\", "
  43. " isonline BOOLEAN NOT NULL DEFAULT false"
  44. ");"
  45. "CREATE UNIQUE INDEX source_name ON source(name);"
  46. "CREATE TABLE IF NOT EXISTS playlist ("
  47. " guid TEXT PRIMARY KEY,"
  48. " source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED, "
  49. " shared BOOLEAN DEFAULT false,"
  50. " title TEXT,"
  51. " info TEXT,"
  52. " creator TEXT,"
  53. " lastmodified INTEGER NOT NULL DEFAULT 0,"
  54. " currentrevision TEXT REFERENCES playlist_revision(guid) DEFERRABLE INITIALLY DEFERRED,"
  55. " dynplaylist BOOLEAN DEFAULT false,"
  56. " createdOn INTEGER NOT NULL DEFAULT 0"
  57. ");"
  58. "CREATE TABLE IF NOT EXISTS playlist_item ("
  59. " guid TEXT PRIMARY KEY,"
  60. " playlist TEXT NOT NULL REFERENCES playlist(guid) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  61. " trackname TEXT NOT NULL,"
  62. " artistname TEXT NOT NULL,"
  63. " albumname TEXT,"
  64. " annotation TEXT,"
  65. " duration INTEGER, "
  66. " addedon INTEGER NOT NULL DEFAULT 0, "
  67. " addedby INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED, "
  68. " result_hint TEXT "
  69. ");"
  70. "CREATE INDEX playlist_item_playlist ON playlist_item(playlist);"
  71. "CREATE INDEX playlist_item_trackname ON playlist_item(trackname);"
  72. "CREATE INDEX playlist_item_artistname ON playlist_item(artistname);"
  73. "CREATE TABLE IF NOT EXISTS playlist_revision ("
  74. " guid TEXT PRIMARY KEY,"
  75. " playlist TEXT NOT NULL REFERENCES playlist(guid) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  76. " entries TEXT, "
  77. " author INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  78. " timestamp INTEGER NOT NULL DEFAULT 0,"
  79. " previous_revision TEXT REFERENCES playlist_revision(guid) DEFERRABLE INITIALLY DEFERRED"
  80. ");"
  81. "CREATE TABLE IF NOT EXISTS dynamic_playlist ("
  82. " guid TEXT NOT NULL REFERENCES playlist(guid) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  83. " pltype TEXT, "
  84. " plmode INTEGER, "
  85. " autoload BOOLEAN DEFAULT true "
  86. ");"
  87. "CREATE TABLE IF NOT EXISTS dynamic_playlist_controls ("
  88. " id TEXT PRIMARY KEY,"
  89. " playlist TEXT NOT NULL REFERENCES playlist(guid) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  90. " selectedType TEXT,"
  91. " match TEXT,"
  92. " input TEXT"
  93. ");"
  94. "CREATE TABLE IF NOT EXISTS dynamic_playlist_revision ("
  95. " guid TEXT PRIMARY KEY NOT NULL REFERENCES playlist_revision(guid) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  96. " controls TEXT, "
  97. " plmode INTEGER,"
  98. " pltype TEXT"
  99. ");"
  100. "CREATE TABLE IF NOT EXISTS file ("
  101. " id INTEGER PRIMARY KEY AUTOINCREMENT,"
  102. " source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  103. " url TEXT NOT NULL, "
  104. " size INTEGER NOT NULL, "
  105. " mtime INTEGER NOT NULL, "
  106. " md5 TEXT, "
  107. " mimetype TEXT, "
  108. " duration INTEGER NOT NULL DEFAULT 0, "
  109. " bitrate INTEGER NOT NULL DEFAULT 0 "
  110. ");"
  111. "CREATE UNIQUE INDEX file_url_src_uniq ON file(source, url);"
  112. "CREATE INDEX file_source ON file(source);"
  113. "CREATE INDEX file_mtime ON file(mtime);"
  114. "CREATE TABLE IF NOT EXISTS dirs_scanned ("
  115. " name TEXT PRIMARY KEY,"
  116. " mtime INTEGER NOT NULL"
  117. ");"
  118. "CREATE TABLE IF NOT EXISTS file_join ("
  119. " file INTEGER PRIMARY KEY REFERENCES file(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  120. " artist INTEGER NOT NULL REFERENCES artist(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  121. " track INTEGER NOT NULL REFERENCES track(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  122. " album INTEGER REFERENCES album(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  123. " albumpos INTEGER,"
  124. " composer INTEGER REFERENCES artist(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  125. " discnumber INTEGER"
  126. ");"
  127. "CREATE INDEX file_join_track ON file_join(track);"
  128. "CREATE INDEX file_join_artist ON file_join(artist);"
  129. "CREATE INDEX file_join_album ON file_join(album);"
  130. "CREATE TABLE IF NOT EXISTS track_tags ("
  131. " id INTEGER PRIMARY KEY, "
  132. " source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  133. " tag TEXT NOT NULL, "
  134. " ns TEXT, "
  135. " weight float DEFAULT 1.0 "
  136. ");"
  137. "CREATE INDEX track_tags_tag ON track_tags(tag);"
  138. "CREATE TABLE IF NOT EXISTS album_tags ("
  139. " id INTEGER PRIMARY KEY, "
  140. " source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  141. " tag TEXT NOT NULL, "
  142. " ns TEXT, "
  143. " weight float DEFAULT 1.0 "
  144. ");"
  145. "CREATE INDEX album_tags_tag ON album_tags(tag);"
  146. "CREATE TABLE IF NOT EXISTS artist_tags ("
  147. " id INTEGER PRIMARY KEY, "
  148. " source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  149. " tag TEXT NOT NULL, "
  150. " ns TEXT, "
  151. " weight float DEFAULT 1.0 "
  152. ");"
  153. "CREATE INDEX artist_tags_tag ON artist_tags(tag);"
  154. "CREATE TABLE IF NOT EXISTS track_attributes ("
  155. " id INTEGER REFERENCES track(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED, "
  156. " k TEXT NOT NULL,"
  157. " v TEXT NOT NULL"
  158. ");"
  159. "CREATE INDEX track_attrib_id ON track_attributes(id);"
  160. "CREATE INDEX track_attrib_k ON track_attributes(k);"
  161. "CREATE TABLE IF NOT EXISTS collection_attributes ("
  162. " id INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED, "
  163. " k TEXT NOT NULL,"
  164. " v TEXT NOT NULL"
  165. ");"
  166. "CREATE TABLE IF NOT EXISTS social_attributes ("
  167. " id INTEGER REFERENCES track(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED, "
  168. " source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE, "
  169. " k TEXT NOT NULL,"
  170. " v TEXT NOT NULL,"
  171. " timestamp INTEGER NOT NULL DEFAULT 0"
  172. ");"
  173. "CREATE INDEX social_attrib_id ON social_attributes(id);"
  174. "CREATE INDEX social_attrib_source ON social_attributes(source);"
  175. "CREATE INDEX social_attrib_k ON social_attributes(k);"
  176. "CREATE INDEX social_attrib_timestamp ON social_attributes(timestamp);"
  177. "CREATE TABLE IF NOT EXISTS playback_log ("
  178. " id INTEGER PRIMARY KEY AUTOINCREMENT,"
  179. " source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  180. " track INTEGER REFERENCES track(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
  181. " playtime INTEGER NOT NULL, "
  182. " secs_played INTEGER NOT NULL"
  183. ");"
  184. "CREATE INDEX playback_log_source ON playback_log(source);"
  185. "CREATE INDEX playback_log_track ON playback_log(track);"
  186. "CREATE INDEX playback_log_playtime ON playback_log(playtime);"
  187. "CREATE TABLE IF NOT EXISTS http_client_auth ("
  188. " token TEXT NOT NULL PRIMARY KEY,"
  189. " website TEXT NOT NULL,"
  190. " name TEXT NOT NULL,"
  191. " ua TEXT,"
  192. " mtime INTEGER,"
  193. " permissions TEXT NOT NULL"
  194. ");"
  195. "CREATE TABLE IF NOT EXISTS settings ("
  196. " k TEXT NOT NULL PRIMARY KEY,"
  197. " v TEXT NOT NULL DEFAULT ''"
  198. ");"
  199. "INSERT INTO settings(k,v) VALUES('schema_version', '31');"
  200. ;
  201. const char * get_tomahawk_sql()
  202. {
  203. return tomahawk_schema_sql;
  204. }