mirror of
https://github.com/tursodatabase/limbo.git
synced 2025-08-04 10:08:20 +00:00
Merge 'Added 'likelihood' scalar function' from Sachin Kumar Singh
The `likelihood(X,Y)` function returns argument X unchanged. The value Y in likelihood(X,Y) must be a floating point constant between 0.0 and 1.0, inclusive. ``` sqlite> explain SELECT likelihood(42, 0.0); addr opcode p1 p2 p3 p4 p5 comment ---- ------------- ---- ---- ---- ------------- -- ------------- 0 Init 0 6 0 0 Start at 6 1 Once 0 3 0 0 2 Integer 42 2 0 0 r[2]=42 3 Copy 2 1 0 0 r[1]=r[2] 4 ResultRow 1 1 0 0 output=r[1] 5 Halt 0 0 0 0 6 Goto 0 1 0 0 ``` ``` limbo> explain SELECT likelihood(42, 0.0); addr opcode p1 p2 p3 p4 p5 comment ---- ----------------- ---- ---- ---- ------------- -- ------- 0 Init 0 4 0 0 Start at 4 1 Copy 2 1 0 0 r[1]=r[2] 2 ResultRow 1 1 0 0 output=r[1] 3 Halt 0 0 0 0 4 Integer 42 2 0 0 r[2]=42 5 Goto 0 1 0 0 ``` Closes #1303
This commit is contained in:
commit
d67e1b604b
5 changed files with 134 additions and 2 deletions
|
@ -294,6 +294,7 @@ pub enum ScalarFunc {
|
|||
Printf,
|
||||
Likely,
|
||||
TimeDiff,
|
||||
Likelihood,
|
||||
}
|
||||
|
||||
impl Display for ScalarFunc {
|
||||
|
@ -350,6 +351,7 @@ impl Display for ScalarFunc {
|
|||
Self::Printf => "printf".to_string(),
|
||||
Self::Likely => "likely".to_string(),
|
||||
Self::TimeDiff => "timediff".to_string(),
|
||||
Self::Likelihood => "likelihood".to_string(),
|
||||
};
|
||||
write!(f, "{}", str)
|
||||
}
|
||||
|
@ -607,6 +609,7 @@ impl Func {
|
|||
"sqlite_source_id" => Ok(Self::Scalar(ScalarFunc::SqliteSourceId)),
|
||||
"replace" => Ok(Self::Scalar(ScalarFunc::Replace)),
|
||||
"likely" => Ok(Self::Scalar(ScalarFunc::Likely)),
|
||||
"likelihood" => Ok(Self::Scalar(ScalarFunc::Likelihood)),
|
||||
#[cfg(feature = "json")]
|
||||
"json" => Ok(Self::Json(JsonFunc::Json)),
|
||||
#[cfg(feature = "json")]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue