Commit Graph

209 Commits

Author SHA1 Message Date
whatdoineed2do/Ray
4dcc9b602e [db] add review 'flag' column to files/queue tbls 2021-09-06 20:15:35 +01:00
ejurgensen
bd91a238ec [db] Upgrade schema to 21.06, change default of query_limit to 0 2021-02-10 20:04:56 +01:00
ejurgensen
79b4a070b0 [db] Change type of "disabled" to int64
Before the value in the db was not read straight into mfi->disabled and
pli->disabled, instead it was evaluated as != 0, so the ->disabled field
would just be true or false. This was also necessary when INOTIFY_FAKE_COOKIE
(1 << 32) was written to the DB, because it could not fit in the uint32 of
mfi->disabled/pli->disabled.

I consider this juggling poor practice, so with this change it is read straight
in and out, always as a int64.
2021-02-09 15:16:06 +01:00
ejurgensen
689d1ce3dd [db] Refactor queue_item functions
- Use prepared statements
- Add qi_mfi_map that defines mapping between mfi, dbmfi and qi
- Use qi_cols_map/qi_mfi_map for iteration (avoid duplicating field references)
- Stick to "qi" as name for a queue_item in db.c (more similar to mfi/pli/gri)
- Some renaming and other minor stuff in db.c's queue code
2021-02-09 15:16:06 +01:00
ejurgensen
f48fae20e2 [db] Remove unused db_speaker_clear_all() 2020-10-19 20:39:03 +02:00
chme
a74a3e5add [db] Add fields time_added, time_played, seek to group object 2020-08-30 09:08:41 +02:00
chme
8afae4a41b [db] Fetch additional metadata for artist and album in group query 2020-08-30 09:08:41 +02:00
ejurgensen
de5060bc57 [db] Remove a FIXME, not much of an issue 2020-08-10 23:03:37 +02:00
whatdoineed2do/Ray
d567bd004a [db,conf,json] new backup endpoint 2020-07-24 20:07:42 +02:00
ejurgensen
1b74966ef1 [db] Remove HAVE_SPOTIFY_H conditionals, not required
The db functions don't depend on the Spotify library, so remove conditionals
2020-07-05 20:43:51 +02:00
ejurgensen
0e19102efd [artwork] Define MEDIA_KIND_ALL as USHRT_MAX instead of individual num values 2020-05-02 00:52:52 +02:00
ejurgensen
9d1f15d3c2 [db] Define MEDIA_KIND_ALL 2020-05-02 00:52:52 +02:00
whatdoineed2do/Ray
e7c62086a2 [db] add artwork_url to playlist_info 2020-04-30 20:28:36 +02:00
ejurgensen
153eb40b6d [db] Remove some definitions of ARTWORK_XXX
The artwork db field should only be used to save media file artwork metadata,
which mostly means whether it has embedded artwork or not. It should not be
used to save where we found artwork for the file, since that is not static.

