Julien BLACHE
f696aa321e
Fix error message in db_file_add()
2010-05-02 08:23:21 +02:00
Julien BLACHE
465c10ded3
Rework database version check to error out on newer databases
2010-05-02 08:23:21 +02:00
Julien BLACHE
00d6381f15
Introduce and use db_blocking_{prepare_v2,step}
...
Make use of the SQLite3 unlock notify API to wait for the database to
become available. From the SQLite3 sample code for the unlock notify API.
This requires SQLite3 to be built with SQLITE_ENABLE_UNLOCK_NOTIFY.
2010-05-02 08:23:21 +02:00
Julien BLACHE
f9454aa4a3
Introduce db_exec(), replacing sqlite3_exec()
2010-05-02 08:23:21 +02:00
Julien BLACHE
dc18860dc5
Enable SQLite3 shared-cache mode
...
This requires SQLite 3.5.0+ for per-process (as opposed to per-thread)
shared-cache support.
It also enables the use of the unlock notify API.
2010-05-02 08:22:41 +02:00
Julien BLACHE
d2932896a3
Switch SQLite3 to SQLITE_CONFIG_MULTITHREAD mode
2010-05-02 08:22:41 +02:00
Julien BLACHE
0411720a58
Perform explicit sqlite3 init/deinit
2010-04-26 18:24:09 +02:00
Julien BLACHE
b7ec65963d
Constify data tables where possible
2010-03-25 21:40:17 +01:00
Dustin King
e6d75534d7
Make database location a configuration item
2010-03-21 11:33:05 +01:00
Julien BLACHE
4996965b34
Handle database upgrade v8 -> v9
2010-03-19 19:14:34 +01:00
Julien BLACHE
19b6780a3c
Remove provisions for multi-library support
...
It is now clear that multi-library support will not happen, so remove whatever
provisions were in the code for that.
It comes with a small change to the configuration file, too.
With this, DB schema version went to 9.
2010-03-19 19:09:18 +01:00
Julien BLACHE
b0e10fb97d
Add groups queries
2010-03-07 15:23:40 +01:00
Julien BLACHE
641e5462cc
Rename pl_id member of struct query_params
2010-03-07 15:23:40 +01:00
Julien BLACHE
6a144cd670
Add db_file_path_byid()
2010-03-07 11:13:38 +01:00
Julien BLACHE
07146e3261
Handle database upgrade v7 -> v8
2010-03-06 19:10:49 +01:00
Julien BLACHE
224ef48137
Make album groups persistent
...
Store groups (only album groups supported at the moment) in the DB,
so their ids are persistent for the duration of the forked-daapd session.
Those ids are used to, among other things, retrieve artwork, so we must
provide ourselves some persistence here.
This brings us to schema version 8.
2010-03-06 19:02:49 +01:00
Julien BLACHE
88dde32fc7
Recompute all songalbumids at startup
...
Due to the two Murmur64 implementations for 64 and 32bit machines, the
hash is not compatible when moving the SQLite DB between 32/64 bit hosts.
So we'll recompute all the songalbumids at startup, just in case.
2010-03-06 18:59:58 +01:00
Julien BLACHE
0e9a8674d9
Handle database upgrade v6 -> v7
2010-03-06 17:29:48 +01:00
Julien BLACHE
facb9957d8
Move daap_songalbumid() to its now-unique callsite
2010-03-06 17:29:48 +01:00
Julien BLACHE
748cca63be
Maintain songalbumid inside the files table
...
songalbumid is used a lot in queries from Remote; computing the hash for
each row is a major waste of time on big libraries and slow machines, so
let's store the hash in the table.
This brings us to schema version 7.
2010-03-06 17:29:37 +01:00
Julien BLACHE
d384bc13a3
Handle database upgrade v5 -> v6
2010-01-30 17:30:22 +01:00
Julien BLACHE
762d80e0bb
Add Remote pairing info storage facility
...
This brings schema_version to 6.
2010-01-30 17:30:22 +01:00
Julien BLACHE
21098d4c89
Fix query and path for playlist #1
...
The query was erroneously put into the path column; also change the query
for 1 = 1 instead of disabled = 0 which is redundant.
2010-01-27 18:29:59 +01:00
Julien BLACHE
672e4697ae
Handle database schema upgrade from v4 to v5
...
Force a library rescan to fixup media_kind for regular videos.
2010-01-24 11:16:31 +01:00
Ace Jones
12e0c9268d
Unspecified videos are "movies", media_kind=2
...
media_kind=2 (Movies) indicates a regular video, that is, a video that
isn't a TV Show (media_kind=64).
Also fix up the system playlist for Movies, and that brings us to DB
schema_version 5.
2010-01-24 11:11:08 +01:00
Julien BLACHE
67b3a8c2da
Handle database schema upgrade from v3 to v4
2010-01-21 17:54:50 +01:00
Ace Jones
3fef4334bb
Add support for smart playlists and some default ones
...
Add system playlists for Music, Movies, TV Shows, equivalent to iTunes.
2010-01-21 17:52:51 +01:00
Julien BLACHE
fefdb23409
Simplify DB init routine
2010-01-21 17:51:44 +01:00
Julien BLACHE
944bf3f132
Check database version first, if that fails, try DB init
...
Doing it the other way around is a guaranteed way to run into issues when
a schema upgrade is needed.
2010-01-21 17:51:00 +01:00
Julien BLACHE
bf2c2b68c0
Revert "Remove default playlist & special case"
...
This reverts commit af95cee79b
.
The default playlist is actually used by iTunes, so revert its removal. I
misremembered it being there for RSP.
2010-01-14 17:39:56 +01:00
Julien BLACHE
af95cee79b
Remove default playlist & special case
...
The default playlist (called "Library") doesn't actually have a purpose; I
though it was needed for RSP (SoundBridge) but it doesn't look like it makes
any difference with or without this playlist.
2010-01-13 19:56:15 +01:00
Ace Jones
5cfbe75bae
Add database code for groups queries
2010-01-10 14:43:22 +01:00
Julien BLACHE
974a74a833
Update copyright notices for 2010
2010-01-05 19:34:00 +01:00
Julien BLACHE
60a06dfb0a
Change album and album_artist column definitions to be NOT NULL
...
Unfortunately SQLite doesn't support adding constraints with ALTER TABLE,
so this constraint cannot be added upon upgrade.
2010-01-05 19:23:52 +01:00
Julien BLACHE
26d603aa61
Introduce generic database upgrade function
2010-01-05 19:18:30 +01:00
Julien BLACHE
d273c72a4b
Add database upgrade to populate album_artist for every file
...
Bump schema_version to 3, even though this isn't exactly a schema upgrade.
2010-01-05 18:25:23 +01:00
Ace Jones
f2965f8ac6
Make daap_songalbumid available as a function inside SQLite
2010-01-05 18:25:18 +01:00
Ace Jones
995c212dc7
Support query filter in playlist list query
...
iTunes uses query filters in DAAP containers requests, so support that here.
2009-12-30 18:53:55 +01:00
Julien BLACHE
371725b0da
Fix segfault in db_file_update
...
Fix wrong type (%Q instead of %d) for tv_episode_sort and tv_season_num in
the SQL query for db_file_update().
2009-12-27 08:19:16 +01:00
Julien BLACHE
a52dcd264c
Force a full rescan after DB migration
2009-12-27 08:17:25 +01:00
Julien BLACHE
66716841ea
Handle database schema upgrade from v1 to v2
2009-12-26 09:20:51 +01:00
Julien BLACHE
42a7715c69
Reindent data tables, no code changes
2009-12-26 08:44:55 +01:00
Ace Jones
a0ec19ada6
Add TV metadata to the database
...
With this, we're bumping SCHEMA_VERSION to 2.
2009-12-26 08:39:39 +01:00
Ace Jones
a0b015f1e4
Accomodate TV meta-data in internal structures
...
Add new fields for TV-related metadata to struct media_file_info and
struct db_media_file_info.
2009-12-26 08:28:28 +01:00
Julien BLACHE
a6cbb2a8ec
Introduce db_file_id_byfilebase and db_file_id_byfile
...
File id lookup by basepath + filename and filename only.
2009-11-28 10:55:43 +01:00
Julien BLACHE
66cd10dc52
Introduce db_file_id_byurl and share code with db_file_id_bypath
2009-11-28 10:55:42 +01:00
Julien BLACHE
ecb2991881
Add db_pl_fetch_bytitlepath
2009-11-28 10:55:42 +01:00
Julien BLACHE
04ce09e5be
Rename db_pl_add_item -> db_pl_add_item_bypath
...
For consistency with db_pl_add_item_byid & similar database functions.
2009-11-28 10:55:42 +01:00
Julien BLACHE
a45f46f3eb
Introduce db_pl_add_item_byid()
2009-11-28 10:55:42 +01:00
Julien BLACHE
1a397ca79b
Check that db_pl_fetch_byquery only gets 1 query result
2009-11-28 10:55:42 +01:00