mirror of
https://github.com/isar/rusqlite.git
synced 2025-10-23 00:48:54 +08:00
Introduce NO_PARAMS constant
As suggested here: https://users.rust-lang.org/t/sql-parameter-values/20469/2
This commit is contained in:
@@ -14,8 +14,7 @@
|
||||
//! extern crate regex;
|
||||
//!
|
||||
//! use regex::Regex;
|
||||
//! use rusqlite::types::ToSql;
|
||||
//! use rusqlite::{Connection, Error, Result};
|
||||
//! use rusqlite::{Connection, Error, Result, NO_PARAMS};
|
||||
//! use std::collections::HashMap;
|
||||
//!
|
||||
//! fn add_regexp_function(db: &Connection) -> Result<()> {
|
||||
@@ -46,7 +45,7 @@
|
||||
//! let is_match: bool = db
|
||||
//! .query_row(
|
||||
//! "SELECT regexp('[aeiou]*', 'aaaaeeeiii')",
|
||||
//! &[] as &[&ToSql],
|
||||
//! NO_PARAMS,
|
||||
//! |row| row.get(0),
|
||||
//! ).unwrap();
|
||||
//!
|
||||
@@ -212,15 +211,14 @@ impl Connection {
|
||||
/// # Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # use rusqlite::types::ToSql;
|
||||
/// # use rusqlite::{Connection, Result};
|
||||
/// # use rusqlite::{Connection, Result, NO_PARAMS};
|
||||
/// fn scalar_function_example(db: Connection) -> Result<()> {
|
||||
/// try!(db.create_scalar_function("halve", 1, true, |ctx| {
|
||||
/// let value = try!(ctx.get::<f64>(0));
|
||||
/// Ok(value / 2f64)
|
||||
/// }));
|
||||
///
|
||||
/// let six_halved: f64 = try!(db.query_row("SELECT halve(6)", &[] as &[&ToSql], |r| r.get(0)));
|
||||
/// let six_halved: f64 = try!(db.query_row("SELECT halve(6)", NO_PARAMS, |r| r.get(0)));
|
||||
/// assert_eq!(six_halved, 3f64);
|
||||
/// Ok(())
|
||||
/// }
|
||||
@@ -482,8 +480,7 @@ mod test {
|
||||
use std::os::raw::c_double;
|
||||
|
||||
use functions::{Aggregate, Context};
|
||||
use types::ToSql;
|
||||
use {Connection, Error, Result};
|
||||
use {Connection, Error, Result, NO_PARAMS};
|
||||
|
||||
fn half(ctx: &Context) -> Result<c_double> {
|
||||
assert!(ctx.len() == 1, "called with unexpected number of arguments");
|
||||
@@ -495,7 +492,7 @@ mod test {
|
||||
fn test_function_half() {
|
||||
let db = Connection::open_in_memory().unwrap();
|
||||
db.create_scalar_function("half", 1, true, half).unwrap();
|
||||
let result: Result<f64> = db.query_row("SELECT half(6)", &[] as &[&ToSql], |r| r.get(0));
|
||||
let result: Result<f64> = db.query_row("SELECT half(6)", NO_PARAMS, |r| r.get(0));
|
||||
|
||||
assert!((3f64 - result.unwrap()).abs() < EPSILON);
|
||||
}
|
||||
@@ -504,11 +501,11 @@ mod test {
|
||||
fn test_remove_function() {
|
||||
let db = Connection::open_in_memory().unwrap();
|
||||
db.create_scalar_function("half", 1, true, half).unwrap();
|
||||
let result: Result<f64> = db.query_row("SELECT half(6)", &[] as &[&ToSql], |r| r.get(0));
|
||||
let result: Result<f64> = db.query_row("SELECT half(6)", NO_PARAMS, |r| r.get(0));
|
||||
assert!((3f64 - result.unwrap()).abs() < EPSILON);
|
||||
|
||||
db.remove_function("half", 1).unwrap();
|
||||
let result: Result<f64> = db.query_row("SELECT half(6)", &[] as &[&ToSql], |r| r.get(0));
|
||||
let result: Result<f64> = db.query_row("SELECT half(6)", NO_PARAMS, |r| r.get(0));
|
||||
assert!(result.is_err());
|
||||
}
|
||||
|
||||
@@ -558,17 +555,16 @@ mod test {
|
||||
db.create_scalar_function("regexp", 2, true, regexp_with_auxilliary)
|
||||
.unwrap();
|
||||
|
||||
let result: Result<bool> = db.query_row(
|
||||
"SELECT regexp('l.s[aeiouy]', 'lisa')",
|
||||
&[] as &[&ToSql],
|
||||
|r| r.get(0),
|
||||
);
|
||||
let result: Result<bool> =
|
||||
db.query_row("SELECT regexp('l.s[aeiouy]', 'lisa')", NO_PARAMS, |r| {
|
||||
r.get(0)
|
||||
});
|
||||
|
||||
assert_eq!(true, result.unwrap());
|
||||
|
||||
let result: Result<i64> = db.query_row(
|
||||
"SELECT COUNT(*) FROM foo WHERE regexp('l.s[aeiouy]', x) == 1",
|
||||
&[] as &[&ToSql],
|
||||
NO_PARAMS,
|
||||
|r| r.get(0),
|
||||
);
|
||||
|
||||
@@ -611,17 +607,16 @@ mod test {
|
||||
Ok(regex.is_match(&text))
|
||||
}).unwrap();
|
||||
|
||||
let result: Result<bool> = db.query_row(
|
||||
"SELECT regexp('l.s[aeiouy]', 'lisa')",
|
||||
&[] as &[&ToSql],
|
||||
|r| r.get(0),
|
||||
);
|
||||
let result: Result<bool> =
|
||||
db.query_row("SELECT regexp('l.s[aeiouy]', 'lisa')", NO_PARAMS, |r| {
|
||||
r.get(0)
|
||||
});
|
||||
|
||||
assert_eq!(true, result.unwrap());
|
||||
|
||||
let result: Result<i64> = db.query_row(
|
||||
"SELECT COUNT(*) FROM foo WHERE regexp('l.s[aeiouy]', x) == 1",
|
||||
&[] as &[&ToSql],
|
||||
NO_PARAMS,
|
||||
|r| r.get(0),
|
||||
);
|
||||
|
||||
@@ -647,7 +642,7 @@ mod test {
|
||||
("onetwo", "SELECT my_concat('one', 'two')"),
|
||||
("abc", "SELECT my_concat('a', 'b', 'c')"),
|
||||
] {
|
||||
let result: String = db.query_row(query, &[] as &[&ToSql], |r| r.get(0)).unwrap();
|
||||
let result: String = db.query_row(query, NO_PARAMS, |r| r.get(0)).unwrap();
|
||||
assert_eq!(expected, result);
|
||||
}
|
||||
}
|
||||
@@ -693,21 +688,17 @@ mod test {
|
||||
|
||||
// sum should return NULL when given no columns (contrast with count below)
|
||||
let no_result = "SELECT my_sum(i) FROM (SELECT 2 AS i WHERE 1 <> 1)";
|
||||
let result: Option<i64> = db
|
||||
.query_row(no_result, &[] as &[&ToSql], |r| r.get(0))
|
||||
.unwrap();
|
||||
let result: Option<i64> = db.query_row(no_result, NO_PARAMS, |r| r.get(0)).unwrap();
|
||||
assert!(result.is_none());
|
||||
|
||||
let single_sum = "SELECT my_sum(i) FROM (SELECT 2 AS i UNION ALL SELECT 2)";
|
||||
let result: i64 = db
|
||||
.query_row(single_sum, &[] as &[&ToSql], |r| r.get(0))
|
||||
.unwrap();
|
||||
let result: i64 = db.query_row(single_sum, NO_PARAMS, |r| r.get(0)).unwrap();
|
||||
assert_eq!(4, result);
|
||||
|
||||
let dual_sum = "SELECT my_sum(i), my_sum(j) FROM (SELECT 2 AS i, 1 AS j UNION ALL SELECT \
|
||||
2, 1)";
|
||||
let result: (i64, i64) = db
|
||||
.query_row(dual_sum, &[] as &[&ToSql], |r| (r.get(0), r.get(1)))
|
||||
.query_row(dual_sum, NO_PARAMS, |r| (r.get(0), r.get(1)))
|
||||
.unwrap();
|
||||
assert_eq!((4, 2), result);
|
||||
}
|
||||
@@ -720,15 +711,11 @@ mod test {
|
||||
|
||||
// count should return 0 when given no columns (contrast with sum above)
|
||||
let no_result = "SELECT my_count(i) FROM (SELECT 2 AS i WHERE 1 <> 1)";
|
||||
let result: i64 = db
|
||||
.query_row(no_result, &[] as &[&ToSql], |r| r.get(0))
|
||||
.unwrap();
|
||||
let result: i64 = db.query_row(no_result, NO_PARAMS, |r| r.get(0)).unwrap();
|
||||
assert_eq!(result, 0);
|
||||
|
||||
let single_sum = "SELECT my_count(i) FROM (SELECT 2 AS i UNION ALL SELECT 2)";
|
||||
let result: i64 = db
|
||||
.query_row(single_sum, &[] as &[&ToSql], |r| r.get(0))
|
||||
.unwrap();
|
||||
let result: i64 = db.query_row(single_sum, NO_PARAMS, |r| r.get(0)).unwrap();
|
||||
assert_eq!(2, result);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user