Kai Elwert
5dd58ea7a8
Use DAAP collation for browse queries
2010-08-29 12:07:07 +02:00
Kai Elwert
b5e3163d35
Use DAAP collation for group queries
2010-08-29 12:07:07 +02:00
Kai Elwert
f79dbc93cb
Introduce DAAP-specific collation function for SQLite
2010-08-29 12:07:07 +02:00
Kai Elwert
1eec8e1a7b
Modify groups query to group by album name and with COLLATE NOCASE
2010-08-14 11:58:21 +02:00
Kai Elwert
dce9eb8d1f
Use COLLATE NOCASE for browse queries
2010-08-14 11:55:11 +02:00
Julien BLACHE
1d35afbe62
Fixup file modes
2010-08-06 17:27:56 +02:00
Julien BLACHE
5d69a8e34c
Consolidate sort clauses
2010-08-05 18:28:02 +02:00
Kai Elwert
20486ee0dd
Implement sorting for smart playlists queries
...
This will be used by the Title view in Remote.
2010-08-05 18:25:34 +02:00
Julien BLACHE
058e2e9b2b
Add config variables save/test/clear for 64bit integer as hex string
2010-08-04 19:17:21 +02:00
Julien BLACHE
e396906fee
Protect db_perthread_deinit() against NULL hdl
2010-07-17 14:41:11 +02:00
Julien BLACHE
35d6ac4cfa
Add unicode_fixup_mfi() to check & reencode UTF-8 fields in struct media_file_info
2010-06-21 17:50:09 +02:00
Julien BLACHE
dc95a04562
Add optional sorting clause to Q_ITEMS
2010-05-02 11:44:43 +02:00
Julien BLACHE
4dc8f11887
Handle database upgrade v9 -> v10
2010-05-02 11:44:43 +02:00
Julien BLACHE
74cc5a7a13
Add config variables save/fetch for integer variables
2010-05-02 11:44:43 +02:00
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
Julien BLACHE
6a1c01fa15
Allow playlists from different files to have the same title
2009-11-28 10:55:42 +01:00
Julien BLACHE
1bd3b3a076
Fix paths and rename the project
2009-06-12 13:00:34 +02:00
Julien BLACHE
e1c0b6d4b7
Move *_offsetof() macro definitions to db.h
2009-06-11 23:17:17 +02:00
Julien BLACHE
1f92052409
Rename the songs table
2009-06-11 23:03:53 +02:00
Julien BLACHE
3cadbdb1e3
Remove unused db_file_fetch_bypath()
2009-06-11 20:46:11 +02:00
Julien BLACHE
0ad20e5220
Rework process_media_file() and related DB support routines
...
Avoid pulling all the file info from the DB in process_media_file() as
anything besides the file id and timestamp is not used at all.
2009-06-11 20:44:22 +02:00
Julien BLACHE
0a8c171187
Store playlist items paths instead of resolving to file ids
...
This allows for more dynamic playlists now that files can move
around while we're running.
2009-06-11 20:27:31 +02:00
Julien BLACHE
3b7ff30c1b
Remove useless force_update field in media file info
2009-06-11 19:15:22 +02:00
Julien BLACHE
538d81b402
Always rescan and update playlists
...
This is needed to keep relative playlist items up to date in the
database when the playlist file moves around.
2009-06-11 19:04:21 +02:00
Julien BLACHE
c589d92b14
Use db_get_count() wherever applicable; simplify db_{pl,files}_get_count() prototypes
2009-06-11 18:41:50 +02:00
Julien BLACHE
2d1c35b855
Count playlist items on the fly
2009-06-11 18:28:01 +02:00
Julien BLACHE
30204cbb76
Remove unused toplevel watch attribute
2009-06-11 17:36:13 +02:00
Julien BLACHE
c81b33bd02
Bring db_watch_delete_bywd() prototype back in line with other db_watch_delete_by*()
2009-06-11 17:35:32 +02:00
Julien BLACHE
07e22d8870
Add watch query/enumeration
2009-06-11 16:44:49 +02:00
Julien BLACHE
129ca8dfff
Add watch deletion by path/match/cookie routines
2009-06-11 16:15:35 +02:00
Julien BLACHE
267ab7cb1a
Rename db_query_get_count() to db_get_count()
...
Make that a generic helper, given it's used outside queries.
2009-06-11 15:45:49 +02:00
Julien BLACHE
cef1636415
Add watch-moving routines
2009-06-11 15:42:51 +02:00
Julien BLACHE
87aa24454d
Add watch-marking routines
2009-06-11 15:24:10 +02:00
Julien BLACHE
56127b3ecc
Add file and playlist disable-by-match routines
2009-06-11 15:09:10 +02:00
Julien BLACHE
d63da9f08f
Add file and playlist enable/disable routines
2009-06-10 22:28:54 +02:00
Julien BLACHE
9ff8913dd6
Add file and playlist deletion (by path) routines
2009-06-10 22:28:49 +02:00
Julien BLACHE
a9697eccdf
Add storage of inotify watch info
2009-06-10 22:28:43 +02:00
Julien BLACHE
bfa2488343
Add support for disabled files and playlists
2009-06-10 19:11:12 +02:00
Julien BLACHE
4e38d168e1
Set and check database schema version
2009-06-10 19:04:18 +02:00
Julien BLACHE
7314dd21c7
Purge old files and playlists after bulk scan
2009-06-10 19:04:18 +02:00
Julien BLACHE
f2c677462b
Add new database code
2009-06-10 19:04:12 +02:00