mirror of
https://github.com/isar/rusqlite.git
synced 2025-04-02 04:12:59 +08:00
commit
20487e8c27
10
src/lib.rs
10
src/lib.rs
@ -1044,14 +1044,14 @@ impl Connection {
|
|||||||
/// Return an `Error::InvalidDatabaseIndex` if `index` is out of range.
|
/// Return an `Error::InvalidDatabaseIndex` if `index` is out of range.
|
||||||
#[cfg(feature = "modern_sqlite")] // 3.39.0
|
#[cfg(feature = "modern_sqlite")] // 3.39.0
|
||||||
#[cfg_attr(docsrs, doc(cfg(feature = "modern_sqlite")))]
|
#[cfg_attr(docsrs, doc(cfg(feature = "modern_sqlite")))]
|
||||||
pub fn db_name(&self, index: usize) -> Result<&str> {
|
pub fn db_name(&self, index: usize) -> Result<String> {
|
||||||
unsafe {
|
unsafe {
|
||||||
let db = self.handle();
|
let db = self.handle();
|
||||||
let name = ffi::sqlite3_db_name(db, index as c_int);
|
let name = ffi::sqlite3_db_name(db, index as c_int);
|
||||||
if name.is_null() {
|
if name.is_null() {
|
||||||
Err(Error::InvalidDatabaseIndex(index))
|
Err(Error::InvalidDatabaseIndex(index))
|
||||||
} else {
|
} else {
|
||||||
Ok(CStr::from_ptr(name).to_str()?)
|
Ok(CStr::from_ptr(name).to_str()?.to_owned())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2236,11 +2236,11 @@ mod test {
|
|||||||
#[cfg(feature = "modern_sqlite")]
|
#[cfg(feature = "modern_sqlite")]
|
||||||
fn test_db_name() -> Result<()> {
|
fn test_db_name() -> Result<()> {
|
||||||
let db = Connection::open_in_memory()?;
|
let db = Connection::open_in_memory()?;
|
||||||
assert_eq!(db.db_name(0), Ok("main"));
|
assert_eq!(db.db_name(0).unwrap(), "main");
|
||||||
assert_eq!(db.db_name(1), Ok("temp"));
|
assert_eq!(db.db_name(1).unwrap(), "temp");
|
||||||
assert_eq!(db.db_name(2), Err(Error::InvalidDatabaseIndex(2)));
|
assert_eq!(db.db_name(2), Err(Error::InvalidDatabaseIndex(2)));
|
||||||
db.execute_batch("ATTACH DATABASE ':memory:' AS xyz;")?;
|
db.execute_batch("ATTACH DATABASE ':memory:' AS xyz;")?;
|
||||||
assert_eq!(db.db_name(2), Ok("xyz"));
|
assert_eq!(db.db_name(2).unwrap(), "xyz");
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user