Index: SQL/SQLite/dbcreate.sql =================================================================== --- SQL/SQLite/dbcreate.sql (revision 5304) +++ SQL/SQLite/dbcreate.sql (working copy) @@ -19,6 +19,7 @@ title varchar, -- title titlesort varchar, -- version of title used for sorting titlesearch varchar, -- version of title used for searching + customsearch varchar, -- version of title optionally used by plugins album integer, -- album object tracknum integer, -- track number in album content_type varchar, -- content type of track @@ -70,6 +71,8 @@ CREATE INDEX trackSearchIndex ON tracks (titlesearch); +CREATE INDEX trackCustomSearchIndex ON tracks (customsearch); + CREATE INDEX trackRatingIndex ON tracks (rating); CREATE INDEX trackPlayCountIndex ON tracks (playCount); @@ -101,6 +104,7 @@ title varchar, -- title titlesort varchar, -- version of title used for sorting titlesearch varchar, -- version of title used for searching + customsearch varchar, -- version of title optionally used by plugins compilation integer, -- boolean for compilation album year integer, -- year artwork integer, -- pointer to a track id that contains artwork. @@ -118,6 +122,8 @@ CREATE INDEX albumsSearchIndex ON albums (titlesearch); +CREATE INDEX albumsCustomSearchIndex ON albums (customsearch); + CREATE INDEX compilationSortIndex ON albums (compilation); CREATE TABLE contributors ( @@ -125,6 +131,7 @@ name varchar, -- name of contributor namesort varchar, -- version of name used for sorting namesearch varchar, -- version of name used for search matching + customsearch varchar, -- version of name optionally used by plugins moodlogic_id integer, -- these will eventually be dynamically created by the plugin moodlogic_mixable integer, musicbrainz_id varchar, -- musicbrainz uuid (36 bytes of text) @@ -137,6 +144,8 @@ CREATE INDEX contributorsSearchIndex ON contributors (namesearch); +CREATE INDEX contributorsCustomSearchIndex ON contributors (customsearch); + CREATE TABLE contributor_track ( id integer UNIQUE PRIMARY KEY NOT NULL, role integer, -- role - enumerated type @@ -171,6 +180,7 @@ name varchar, -- genre name namesort varchar, -- version of name used for sorting namesearch varchar, -- version of name used for searching + customsearch varchar, -- version of name optionally used by plugins moodlogic_id integer, -- these will eventually be dynamically created by the plugin moodlogic_mixable integer, musicmagic_mixable integer -- musicmagic fields @@ -182,6 +192,8 @@ CREATE INDEX genreSearchIndex ON genres (namesearch); +CREATE INDEX genreCustomSearchIndex ON genres (customsearch); + CREATE TABLE genre_track ( id integer UNIQUE PRIMARY KEY NOT NULL, genre integer, -- genre object Index: SQL/mysql/dbcreate.sql =================================================================== --- SQL/mysql/dbcreate.sql (revision 5304) +++ SQL/mysql/dbcreate.sql (working copy) @@ -27,6 +27,7 @@ title text, titlesort text, titlesearch text, + customsearch text, album int(10) unsigned, tracknum int(10) unsigned, content_type varchar(255), @@ -69,6 +70,7 @@ INDEX ctSortIndex (content_type), INDEX trackSortIndex (titlesort(255)), INDEX trackSearchIndex (titlesearch(255)), + INDEX trackCustomSearchIndex (customsearch(255)), INDEX trackRatingIndex (rating), INDEX trackPlayCountIndex (playCount), INDEX trackAudioIndex (audio), @@ -113,6 +115,7 @@ title text, titlesort text, titlesearch text, + customsearch text, compilation tinyint(1) unsigned, year smallint(5) unsigned, artwork int(10) unsigned, -- pointer to a track id that contains artwork @@ -125,6 +128,7 @@ INDEX albumsTitleIndex (title(255)), INDEX albumsSortIndex (titlesort(255)), INDEX albumsSearchIndex (titlesearch(255)), + INDEX albumsCustomSearchIndex (customsearch(255)), INDEX compilationSortIndex (compilation), PRIMARY KEY (id) ) TYPE=InnoDB; @@ -139,6 +143,7 @@ name text, namesort text, namesearch text, + customsearch text, moodlogic_id int(10) unsigned, moodlogic_mixable tinyint(1) unsigned, musicbrainz_id varchar(40), -- musicbrainz uuid (36 bytes of text) @@ -146,6 +151,7 @@ INDEX contributorsNameIndex (name(255)), INDEX contributorsSortIndex (namesort(255)), INDEX contributorsSearchIndex (namesearch(255)), + INDEX contributorsCustomSearchIndex (customsearch(255)), PRIMARY KEY (id) ) TYPE=InnoDB; @@ -191,12 +197,14 @@ name text, namesort text, namesearch text, + customsearch text, moodlogic_id int(10) unsigned, moodlogic_mixable tinyint(1) unsigned, musicmagic_mixable tinyint(1) unsigned, INDEX genreNameIndex (name(255)), INDEX genreSortIndex (namesort(255)), INDEX genreSearchIndex (namesearch(255)), + INDEX genreCustomSearchIndex (customsearch(255)), PRIMARY KEY (id) ) TYPE=InnoDB; Index: Slim/DataStores/DBI/Track.pm =================================================================== --- Slim/DataStores/DBI/Track.pm (revision 5304) +++ Slim/DataStores/DBI/Track.pm (working copy) @@ -10,7 +10,7 @@ use Slim::Utils::Misc; our @allColumns = (qw( - id url content_type title titlesort titlesearch album tracknum timestamp + id url content_type title titlesort titlesearch customsearch album tracknum timestamp filesize tag disc thumb remote audio multialbumsortkey audio_size audio_offset year secs cover vbr_scale bitrate samplerate samplesize channels block_alignment endian bpm tagversion drm moodlogic_id moodlogic_mixable musicmagic_mixable Index: Slim/DataStores/DBI/Contributor.pm =================================================================== --- Slim/DataStores/DBI/Contributor.pm (revision 5304) +++ Slim/DataStores/DBI/Contributor.pm (working copy) @@ -23,7 +23,7 @@ $class->columns(Essential => qw/name namesort moodlogic_id moodlogic_mixable musicmagic_mixable/); - $class->columns(Others => qw/namesearch musicbrainz_id/); + $class->columns(Others => qw/namesearch customsearch musicbrainz_id/); $class->columns(Stringify => qw/name/); Index: Slim/DataStores/DBI/DataModel.pm =================================================================== --- Slim/DataStores/DBI/DataModel.pm (revision 5304) +++ Slim/DataStores/DBI/DataModel.pm (working copy) @@ -345,6 +345,7 @@ 'track.title' => 'tracks.title', 'track.titlesort' => 'tracks.titlesort', 'track.titlesearch' => 'tracks.titlesearch', + 'track.customsearch' => 'tracks.customsearch', 'tracknum' => 'tracks.tracknum', 'ct' => 'tracks.content_type', 'content_type' => 'tracks.content_type', @@ -369,19 +370,23 @@ 'album.title' => 'albums.title', 'album.titlesort' => 'albums.titlesort', 'album.titlesearch' => 'albums.titlesearch', + 'album.customsearch' => 'albums.customsearch', 'album.compilation' => 'albums.compilation', 'genre' => 'genre_track.genre', 'genre.name' => 'genres.name', 'genre.namesort' => 'genres.namesort', 'genre.namesearch' => 'genres.namesearch', + 'genre.customsearch' => 'genres.customsearch', 'contributor' => 'contributor_track.contributor', 'contributor.name' => 'contributors.name', 'contributor.namesort' => 'contributors.namesort', 'contributor.namesearch' => 'contributors.namesearch', + 'contributor.customsearch' => 'contributors.customsearch', 'artist' => 'contributor_track.contributor', 'artist.name' => 'contributors.name', 'artist.namesort' => 'contributors.namesort', 'artist.namesearch' => 'contributors.namesearch', + 'artist.customsearch' => 'contributors.customsearch', 'conductor' => 'contributor_track.contributor', 'conductor.name' => 'contributors.name', 'composer' => 'contributor_track.contributor', @@ -403,6 +408,11 @@ 'album.titlesearch' => 1, 'track.titlesearch' => 1, + 'contributor.customsearch' => 1, + 'genre.customsearch' => 1, + 'album.customsearch' => 1, + 'track.customsearch' => 1, + 'comment' => 1, 'comment.value' => 1, 'url' => 1, Index: Slim/DataStores/DBI/Album.pm =================================================================== --- Slim/DataStores/DBI/Album.pm (revision 5304) +++ Slim/DataStores/DBI/Album.pm (working copy) @@ -16,7 +16,7 @@ $class->columns(Essential => qw/title titlesort compilation year artwork disc discc musicmagic_mixable/); - $class->columns(Others => qw/titlesearch replay_gain replay_peak musicbrainz_id/); + $class->columns(Others => qw/titlesearch customsearch replay_gain replay_peak musicbrainz_id/); $class->columns(Stringify => qw/title/); Index: Slim/DataStores/DBI/Genre.pm =================================================================== --- Slim/DataStores/DBI/Genre.pm (revision 5304) +++ Slim/DataStores/DBI/Genre.pm (working copy) @@ -15,7 +15,7 @@ $class->columns(Essential => qw/name namesort moodlogic_id moodlogic_mixable musicmagic_mixable/); - $class->columns(Others => qw/namesearch/); + $class->columns(Others => qw/namesearch customsearch/); $class->columns(Stringify => qw/name/);