fix a few more places that used format! with sql-queries -- although they are all probably not critical

This commit is contained in:
holger krekel
2019-12-14 18:28:59 +01:00
parent 558466d506
commit ed790879cd
2 changed files with 20 additions and 35 deletions

View File

@@ -1915,11 +1915,8 @@ pub fn forward_msgs(context: &Context, msg_ids: &[MsgId], chat_id: u32) -> Resul
ensure!(chat.can_send(), "cannot send to chat #{}", chat_id); ensure!(chat.can_send(), "cannot send to chat #{}", chat_id);
curr_timestamp = dc_create_smeared_timestamps(context, msg_ids.len()); curr_timestamp = dc_create_smeared_timestamps(context, msg_ids.len());
let ids = context.sql.query_map( let ids = context.sql.query_map(
format!( "SELECT id FROM msgs WHERE id IN({}) ORDER BY timestamp,id",
"SELECT id FROM msgs WHERE id IN({}) ORDER BY timestamp,id", params![msg_ids.iter().map(|_| "?").join(",")],
msg_ids.iter().map(|_| "?").join(",")
),
msg_ids,
|row| row.get::<_, MsgId>(0), |row| row.get::<_, MsgId>(0),
|ids| ids.collect::<Result<Vec<_>, _>>().map_err(Into::into), |ids| ids.collect::<Result<Vec<_>, _>>().map_err(Into::into),
)?; )?;

View File

@@ -1148,12 +1148,9 @@ fn create_or_lookup_adhoc_group(
if !chat_ids.is_empty() { if !chat_ids.is_empty() {
let chat_ids_str = join(chat_ids.iter().map(|x| x.to_string()), ","); let chat_ids_str = join(chat_ids.iter().map(|x| x.to_string()), ",");
let res = context.sql.query_row( let res = context.sql.query_row(
format!( "SELECT c.id, c.blocked FROM chats c \
"SELECT c.id, c.blocked FROM chats c \ LEFT JOIN msgs m ON m.chat_id=c.id WHERE c.id IN({}) ORDER BY m.timestamp DESC, m.id DESC LIMIT 1;",
LEFT JOIN msgs m ON m.chat_id=c.id WHERE c.id IN({}) ORDER BY m.timestamp DESC, m.id DESC LIMIT 1;", params!(chat_ids_str),
chat_ids_str
),
params![],
|row| { |row| {
Ok((row.get::<_, i32>(0)?, row.get::<_, Option<Blocked>>(1)?.unwrap_or_default())) Ok((row.get::<_, i32>(0)?, row.get::<_, Option<Blocked>>(1)?.unwrap_or_default()))
} }
@@ -1252,11 +1249,8 @@ fn create_adhoc_grp_id(context: &Context, member_ids: &[u32]) -> String {
let members = context let members = context
.sql .sql
.query_map( .query_map(
format!( "SELECT addr FROM contacts WHERE id IN({}) AND id!=1", // 1=DC_CONTACT_ID_SELF
"SELECT addr FROM contacts WHERE id IN({}) AND id!=1", // 1=DC_CONTACT_ID_SELF params![member_ids_str],
member_ids_str
),
params![],
|row| row.get::<_, String>(0), |row| row.get::<_, String>(0),
|rows| { |rows| {
let mut addrs = rows.collect::<std::result::Result<Vec<_>, _>>()?; let mut addrs = rows.collect::<std::result::Result<Vec<_>, _>>()?;
@@ -1300,17 +1294,14 @@ fn search_chat_ids_by_contact_ids(
contact_ids.sort(); contact_ids.sort();
let contact_ids_str = join(contact_ids.iter().map(|x| x.to_string()), ","); let contact_ids_str = join(contact_ids.iter().map(|x| x.to_string()), ",");
context.sql.query_map( context.sql.query_map(
format!( "SELECT DISTINCT cc.chat_id, cc.contact_id \
"SELECT DISTINCT cc.chat_id, cc.contact_id \ FROM chats_contacts cc \
FROM chats_contacts cc \ LEFT JOIN chats c ON c.id=cc.chat_id \
LEFT JOIN chats c ON c.id=cc.chat_id \ WHERE cc.chat_id IN(SELECT chat_id FROM chats_contacts WHERE contact_id IN({})) \
WHERE cc.chat_id IN(SELECT chat_id FROM chats_contacts WHERE contact_id IN({})) \ AND c.type=120 \
AND c.type=120 \ AND cc.contact_id!=1 \
AND cc.contact_id!=1 \ ORDER BY cc.chat_id, cc.contact_id;", // 1=DC_CONTACT_ID_SELF
ORDER BY cc.chat_id, cc.contact_id;", // 1=DC_CONTACT_ID_SELF params![contact_ids_str],
contact_ids_str
),
params![],
|row| Ok((row.get::<_, u32>(0)?, row.get::<_, u32>(1)?)), |row| Ok((row.get::<_, u32>(0)?, row.get::<_, u32>(1)?)),
|rows| { |rows| {
let mut last_chat_id = 0; let mut last_chat_id = 0;
@@ -1337,8 +1328,8 @@ fn search_chat_ids_by_contact_ids(
if matches == contact_ids.len() && mismatches == 0 { if matches == contact_ids.len() && mismatches == 0 {
chat_ids.push(last_chat_id); chat_ids.push(last_chat_id);
} }
Ok(()) Ok(())
} },
)?; )?;
} }
} }
@@ -1391,12 +1382,9 @@ fn check_verified_properties(
let to_ids_str = join(to_ids.iter().map(|x| x.to_string()), ","); let to_ids_str = join(to_ids.iter().map(|x| x.to_string()), ",");
let rows = context.sql.query_map( let rows = context.sql.query_map(
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({}) ", params![to_ids_str],
to_ids_str
),
params![],
|row| Ok((row.get::<_, String>(0)?, row.get::<_, i32>(1).unwrap_or(0))), |row| Ok((row.get::<_, String>(0)?, row.get::<_, i32>(1).unwrap_or(0))),
|rows| { |rows| {
rows.collect::<std::result::Result<Vec<_>, _>>() rows.collect::<std::result::Result<Vec<_>, _>>()