3 Commits

Author SHA1 Message Date
c0dd47ba28 ssb: Oh golly you're supposed to request a pragma analyze periodically this way.
All checks were successful
Build Tilde Friends / Build-All (push) Successful in 9m11s
2025-11-29 16:17:54 -05:00
e44a85c92b ssb: Log noise. 2025-11-29 16:13:02 -05:00
89d3e9b4fe ssb: Mentions have become too slow. Using refs instead of fts seems better and faster, again? 2025-11-29 15:37:17 -05:00
3 changed files with 9 additions and 5 deletions

View File

@@ -1,5 +1,5 @@
{ {
"type": "tildefriends-app", "type": "tildefriends-app",
"emoji": "🦀", "emoji": "🦀",
"previous": "&QPdP4BaztX9l3BBQNVbFAu8t5iN5NTqzhIOr+8bNhb0=.sha256" "previous": "&HrNj+ya8UIHQIy0MgoaKBcW+MU56iKLqpNpOnUiKTZg=.sha256"
} }

View File

@@ -100,7 +100,6 @@ class TfTabNewsFeedElement extends LitElement {
] ]
) )
); );
console.log(result);
return result; return result;
} }
@@ -118,10 +117,11 @@ class TfTabNewsFeedElement extends LitElement {
result = await tfrpc.rpc.query( result = await tfrpc.rpc.query(
` `
WITH mentions AS (SELECT messages.rowid, messages.id, messages.previous, messages.author, messages.sequence, messages.timestamp, messages.hash, json(messages.content) AS content, messages.signature WITH mentions AS (SELECT messages.rowid, messages.id, messages.previous, messages.author, messages.sequence, messages.timestamp, messages.hash, json(messages.content) AS content, messages.signature
FROM messages_fts(?1) FROM messages_refs
JOIN messages ON messages.rowid = messages_fts.rowid JOIN messages ON messages.id = messages_refs.message
JOIN json_each(?2) AS following ON messages.author = following.value JOIN json_each(?2) AS following ON messages.author = following.value
WHERE WHERE
messages_refs.ref = ?1 AND
messages.author != ?1 AND messages.author != ?1 AND
(?3 IS NULL OR messages.timestamp >= ?3) AND messages.timestamp < ?4 (?3 IS NULL OR messages.timestamp >= ?3) AND messages.timestamp < ?4
ORDER BY timestamp DESC limit ?5) ORDER BY timestamp DESC limit ?5)
@@ -133,7 +133,7 @@ class TfTabNewsFeedElement extends LitElement {
SELECT TRUE AS is_primary, * FROM mentions SELECT TRUE AS is_primary, * FROM mentions
`, `,
[ [
'"' + this.whoami.replace('"', '""') + '"', this.whoami,
JSON.stringify(this.following), JSON.stringify(this.following),
start_time, start_time,
end_time, end_time,

View File

@@ -503,6 +503,10 @@ void tf_ssb_db_init(tf_ssb_t* ssb)
tf_printf("Adding flags column.\n"); tf_printf("Adding flags column.\n");
_tf_ssb_db_exec(db, "ALTER TABLE messages ADD COLUMN flags INTEGER"); _tf_ssb_db_exec(db, "ALTER TABLE messages ADD COLUMN flags INTEGER");
} }
tf_printf("Optimizing...\n");
_tf_ssb_db_exec(db, "PRAGMA optimize=0x10002");
tf_printf("Done optimizing.\n");
tf_ssb_release_db_writer(ssb, db); tf_ssb_release_db_writer(ssb, db);
} }