mirror of
https://github.com/fluencelabs/sqlite-wasm-connector
synced 2025-03-15 06:20:50 +00:00
Changes for core review
This commit is contained in:
parent
beda4c82c8
commit
4fa8989faa
@ -55,16 +55,17 @@ impl<'l> Statement<'l> {
|
||||
unsafe { ffi::sqlite3_column_count(self.raw.0) as usize }
|
||||
}
|
||||
|
||||
/// Return the name of a column in the statement
|
||||
/// Return the name of a column.
|
||||
#[inline]
|
||||
pub fn column_name(&self, i: usize) -> &str {
|
||||
debug_assert!(i < self.columns(), format!("column position has to be between 0 and {}", self.columns() - 1));
|
||||
unsafe {
|
||||
let ret = ffi::sqlite3_column_name(self.raw.0, i as c_int);
|
||||
c_str_to_str!(ret).unwrap()
|
||||
}
|
||||
}
|
||||
|
||||
/// Return column names in the statement
|
||||
/// Return column names.
|
||||
#[inline]
|
||||
pub fn column_names(&self) -> Vec<&str> {
|
||||
(0..self.columns()).map(|i| self.column_name(i)).collect()
|
||||
|
24
tests/lib.rs
24
tests/lib.rs
@ -137,22 +137,28 @@ fn cursor_workflow() {
|
||||
#[test]
|
||||
fn statement_columns() {
|
||||
let connection = setup_users(":memory:");
|
||||
let statement = "SELECT id, name, age, photo as user_photo FROM users";
|
||||
let statement = "SELECT * FROM users";
|
||||
let mut statement = ok!(connection.prepare(statement));
|
||||
|
||||
assert_eq!(statement.columns(), 4);
|
||||
|
||||
{
|
||||
let column_names = statement.column_names();
|
||||
assert_eq!(column_names, vec!["id", "name", "age", "user_photo"]);
|
||||
assert_eq!("user_photo", statement.column_name(3));
|
||||
}
|
||||
|
||||
assert_eq!(ok!(statement.next()), State::Row);
|
||||
|
||||
assert_eq!(statement.columns(), 4);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn statement_column_name() {
|
||||
let connection = setup_users(":memory:");
|
||||
let statement = "SELECT id, name, age, photo as user_photo FROM users";
|
||||
let statement = ok!(connection.prepare(statement));
|
||||
|
||||
assert_eq!(statement.columns(), 4);
|
||||
|
||||
let column_names = statement.column_names();
|
||||
assert_eq!(column_names, vec!["id", "name", "age", "user_photo"]);
|
||||
assert_eq!("user_photo", statement.column_name(3));
|
||||
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn statement_kind() {
|
||||
let connection = setup_users(":memory:");
|
||||
|
Loading…
x
Reference in New Issue
Block a user