mirror of
https://github.com/isar/rusqlite.git
synced 2024-11-23 09:09:19 +08:00
Remove unstable features for Rust-1.0-beta
This commit is contained in:
parent
5e04b98840
commit
038d30e2c8
15
src/lib.rs
15
src/lib.rs
@ -48,15 +48,12 @@
|
|||||||
//! }
|
//! }
|
||||||
//! }
|
//! }
|
||||||
//! ```
|
//! ```
|
||||||
#![feature(unique)]
|
|
||||||
#![cfg_attr(test, feature(test))]
|
|
||||||
|
|
||||||
extern crate libc;
|
extern crate libc;
|
||||||
extern crate libsqlite3_sys as ffi;
|
extern crate libsqlite3_sys as ffi;
|
||||||
#[macro_use] extern crate bitflags;
|
#[macro_use] extern crate bitflags;
|
||||||
|
|
||||||
use std::mem;
|
use std::mem;
|
||||||
use std::ptr::{self, Unique};
|
use std::ptr;
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::path::{Path};
|
use std::path::{Path};
|
||||||
use std::error;
|
use std::error;
|
||||||
@ -153,6 +150,8 @@ pub struct SqliteConnection {
|
|||||||
db: RefCell<InnerSqliteConnection>,
|
db: RefCell<InnerSqliteConnection>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsafe impl Send for SqliteConnection {}
|
||||||
|
|
||||||
impl SqliteConnection {
|
impl SqliteConnection {
|
||||||
/// Open a new connection to a SQLite database.
|
/// Open a new connection to a SQLite database.
|
||||||
///
|
///
|
||||||
@ -419,7 +418,7 @@ impl fmt::Debug for SqliteConnection {
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct InnerSqliteConnection {
|
struct InnerSqliteConnection {
|
||||||
db: Unique<ffi::Struct_sqlite3>,
|
db: *mut ffi::Struct_sqlite3,
|
||||||
}
|
}
|
||||||
|
|
||||||
bitflags! {
|
bitflags! {
|
||||||
@ -463,12 +462,12 @@ impl InnerSqliteConnection {
|
|||||||
ffi::sqlite3_close(db);
|
ffi::sqlite3_close(db);
|
||||||
return Err(e);
|
return Err(e);
|
||||||
}
|
}
|
||||||
Ok(InnerSqliteConnection{ db: Unique::new(db) })
|
Ok(InnerSqliteConnection{ db: db })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn db(&self) -> *mut ffi::Struct_sqlite3 {
|
fn db(&self) -> *mut ffi::Struct_sqlite3 {
|
||||||
unsafe {self.db.get() as *const _ as *mut _}
|
self.db
|
||||||
}
|
}
|
||||||
|
|
||||||
fn decode_result(&mut self, code: c_int) -> SqliteResult<()> {
|
fn decode_result(&mut self, code: c_int) -> SqliteResult<()> {
|
||||||
@ -492,7 +491,7 @@ impl InnerSqliteConnection {
|
|||||||
fn close(&mut self) -> SqliteResult<()> {
|
fn close(&mut self) -> SqliteResult<()> {
|
||||||
unsafe {
|
unsafe {
|
||||||
let r = ffi::sqlite3_close(self.db());
|
let r = ffi::sqlite3_close(self.db());
|
||||||
self.db = Unique::new(ptr::null_mut());
|
self.db = ptr::null_mut();
|
||||||
self.decode_result(r)
|
self.decode_result(r)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -158,7 +158,6 @@ impl<'conn> Drop for SqliteTransaction<'conn> {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test {
|
mod test {
|
||||||
extern crate test;
|
|
||||||
use SqliteConnection;
|
use SqliteConnection;
|
||||||
|
|
||||||
fn checked_memory_handle() -> SqliteConnection {
|
fn checked_memory_handle() -> SqliteConnection {
|
||||||
@ -231,32 +230,4 @@ mod test {
|
|||||||
}
|
}
|
||||||
assert_eq!(3i32, db.query_row("SELECT SUM(x) FROM foo", &[], |r| r.get(0)));
|
assert_eq!(3i32, db.query_row("SELECT SUM(x) FROM foo", &[], |r| r.get(0)));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[bench]
|
|
||||||
fn test_no_transaction_insert(bencher: &mut test::Bencher) {
|
|
||||||
let db = checked_memory_handle();
|
|
||||||
|
|
||||||
let mut stmt = db.prepare("INSERT INTO foo VALUES(1)").unwrap();
|
|
||||||
|
|
||||||
bencher.iter(|| {
|
|
||||||
for _ in 0i32 .. 1000 {
|
|
||||||
stmt.execute(&[]).unwrap();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
#[bench]
|
|
||||||
fn test_transaction_insert(bencher: &mut test::Bencher) {
|
|
||||||
let db = checked_memory_handle();
|
|
||||||
|
|
||||||
let mut stmt = db.prepare("INSERT INTO foo VALUES(1)").unwrap();
|
|
||||||
|
|
||||||
bencher.iter(|| {
|
|
||||||
let mut tx = db.transaction().unwrap();
|
|
||||||
tx.set_commit();
|
|
||||||
for _ in 0i32 .. 1000 {
|
|
||||||
stmt.execute(&[]).unwrap();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user