refactor: use getrandom

This commit is contained in:
JeanArhancet
2024-07-19 21:22:14 +02:00
parent 6a5d6847c0
commit a2d4d73ce5
4 changed files with 8 additions and 7 deletions

View File

@@ -38,7 +38,7 @@ ordered-multimap = "0.7.1"
sieve-cache = "0.1.4"
sqlite3-parser = "0.11.0"
thiserror = "1.0.61"
rand = "0.8.5"
getrandom = { version = "0.2.15", features = ["js"] }
regex = "1.10.5"
[target.'cfg(not(target_family = "windows"))'.dev-dependencies]

View File

@@ -357,9 +357,8 @@ pub fn translate_expr(
}
SingleRowFunc::Random => {
if args.is_some() {
anyhow::bail!("Parse error: random function withargumentst");
anyhow::bail!("Parse error: random function with arguments");
}
dbg!("random args", &args);
let regs = program.alloc_register();
program.emit_insn(Insn::Function {

View File

@@ -5,7 +5,6 @@ use crate::schema::Table;
use crate::types::{AggContext, Cursor, CursorResult, OwnedRecord, OwnedValue, Record};
use anyhow::Result;
use rand::Rng;
use regex::Regex;
use std::borrow::BorrowMut;
use std::cell::RefCell;
@@ -1867,8 +1866,9 @@ fn exec_abs(reg: &OwnedValue) -> Option<OwnedValue> {
}
fn exec_random() -> OwnedValue {
let mut rng = rand::thread_rng();
let random_number: i64 = rng.gen();
let mut buf = [0u8; 8];
getrandom::getrandom(&mut buf).unwrap();
let random_number = i64::from_ne_bytes(buf);
OwnedValue::Integer(random_number)
}