~ knotless Search/
↑↓ move↵ open⇧↵ all results

chadtmiller.com/knotless

git that lives in your Atmosphere account

knotless.dev
1 collaborator

knotless 0.13.0 Latest 2 packages, 1 image

1
10

Reading the logs by message walks that message's index

Merged chadtmiller.com asked to merge into main from chadtmiller.com/knotless:serve/logs-by-message
crates/knotless-serve/src/logs.rs+12−5
@@ -166,13 +166,20 @@ impl Logs {
let limit = asked.limit.unwrap_or(unasked).clamp(1, LIMIT_MAX);
let db = self.db.lock().unwrap();
let level = asked.level.as_deref().map_or(0, rank);
let stmt = match &asked.trace {
Some(_) => db.prepare_cached(
// A statement for each way of asking, each by its own index: one
// asking `?2 IS NULL OR message = ?2` could use none, and read
// every line kept, newest first, for a message seldom logged.
let stmt = match (&asked.trace, &asked.message) {
(Some(_), _) => db.prepare_cached(
"SELECT line FROM line WHERE trace = ?1 AND level >= ?3 ORDER BY id DESC LIMIT ?5",
),
None => db.prepare_cached(
"SELECT line FROM line WHERE level >= ?3 AND (?2 IS NULL OR message = ?2)
AND (?4 IS NULL OR ms >= ?4)
(None, Some(_)) => db.prepare_cached(
"SELECT line FROM line INDEXED BY line_message
WHERE message = ?2 AND level >= ?3 AND (?4 IS NULL OR ms >= ?4)
ORDER BY id DESC LIMIT ?5",
),
(None, None) => db.prepare_cached(
"SELECT line FROM line WHERE level >= ?3 AND (?4 IS NULL OR ms >= ?4)
ORDER BY id DESC LIMIT ?5",
),
};