ssb: This query is slightly faster but not fast enough.
All checks were successful
Build Tilde Friends / Build-All (push) Successful in 31m48s

This commit is contained in:
2025-10-02 12:47:57 -04:00
parent 859fe1feb0
commit 5d8d02515d
2 changed files with 9 additions and 8 deletions

View File

@@ -1,5 +1,5 @@
{
"type": "tildefriends-app",
"emoji": "🦀",
"previous": "&StSBHQtJozeH0jKPMzui4/O73oTtDgzd2fYNNxEjDLM=.sha256"
"previous": "&t1siEPL4Q0S9k11mGhYOdMwQyLPYARhL+0hsvbDAFgs=.sha256"
}

View File

@@ -256,13 +256,14 @@ class TfTabNewsFeedElement extends LitElement {
let t0 = new Date();
let initial_messages = await tfrpc.rpc.query(
`
SELECT TRUE AS is_primary, messages.rowid, messages.id, messages.previous, messages.author, messages.sequence, messages.timestamp, messages.hash, json(messages.content) AS content, messages.signature
FROM messages
JOIN json_each(?1) AS following ON messages.author = following.value
LEFT OUTER JOIN json_each(?5) AS channels ON messages.content ->> 'channel' = channels.value
WHERE messages.timestamp < ?3 AND (?2 IS NULL OR messages.timestamp >= ?2) AND
messages.content ->> 'type' != 'vote' AND channels.value IS NULL AND
NOT EXISTS (SELECT * FROM messages_refs JOIN json_each(?5) AS channels ON messages_refs.ref = '#' || channels.value WHERE messages_refs.message = messages.id)
WITH news AS (SELECT TRUE AS is_primary, messages.rowid, messages.id, messages.previous, messages.author, messages.sequence, messages.timestamp, messages.hash, json(messages.content) AS content, messages.signature
FROM messages
JOIN json_each(?1) AS following ON messages.author = following.value
LEFT OUTER JOIN json_each(?5) AS channels ON messages.content ->> 'channel' = channels.value
WHERE messages.timestamp < ?3 AND (?2 IS NULL OR messages.timestamp >= ?2) AND
messages.content ->> 'type' != 'vote' AND channels.value IS NULL)
SELECT * FROM news
WHERE NOT EXISTS (SELECT * FROM messages_refs JOIN json_each(?5) AS channels ON messages_refs.message = news.id AND messages_refs.ref = '#' || channels.value)
ORDER BY timestamp DESC LIMIT ?4
`,
[