refactor: don't use concat! in sql statements (#7720)

This commit is contained in:
Simon Laux
2026-01-15 22:44:53 +00:00
committed by GitHub
parent 76171aea2e
commit e1ebf3e96d
3 changed files with 59 additions and 67 deletions

View File

@@ -1120,21 +1120,19 @@ impl Context {
let list = self let list = self
.sql .sql
.query_map_vec( .query_map_vec(
concat!( "SELECT m.id
"SELECT m.id", FROM msgs m
" FROM msgs m", LEFT JOIN contacts ct
" LEFT JOIN contacts ct", ON m.from_id=ct.id
" ON m.from_id=ct.id", LEFT JOIN chats c
" LEFT JOIN chats c", ON m.chat_id=c.id
" ON m.chat_id=c.id", WHERE m.state=?
" WHERE m.state=?", AND m.hidden=0
" AND m.hidden=0", AND m.chat_id>9
" AND m.chat_id>9", AND ct.blocked=0
" AND ct.blocked=0", AND c.blocked=0
" AND c.blocked=0", AND NOT(c.muted_until=-1 OR c.muted_until>?)
" AND NOT(c.muted_until=-1 OR c.muted_until>?)", ORDER BY m.timestamp DESC,m.id DESC",
" ORDER BY m.timestamp DESC,m.id DESC;"
),
(MessageState::InFresh, time()), (MessageState::InFresh, time()),
|row| { |row| {
let msg_id: MsgId = row.get(0)?; let msg_id: MsgId = row.get(0)?;

View File

@@ -87,12 +87,10 @@ impl MsgId {
let result = context let result = context
.sql .sql
.query_row_optional( .query_row_optional(
concat!( "SELECT m.state, mdns.msg_id
"SELECT m.state, mdns.msg_id", FROM msgs m LEFT JOIN msgs_mdns mdns ON mdns.msg_id=m.id
" FROM msgs m LEFT JOIN msgs_mdns mdns ON mdns.msg_id=m.id", WHERE id=?
" WHERE id=?", LIMIT 1",
" LIMIT 1",
),
(self,), (self,),
|row| { |row| {
let state: MessageState = row.get(0)?; let state: MessageState = row.get(0)?;
@@ -501,40 +499,38 @@ impl Message {
let mut msg = context let mut msg = context
.sql .sql
.query_row_optional( .query_row_optional(
concat!( "SELECT
"SELECT", m.id AS id,
" m.id AS id,", rfc724_mid AS rfc724mid,
" rfc724_mid AS rfc724mid,", pre_rfc724_mid AS pre_rfc724mid,
" pre_rfc724_mid AS pre_rfc724mid,", m.mime_in_reply_to AS mime_in_reply_to,
" m.mime_in_reply_to AS mime_in_reply_to,", m.chat_id AS chat_id,
" m.chat_id AS chat_id,", m.from_id AS from_id,
" m.from_id AS from_id,", m.to_id AS to_id,
" m.to_id AS to_id,", m.timestamp AS timestamp,
" m.timestamp AS timestamp,", m.timestamp_sent AS timestamp_sent,
" m.timestamp_sent AS timestamp_sent,", m.timestamp_rcvd AS timestamp_rcvd,
" m.timestamp_rcvd AS timestamp_rcvd,", m.ephemeral_timer AS ephemeral_timer,
" m.ephemeral_timer AS ephemeral_timer,", m.ephemeral_timestamp AS ephemeral_timestamp,
" m.ephemeral_timestamp AS ephemeral_timestamp,", m.type AS type,
" m.type AS type,", m.state AS state,
" m.state AS state,", mdns.msg_id AS mdn_msg_id,
" mdns.msg_id AS mdn_msg_id,", m.download_state AS download_state,
" m.download_state AS download_state,", m.error AS error,
" m.error AS error,", m.msgrmsg AS msgrmsg,
" m.msgrmsg AS msgrmsg,", m.starred AS original_msg_id,
" m.starred AS original_msg_id,", m.mime_modified AS mime_modified,
" m.mime_modified AS mime_modified,", m.txt AS txt,
" m.txt AS txt,", m.subject AS subject,
" m.subject AS subject,", m.param AS param,
" m.param AS param,", m.hidden AS hidden,
" m.hidden AS hidden,", m.location_id AS location,
" m.location_id AS location,", c.blocked AS blocked
" c.blocked AS blocked", FROM msgs m
" FROM msgs m", LEFT JOIN chats c ON c.id=m.chat_id
" LEFT JOIN chats c ON c.id=m.chat_id", LEFT JOIN msgs_mdns mdns ON mdns.msg_id=m.id
" LEFT JOIN msgs_mdns mdns ON mdns.msg_id=m.id", WHERE m.id=? AND chat_id!=3
" WHERE m.id=? AND chat_id!=3", LIMIT 1",
" LIMIT 1",
),
(id,), (id,),
|row| { |row| {
let state: MessageState = row.get("state")?; let state: MessageState = row.get("state")?;

View File

@@ -2481,18 +2481,16 @@ async fn handle_mdn(
let Some((msg_id, chat_id, has_mdns, is_dup)) = context let Some((msg_id, chat_id, has_mdns, is_dup)) = context
.sql .sql
.query_row_optional( .query_row_optional(
concat!( "SELECT
"SELECT", m.id AS msg_id,
" m.id AS msg_id,", c.id AS chat_id,
" c.id AS chat_id,", mdns.contact_id AS mdn_contact
" mdns.contact_id AS mdn_contact", FROM msgs m
" FROM msgs m ", LEFT JOIN chats c ON m.chat_id=c.id
" LEFT JOIN chats c ON m.chat_id=c.id", LEFT JOIN msgs_mdns mdns ON mdns.msg_id=m.id
" LEFT JOIN msgs_mdns mdns ON mdns.msg_id=m.id", WHERE rfc724_mid=? AND from_id=1
" WHERE rfc724_mid=? AND from_id=1", ORDER BY msg_id DESC, mdn_contact=? DESC
" ORDER BY msg_id DESC, mdn_contact=? DESC", LIMIT 1",
" LIMIT 1",
),
(&rfc724_mid, from_id), (&rfc724_mid, from_id),
|row| { |row| {
let msg_id: MsgId = row.get("msg_id")?; let msg_id: MsgId = row.get("msg_id")?;