ssb: Faster queries through lots of trial and error.
All checks were successful
Build Tilde Friends / Build-All (push) Successful in 33m5s
All checks were successful
Build Tilde Friends / Build-All (push) Successful in 33m5s
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"type": "tildefriends-app",
|
"type": "tildefriends-app",
|
||||||
"emoji": "🦀",
|
"emoji": "🦀",
|
||||||
"previous": "&byK/qn2Q4IfVc7gE2ExwX6oyj6O1iXhQCAlR1ftYjtQ=.sha256"
|
"previous": "&Cz8miv45HPxRJGyj1dj2Z2us1rL6HTNxZyeR1pmYaWw=.sha256"
|
||||||
}
|
}
|
||||||
|
@@ -256,14 +256,15 @@ class TfTabNewsFeedElement extends LitElement {
|
|||||||
let t0 = new Date();
|
let t0 = new Date();
|
||||||
let initial_messages = await tfrpc.rpc.query(
|
let initial_messages = await tfrpc.rpc.query(
|
||||||
`
|
`
|
||||||
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
|
WITH
|
||||||
FROM messages
|
channels AS (SELECT '#' || value AS value FROM json_each(?5))
|
||||||
JOIN json_each(?1) AS following ON messages.author = following.value
|
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
|
||||||
LEFT OUTER JOIN json_each(?5) AS channels ON messages.content ->> 'channel' = channels.value
|
FROM messages
|
||||||
WHERE messages.timestamp < ?3 AND (?2 IS NULL OR messages.timestamp >= ?2) AND
|
JOIN json_each(?1) AS following ON messages.author = following.value
|
||||||
messages.content ->> 'type' != 'vote' AND channels.value IS NULL)
|
WHERE messages.timestamp < ?3 AND (?2 IS NULL OR messages.timestamp >= ?2) AND
|
||||||
SELECT * FROM news
|
messages.content ->> 'type' != 'vote' AND
|
||||||
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 WHERE messages_refs.ref LIKE '#%')
|
(messages.content ->> 'channel' IS NULL OR ('#' || (messages.content ->> 'channel')) NOT IN (SELECT * FROM channels)) AND
|
||||||
|
NOT EXISTS (SELECT * FROM messages_refs JOIN channels ON messages_refs.message = messages.id AND messages_refs.ref = channels.value)
|
||||||
ORDER BY timestamp DESC LIMIT ?4
|
ORDER BY timestamp DESC LIMIT ?4
|
||||||
`,
|
`,
|
||||||
[
|
[
|
||||||
|
Reference in New Issue
Block a user