Skip to content

Commit

Permalink
fix: negated queries in sqlite alert view
Browse files Browse the repository at this point in the history
Fixes #323.
  • Loading branch information
jasonish committed Dec 22, 2024
1 parent 74a662d commit d82e311
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions src/sqlite/eventrepo/alerts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,12 @@ impl SqliteEventRepo {
}
}
queryparser::QueryValue::KeyValue(k, v) => {
// TODO: Handle negation - maybe use query builder?
if let Ok(v) = v.parse::<i64>() {
builder.wherejs(k, "=", v)?;
let op = if el.negated { "!=" } else { "=" };
builder.wherejs(k, op, v)?;
} else {
builder.wherejs(k, "LIKE", format!("%{}%", v))?;
let op = if el.negated { "NOT LIKE" } else { "LIKE" };
builder.wherejs(k, op, format!("%{}%", v))?;
}
}
queryparser::QueryValue::From(_) => {
Expand Down Expand Up @@ -345,14 +346,16 @@ impl SqliteEventRepo {
}
}
queryparser::QueryValue::KeyValue(k, v) => {
// TODO: Handle negation - maybe use query builder?
if let Ok(v) = v.parse::<i64>() {
filters
.push(format!("json_extract(events.source, '$.{k}') = ?"));
let op = if el.negated { "!=" } else { "=" };
filters.push(format!(
"json_extract(events.source, '$.{k}') {op} ?"
));
args.push(v)?;
} else {
let op = if el.negated { "NOT LIKE" } else { "LIKE" };
filters.push(format!(
"json_extract(events.source, '$.{k}') LIKE ?"
"json_extract(events.source, '$.{k}') {op} ?"
));
args.push(format!("%{v}%"))?;
}
Expand Down

0 comments on commit d82e311

Please sign in to comment.