So this commit removes for instance ARTWORK_OWN, ARTWORK_DIR etc., which we
weren't using anyway.
2020-04-25 22:07:10 +02:00
ejurgensen
b19314e814 [db] Add cleanup to db_pl_delete(), remove db_pl_purge() 2020-04-04 21:07:16 +02:00
whatdoineed2do/Ray
57b0626906 [db] RSS support: new PL_RSS db value and new pl purge 2020-04-04 21:07:16 +02:00
ejurgensen
f61dfa0529 [db] db_pl_delete_bypath() must also delete disabled playlists
Otherwise we end up with a bunch of disabled playlists in the db.
2020-03-29 00:33:44 +01:00
whatdoineed2do/Ray
286525a85c [db] inc playcount using filter 2020-03-23 13:39:59 +00:00
chme
36ebf7d06c [jsonapi] Add support for playlist folders 2020-02-24 21:27:53 +01:00
ejurgensen
5736217315 [db] Change prototype of db_admin_getxxx() functions
Makes it possible for caller to distinguish between "not set" and "set to 0".
2020-02-23 20:30:35 +01:00
ejurgensen
00de0a3f76 [db] Fixup commit #1edfadc 2020-02-23 20:25:22 +01:00
whatdoineed2do/Ray
78194807db [db] add S_RELEASEDATE and idx 2020-02-23 20:25:22 +01:00
ejurgensen
77a8de3bea [scan] Fix db_pl_add() so it always returns correct id 2020-02-08 10:55:15 +01:00
ejurgensen
c5988665b0 [db] Expose db_pl_fetch_byid() 2020-02-08 10:55:15 +01:00
ejurgensen
08e89ffd4f [db] Use prepared statements for playlists (add/update) 2020-02-08 10:55:15 +01:00
ejurgensen
6f3c315dfc [db] Add missing declarations of media_kind column in commit 40c7522 (fixes issue #836) 2019-11-03 00:16:20 +01:00
whatdoineed2do/Ray
b126a2fbc0 [db] add 'channels' to file/queue tbl 2019-06-12 16:52:02 +01:00
whatdoineed2do/Ray
c796db251d [db] schema v20.01 support codec type/bitrate/samplerate in queue tbl 2019-06-12 16:50:52 +01:00
ejurgensen
4f5966c9ff [db] Speed up Q_PL query used by e.g. '/databases/1/containers' request
The previous solution would use subqueries to count the number of items and
streams in each playlist, which means that response time gets pretty slow if
there are many playlists.

This commit also includes a number of lesser db code changes.
2019-05-30 21:19:40 +02:00
whatdoineed2do/Ray
7e02eb510d [db] add songartistid to queue tbl 2019-02-12 09:21:39 +00:00
chme
0ded6d63bf [db/jsonapi] New admin value for Last-Modified in JSON API header
This adds a new timestamp value "db_modified" into the admin db table.
In addition to the existing "db_update" admin value, this value is also
updated if rating, play-/skip-count or seek changes for a
media_info_file (files db table).

This should improve the caching behavior in clients of the JSON API
(especially the player web interface) in refreshing its data if some of
this values changes.
2019-01-31 09:42:53 +01:00
chme
7d0e48eb0e [db] Add support for resetting play- and skip-count 2019-01-31 09:42:53 +01:00
ejurgensen
c70f96fdec [db] Fix integer overflow in bind_mfi (ref issue #683)
Also drop DB_TYPE_CHAR since it's not really being used.
2019-01-30 23:34:00 +01:00
chme
937d1e3f5f [db] Add "group" attribute to query_params and allow grouping files 2019-01-28 22:40:25 +01:00
ejurgensen
a4c254e6e7 [db] Recreate v20 files table, so that new constraints take effect if upgrading
The constraints on songalbumid and songartistid where changed with v20, so we
need to make sure they take effect when upgrading.

This commit tries to do the table recreation like sqlite recommends and without
manually crafted copy queries that are probably prone to errors.

Since we are recreating anyway, this commit also reorders the columns slightly.

It also includes auto-drop/recreation of triggers (should really have been its
own commit) during upgrade, like is already done with indices.
2018-12-31 15:55:49 +01:00
ejurgensen
1de8f39264 [db] Generic fixup + align fixing up between mfi, pli and queue_item
The idea here is to make sure the fixing up of tags is done in a consistent
manner. For strings, this means stuff like trimming and empty strings -> null
are applied the same unless there are special exception rules set. It also
means that defaults are applied the same across structs, e.g. "Unknown artist"
for both mfi->artist and queue_item->artist.

The change is also necessary because we want to remove trimming from the sql
query and instead implement it ourselves.
2018-12-31 15:55:49 +01:00
chme
070379edef [db] Fetch directory id by path; use const for path and virtual_path 2018-12-18 08:28:19 +01:00
chme
dc020cc3ac [db/filescanner/spotify] Set directory path 2018-12-18 08:28:19 +01:00
chme
42cbd721fd [db] Minor version upgrade: new column "path" in directories table 2018-12-18 08:28:19 +01:00
whatdoineed2do
488f52b04f [db] schema v19.11 support composer in queue tbl 2018-11-30 17:22:21 +01:00
chme
a8e8dc1999 [library/db/filescanner/spotify] Reshuffle after adding non library
items to the queue
2018-11-11 07:01:22 +01:00
chme
05141480e2 [player/db] Increment queue version if shuffle mode is turned off
This fixes showing the wrong queue in the player web interface after
turing shuffle mode off.
2018-11-11 07:01:22 +01:00
chme
8d8663e93d [db/queue] Support adding non-library items at a given position to the
queue
2018-10-25 19:36:43 +02:00
chme
7252b3e509 [db] Add support to add items to the queue at specified position 2018-09-16 09:36:43 +02:00
ejurgensen
fde0a28142 Support for skip_count and time_skipped file metadata 2018-08-18 22:56:27 +02:00
chme
41e99ca3cd [db/mpd/jsonapi] Include artist and album count in filecount query; add
count endpoint and additional metadata to JSON API; remove unused
artist-/album-count queries
2018-05-09 22:29:52 +02:00
chme
6ceede44f4 [db] Use default -1 for playlists.query_limit column 2018-04-15 22:11:40 +02:00
chme
f167e975c2 Unify naming of "order by" clause in structs/table 2018-04-15 22:11:40 +02:00
chme
6bdcda1524 [db/filescanner] Upgrade database to v19.08 and support limit/order by
in smart playlist files
2018-04-15 22:11:40 +02:00
chme
9708e26dd1 [db] Add support for ORDER BY and HAVING clause in query parameter 2018-04-15 22:11:40 +02:00