General review waves 1-2: sweep_expired savepoint scope fix (M-1), coverage adds (arg_opt_i64, StopToken Debug), review report (docs/reviews/)
This commit is contained in:
1 parent
af5b59ec8e
commit
ee7871d25d
4 files changed
+317
-3
No files matched your search
@@ -424,6 +424,31 @@ mod real_arg_tests {
|
||||
assert_eq!(v, 3);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn optional_arg_helper_keeps_null_and_converts_whole_reals() {
|
||||
let conn = db();
|
||||
conn.create_scalar_function(
|
||||
"alkstore_opt_arg_probe",
|
||||
1,
|
||||
FunctionFlags::SQLITE_UTF8,
|
||||
|ctx| arg_opt_i64(ctx, 0),
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
let v: Option<i64> = conn
|
||||
.query_row("SELECT alkstore_opt_arg_probe(?1)", [3.0_f64], |r| r.get(0))
|
||||
.unwrap();
|
||||
assert_eq!(v, Some(3));
|
||||
let n: Option<i64> = conn
|
||||
.query_row(
|
||||
"SELECT alkstore_opt_arg_probe(?1)",
|
||||
[rusqlite::types::Value::Null],
|
||||
|r| r.get(0),
|
||||
)
|
||||
.unwrap();
|
||||
assert_eq!(n, None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn fractional_reals_are_still_rejected() {
|
||||
let conn = db();
|
||||
|
||||
@@ -239,10 +239,11 @@ pub(crate) fn sweep_expired(
|
||||
expired_error: &str,
|
||||
) -> rusqlite::Result<i64> {
|
||||
let moved = in_savepoint(conn, "alkstore_sweep_expired", || {
|
||||
sweep_expired_live(conn, queue, expired_error)
|
||||
let live_moved = sweep_expired_live(conn, queue, expired_error)?;
|
||||
let retained = sweep_dead_retention(conn, queue)?;
|
||||
Ok(live_moved + retained)
|
||||
})?;
|
||||
let retained = sweep_dead_retention(conn, queue)?;
|
||||
Ok(moved + retained)
|
||||
Ok(moved)
|
||||
}
|
||||
|
||||
pub(crate) fn queue_next_claim_at(conn: &Connection, queue: &str) -> rusqlite::Result<i64> {
|
||||
|
||||
Reference in new issue
Block a user