diff --git a/src/rust/liblektor-rs/lektor_db/migrations/2022-09-30-204512_initial/up.sql b/src/rust/liblektor-rs/lektor_db/migrations/2022-09-30-204512_initial/up.sql index 0817dea38bfc2081981b1baf810e882038cb092d..1e8c4967eb1e3ec240b598ececf11cfcd8f349d3 100644 --- a/src/rust/liblektor-rs/lektor_db/migrations/2022-09-30-204512_initial/up.sql +++ b/src/rust/liblektor-rs/lektor_db/migrations/2022-09-30-204512_initial/up.sql @@ -19,6 +19,7 @@ CREATE TABLE repo_kara CREATE TABLE kara ( id BIGINT NOT NULL PRIMARY KEY REFERENCES repo(local_kara_id) ON DELETE CASCADE , is_dl BOOLEAN NOT NULL DEFAULT false + , is_virtual BOOLEAN NOT NULL DEFAULT false , song_title TEXT NOT NULL , song_type TEXT NOT NULL , song_origin TEXT NOT NULL diff --git a/src/rust/liblektor-rs/lektor_db/src/connexion.rs b/src/rust/liblektor-rs/lektor_db/src/connexion.rs index 8829bb5bc884aa919dfaf9a153d64a6c1523c214..bebc028637232c9533077105d65a6adecc2128da 100644 --- a/src/rust/liblektor-rs/lektor_db/src/connexion.rs +++ b/src/rust/liblektor-rs/lektor_db/src/connexion.rs @@ -281,6 +281,7 @@ impl LktDatabaseConnection { match uri_type { LktUriField::Id => Ok(vec![with_dsl!(kara => kara .filter(id.is(uri_as_int!("id" :/ uri))) + .filter(is_virtual.is(false)) .select(id) .first::<i64>(&mut self.sqlite) .map_err(|err| format!("{err}"))? @@ -289,6 +290,7 @@ impl LktDatabaseConnection { LktUriField::KaraMaker => Ok(with_dsl!(kara_maker => kara_maker .filter(name.like(uri_str!("author" :/ uri))) .inner_join(schema::kara::table) + .filter(schema::kara::is_virtual.is(false)) .select(id) .load::<i64>(&mut self.sqlite) .map_err(|err| format!("{err}"))? @@ -296,12 +298,14 @@ impl LktDatabaseConnection { LktUriField::Origin => Ok(with_dsl!(kara => kara .filter(song_origin.like(uri_str!("origin" :/ uri))) + .filter(is_virtual.is(false)) .select(id).load::<i64>(&mut self.sqlite) .map_err(|err| format!("{err}"))? )), LktUriField::Type => Ok(with_dsl!(kara => kara .filter(song_type.is(uri_str!("type" :/ uri))) + .filter(is_virtual.is(false)) .select(id).load::<i64>(&mut self.sqlite) .map_err(|err| format!("{err}"))? )), @@ -309,6 +313,7 @@ impl LktDatabaseConnection { LktUriField::Language => Ok(with_dsl!(kara_lang => kara_lang .filter(code.like(uri_str!("language" :/ uri))) .inner_join(schema::kara::table) + .filter(schema::kara::is_virtual.is(false)) .select(id) .load::<i64>(&mut self.sqlite) .map_err(|err| format!("{err}"))? diff --git a/src/rust/liblektor-rs/lektor_db/src/schema.rs b/src/rust/liblektor-rs/lektor_db/src/schema.rs index 82791c5193e601ff5365a7128aa94566ccd17d6a..09d100a684cc2c7adce3da69571b7a351c4e4ceb 100644 --- a/src/rust/liblektor-rs/lektor_db/src/schema.rs +++ b/src/rust/liblektor-rs/lektor_db/src/schema.rs @@ -20,6 +20,7 @@ diesel::table! { kara (id) { id -> BigInt, is_dl -> Bool, + is_virtual -> Bool, song_title -> Text, song_type -> Text, song_origin -> Text,