Don't let repeat_vars() return unnecessary Result

This commit is contained in:
Hocuri
2022-04-22 15:52:53 +02:00
committed by holger krekel
parent a4f5d2b9b2
commit 2b233fd810
8 changed files with 14 additions and 14 deletions

View File

@@ -3049,7 +3049,7 @@ pub async fn forward_msgs(context: &Context, msg_ids: &[MsgId], chat_id: ChatId)
.query_map( .query_map(
format!( format!(
"SELECT id FROM msgs WHERE id IN({}) ORDER BY timestamp,id", "SELECT id FROM msgs WHERE id IN({}) ORDER BY timestamp,id",
sql::repeat_vars(msg_ids.len())? sql::repeat_vars(msg_ids.len())
), ),
rusqlite::params_from_iter(msg_ids), rusqlite::params_from_iter(msg_ids),
|row| row.get::<_, MsgId>(0), |row| row.get::<_, MsgId>(0),

View File

@@ -706,7 +706,7 @@ impl Contact {
AND (iif(c.name='',c.authname,c.name) LIKE ? OR c.addr LIKE ?) \ AND (iif(c.name='',c.authname,c.name) LIKE ? OR c.addr LIKE ?) \
AND (1=? OR LENGTH(ps.verified_key_fingerprint)!=0) \ AND (1=? OR LENGTH(ps.verified_key_fingerprint)!=0) \
ORDER BY LOWER(iif(c.name='',c.authname,c.name)||c.addr),c.id;", ORDER BY LOWER(iif(c.name='',c.authname,c.name)||c.addr),c.id;",
sql::repeat_vars(self_addrs.len())? sql::repeat_vars(self_addrs.len())
), ),
rusqlite::params_from_iter(params_iter(&self_addrs).chain(params_iterv![ rusqlite::params_from_iter(params_iter(&self_addrs).chain(params_iterv![
ContactId::LAST_SPECIAL, ContactId::LAST_SPECIAL,
@@ -755,7 +755,7 @@ impl Contact {
AND origin>=? AND origin>=?
AND blocked=0 AND blocked=0
ORDER BY LOWER(iif(name='',authname,name)||addr),id;", ORDER BY LOWER(iif(name='',authname,name)||addr),id;",
sql::repeat_vars(self_addrs.len())? sql::repeat_vars(self_addrs.len())
), ),
rusqlite::params_from_iter(params_iter(&self_addrs).chain(params_iterv![ rusqlite::params_from_iter(params_iter(&self_addrs).chain(params_iterv![
ContactId::LAST_SPECIAL, ContactId::LAST_SPECIAL,

View File

@@ -1967,7 +1967,7 @@ async fn create_adhoc_grp_id(context: &Context, member_ids: &[ContactId]) -> Res
let member_cs = context.get_primary_self_addr().await?.to_lowercase(); let member_cs = context.get_primary_self_addr().await?.to_lowercase();
let query = format!( let query = format!(
"SELECT addr FROM contacts WHERE id IN({}) AND id!=?", "SELECT addr FROM contacts WHERE id IN({}) AND id!=?",
sql::repeat_vars(member_ids.len())? sql::repeat_vars(member_ids.len())
); );
let mut params = Vec::new(); let mut params = Vec::new();
params.extend_from_slice(member_ids); params.extend_from_slice(member_ids);
@@ -2065,7 +2065,7 @@ async fn check_verified_properties(
format!( format!(
"SELECT c.addr, LENGTH(ps.verified_key_fingerprint) FROM contacts c \ "SELECT c.addr, LENGTH(ps.verified_key_fingerprint) FROM contacts c \
LEFT JOIN acpeerstates ps ON c.addr=ps.addr WHERE c.id IN({}) ", LEFT JOIN acpeerstates ps ON c.addr=ps.addr WHERE c.id IN({}) ",
sql::repeat_vars(to_ids.len())? sql::repeat_vars(to_ids.len())
), ),
rusqlite::params_from_iter(to_ids), rusqlite::params_from_iter(to_ids),
|row| { |row| {

View File

@@ -315,7 +315,7 @@ pub(crate) async fn start_ephemeral_timers_msgids(
"UPDATE msgs SET ephemeral_timestamp = ? + ephemeral_timer "UPDATE msgs SET ephemeral_timestamp = ? + ephemeral_timer
WHERE (ephemeral_timestamp == 0 OR ephemeral_timestamp > ? + ephemeral_timer) AND ephemeral_timer > 0 WHERE (ephemeral_timestamp == 0 OR ephemeral_timestamp > ? + ephemeral_timer) AND ephemeral_timer > 0
AND id IN ({})", AND id IN ({})",
sql::repeat_vars(msg_ids.len())? sql::repeat_vars(msg_ids.len())
), ),
rusqlite::params_from_iter( rusqlite::params_from_iter(
std::iter::once(&now as &dyn crate::ToSql) std::iter::once(&now as &dyn crate::ToSql)

View File

@@ -912,7 +912,7 @@ impl Imap {
.execute( .execute(
format!( format!(
"DELETE FROM imap WHERE id IN ({})", "DELETE FROM imap WHERE id IN ({})",
sql::repeat_vars(row_ids.len())? sql::repeat_vars(row_ids.len())
), ),
rusqlite::params_from_iter(row_ids), rusqlite::params_from_iter(row_ids),
) )
@@ -949,7 +949,7 @@ impl Imap {
.execute( .execute(
format!( format!(
"DELETE FROM imap WHERE id IN ({})", "DELETE FROM imap WHERE id IN ({})",
sql::repeat_vars(row_ids.len())? sql::repeat_vars(row_ids.len())
), ),
rusqlite::params_from_iter(row_ids), rusqlite::params_from_iter(row_ids),
) )
@@ -991,7 +991,7 @@ impl Imap {
.execute( .execute(
format!( format!(
"UPDATE imap SET target='' WHERE id IN ({})", "UPDATE imap SET target='' WHERE id IN ({})",
sql::repeat_vars(row_ids.len())? sql::repeat_vars(row_ids.len())
), ),
rusqlite::params_from_iter(row_ids), rusqlite::params_from_iter(row_ids),
) )
@@ -1103,7 +1103,7 @@ impl Imap {
.execute( .execute(
format!( format!(
"DELETE FROM imap_markseen WHERE id IN ({})", "DELETE FROM imap_markseen WHERE id IN ({})",
sql::repeat_vars(rowid_set.len())? sql::repeat_vars(rowid_set.len())
), ),
rusqlite::params_from_iter(rowid_set), rusqlite::params_from_iter(rowid_set),
) )

View File

@@ -399,7 +399,7 @@ async fn kill_ids(context: &Context, job_ids: &[u32]) -> Result<()> {
} }
let q = format!( let q = format!(
"DELETE FROM jobs WHERE id IN({})", "DELETE FROM jobs WHERE id IN({})",
sql::repeat_vars(job_ids.len())? sql::repeat_vars(job_ids.len())
); );
context context
.sql .sql

View File

@@ -1296,7 +1296,7 @@ pub async fn markseen_msgs(context: &Context, msg_ids: Vec<MsgId>) -> Result<()>
c.blocked AS blocked c.blocked AS blocked
FROM msgs m LEFT JOIN chats c ON c.id=m.chat_id FROM msgs m LEFT JOIN chats c ON c.id=m.chat_id
WHERE m.id IN ({}) AND m.chat_id>9", WHERE m.id IN ({}) AND m.chat_id>9",
sql::repeat_vars(msg_ids.len())? sql::repeat_vars(msg_ids.len())
), ),
rusqlite::params_from_iter(&msg_ids), rusqlite::params_from_iter(&msg_ids),
|row| { |row| {

View File

@@ -843,10 +843,10 @@ async fn prune_tombstones(sql: &Sql) -> Result<()> {
/// ///
/// Use this together with [`rusqlite::ParamsFromIter`] to use dynamically generated /// Use this together with [`rusqlite::ParamsFromIter`] to use dynamically generated
/// parameter lists. /// parameter lists.
pub fn repeat_vars(count: usize) -> Result<String> { pub fn repeat_vars(count: usize) -> String {
let mut s = "?,".repeat(count); let mut s = "?,".repeat(count);
s.pop(); // Remove trailing comma s.pop(); // Remove trailing comma
Ok(s) s
} }
#[cfg(test)] #[cfg(test)]