From baec46c5aa390487b691ab3113edfec72f2f3664 Mon Sep 17 00:00:00 2001 From: dusk Date: Wed, 20 Aug 2025 23:27:42 +0300 Subject: [PATCH] appview: db: add FilterBetween Change-Id: loxxyypnuzpoxokknlnzttwywuskptuu Signed-off-by: dusk --- appview/db/db.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/appview/db/db.go b/appview/db/db.go index afb4fe9..d986562 100644 --- a/appview/db/db.go +++ b/appview/db/db.go @@ -741,11 +741,18 @@ func FilterLte(key string, arg any) filter { return newFilter(key, "<=", arg) func FilterIs(key string, arg any) filter { return newFilter(key, "is", arg) } func FilterIsNot(key string, arg any) filter { return newFilter(key, "is not", arg) } func FilterIn(key string, arg any) filter { return newFilter(key, "in", arg) } +func FilterBetween(key string, arg1, arg2 any) filter { + return newFilter(key, "between", []any{arg1, arg2}) +} func (f filter) Condition() string { rv := reflect.ValueOf(f.arg) kind := rv.Kind() + if f.cmp == "between" { + return fmt.Sprintf("%s %s ? and ?", f.key, f.cmp) + } + // if we have `FilterIn(k, [1, 2, 3])`, compile it down to `k in (?, ?, ?)` if (kind == reflect.Slice && rv.Type().Elem().Kind() != reflect.Uint8) || kind == reflect.Array { if rv.Len() == 0 { -- 2.43.0