mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-27 12:54:42 +00:00
sqlez
This commit is contained in:
parent
e2ec96e44a
commit
86facbbe4a
3 changed files with 9 additions and 9 deletions
|
@ -20,8 +20,8 @@ impl Connection {
|
|||
self.sqlite3,
|
||||
sql_str.as_c_str().as_ptr(),
|
||||
None,
|
||||
0 as *mut _,
|
||||
0 as *mut _,
|
||||
std::ptr::null_mut(),
|
||||
std::ptr::null_mut(),
|
||||
);
|
||||
}
|
||||
self.last_error()
|
||||
|
@ -59,10 +59,10 @@ impl Connection {
|
|||
if completed_migration != migration {
|
||||
return Err(anyhow!(formatdoc! {"
|
||||
Migration changed for {} at step {}
|
||||
|
||||
|
||||
Stored migration:
|
||||
{}
|
||||
|
||||
|
||||
Proposed migration:
|
||||
{}", domain, index, completed_migration, migration}));
|
||||
} else {
|
||||
|
|
|
@ -232,13 +232,13 @@ impl<'a> Statement<'a> {
|
|||
.last_error()
|
||||
.with_context(|| format!("Failed to read text length at {index}"))?;
|
||||
|
||||
let slice = unsafe { slice::from_raw_parts(pointer as *const u8, len) };
|
||||
let slice = unsafe { slice::from_raw_parts(pointer, len) };
|
||||
Ok(str::from_utf8(slice)?)
|
||||
}
|
||||
|
||||
pub fn bind<T: Bind>(&self, value: &T, index: i32) -> Result<i32> {
|
||||
debug_assert!(index > 0);
|
||||
Ok(value.bind(self, index)?)
|
||||
value.bind(self, index)
|
||||
}
|
||||
|
||||
pub fn column<T: Column>(&mut self) -> Result<T> {
|
||||
|
|
|
@ -10,14 +10,14 @@ use crate::{connection::Connection, domain::Migrator, util::UnboundedSyncSender}
|
|||
const MIGRATION_RETRIES: usize = 10;
|
||||
|
||||
type QueuedWrite = Box<dyn 'static + Send + FnOnce()>;
|
||||
type WriteQueueConstructor =
|
||||
Box<dyn 'static + Send + FnMut() -> Box<dyn 'static + Send + Sync + Fn(QueuedWrite)>>;
|
||||
type WriteQueue = Box<dyn 'static + Send + Sync + Fn(QueuedWrite)>;
|
||||
type WriteQueueConstructor = Box<dyn 'static + Send + FnMut() -> WriteQueue>;
|
||||
lazy_static! {
|
||||
/// List of queues of tasks by database uri. This lets us serialize writes to the database
|
||||
/// and have a single worker thread per db file. This means many thread safe connections
|
||||
/// (possibly with different migrations) could all be communicating with the same background
|
||||
/// thread.
|
||||
static ref QUEUES: RwLock<HashMap<Arc<str>, Box<dyn 'static + Send + Sync + Fn(QueuedWrite)>>> =
|
||||
static ref QUEUES: RwLock<HashMap<Arc<str>, WriteQueue>> =
|
||||
Default::default();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue