refactor: remove unnecessary async from DatabaseStore trait (#965)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>pull/24376/head
parent
af553f3b38
commit
0ff527285c
|
@ -155,11 +155,11 @@ pub trait DatabaseStore: Debug + Send + Sync {
|
|||
type Error: std::error::Error + Send + Sync + 'static;
|
||||
|
||||
/// List the database names.
|
||||
async fn db_names_sorted(&self) -> Vec<String>;
|
||||
fn db_names_sorted(&self) -> Vec<String>;
|
||||
|
||||
/// Retrieve the database specified by `name` returning None if no
|
||||
/// such database exists
|
||||
async fn db(&self, name: &str) -> Option<Arc<Self::Database>>;
|
||||
fn db(&self, name: &str) -> Option<Arc<Self::Database>>;
|
||||
|
||||
/// Retrieve the database specified by `name`, creating it if it
|
||||
/// doesn't exist.
|
||||
|
|
|
@ -474,14 +474,14 @@ impl DatabaseStore for TestDatabaseStore {
|
|||
type Error = TestError;
|
||||
|
||||
/// List the database names.
|
||||
async fn db_names_sorted(&self) -> Vec<String> {
|
||||
fn db_names_sorted(&self) -> Vec<String> {
|
||||
let databases = self.databases.lock();
|
||||
|
||||
databases.keys().cloned().collect()
|
||||
}
|
||||
|
||||
/// Retrieve the database specified name
|
||||
async fn db(&self, name: &str) -> Option<Arc<Self::Database>> {
|
||||
fn db(&self, name: &str) -> Option<Arc<Self::Database>> {
|
||||
let databases = self.databases.lock();
|
||||
|
||||
databases.get(name).cloned()
|
||||
|
|
|
@ -363,11 +363,11 @@ impl<M: ConnectionManager> Server<M> {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn db(&self, name: &DatabaseName<'_>) -> Option<Arc<Db>> {
|
||||
pub fn db(&self, name: &DatabaseName<'_>) -> Option<Arc<Db>> {
|
||||
self.config.db(name)
|
||||
}
|
||||
|
||||
pub async fn db_rules(&self, name: &DatabaseName<'_>) -> Option<DatabaseRules> {
|
||||
pub fn db_rules(&self, name: &DatabaseName<'_>) -> Option<DatabaseRules> {
|
||||
self.config.db(name).map(|d| d.rules.clone())
|
||||
}
|
||||
|
||||
|
@ -392,7 +392,7 @@ where
|
|||
type Database = Db;
|
||||
type Error = Error;
|
||||
|
||||
async fn db_names_sorted(&self) -> Vec<String> {
|
||||
fn db_names_sorted(&self) -> Vec<String> {
|
||||
self.config
|
||||
.db_names_sorted()
|
||||
.iter()
|
||||
|
@ -400,9 +400,9 @@ where
|
|||
.collect()
|
||||
}
|
||||
|
||||
async fn db(&self, name: &str) -> Option<Arc<Self::Database>> {
|
||||
fn db(&self, name: &str) -> Option<Arc<Self::Database>> {
|
||||
if let Ok(name) = DatabaseName::new(name) {
|
||||
return self.db(&name).await;
|
||||
return self.db(&name);
|
||||
}
|
||||
|
||||
None
|
||||
|
@ -413,11 +413,11 @@ where
|
|||
async fn db_or_create(&self, name: &str) -> Result<Arc<Self::Database>, Self::Error> {
|
||||
let db_name = DatabaseName::new(name.to_string()).context(InvalidDatabaseName)?;
|
||||
|
||||
let db = match self.db(&db_name).await {
|
||||
let db = match self.db(&db_name) {
|
||||
Some(db) => db,
|
||||
None => {
|
||||
self.create_database(name, DatabaseRules::new()).await?;
|
||||
self.db(&db_name).await.expect("db not inserted")
|
||||
self.db(&db_name).expect("db not inserted")
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -598,8 +598,8 @@ mod tests {
|
|||
server2.set_id(1);
|
||||
server2.load_database_configs().await.unwrap();
|
||||
|
||||
let _ = server2.db(&DatabaseName::new(db2).unwrap()).await.unwrap();
|
||||
let _ = server2.db(&DatabaseName::new(name).unwrap()).await.unwrap();
|
||||
let _ = server2.db(&DatabaseName::new(db2).unwrap()).unwrap();
|
||||
let _ = server2.db(&DatabaseName::new(name).unwrap()).unwrap();
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
|
@ -648,7 +648,7 @@ mod tests {
|
|||
.expect("failed to create database");
|
||||
}
|
||||
|
||||
let db_names_sorted = server.db_names_sorted().await;
|
||||
let db_names_sorted = server.db_names_sorted();
|
||||
assert_eq!(names, db_names_sorted);
|
||||
|
||||
Ok(())
|
||||
|
@ -693,7 +693,7 @@ mod tests {
|
|||
server.write_lines("foo", &lines).await.unwrap();
|
||||
|
||||
let db_name = DatabaseName::new("foo").unwrap();
|
||||
let db = server.db(&db_name).await.unwrap();
|
||||
let db = server.db(&db_name).unwrap();
|
||||
|
||||
let planner = SQLQueryPlanner::default();
|
||||
let executor = server.executor();
|
||||
|
|
|
@ -493,7 +493,6 @@ async fn query<M: ConnectionManager + Send + Sync + Debug + 'static>(
|
|||
|
||||
let db = server
|
||||
.db(&db_name)
|
||||
.await
|
||||
.context(DatabaseNotFound { name: &db_name_str })?;
|
||||
|
||||
let planner = SQLQueryPlanner::default();
|
||||
|
@ -551,7 +550,6 @@ async fn get_wal_meta<M: ConnectionManager + Send + Sync + Debug + 'static>(
|
|||
|
||||
let db = server
|
||||
.db(&db_name)
|
||||
.await
|
||||
.context(DatabaseNotFound { name: &db_name_str })?;
|
||||
|
||||
let wal = db
|
||||
|
@ -609,7 +607,7 @@ async fn list_partitions<M: ConnectionManager + Send + Sync + Debug + 'static>(
|
|||
let db_name =
|
||||
org_and_bucket_to_database(&info.org, &info.bucket).context(BucketMappingError)?;
|
||||
|
||||
let db = server.db(&db_name).await.context(BucketNotFound {
|
||||
let db = server.db(&db_name).context(BucketNotFound {
|
||||
org: &info.org,
|
||||
bucket: &info.bucket,
|
||||
})?;
|
||||
|
@ -653,7 +651,7 @@ async fn snapshot_partition<M: ConnectionManager + Send + Sync + Debug + 'static
|
|||
|
||||
// TODO: refactor the rest of this out of the http route and into the server
|
||||
// crate.
|
||||
let db = server.db(&db_name).await.context(BucketNotFound {
|
||||
let db = server.db(&db_name).context(BucketNotFound {
|
||||
org: &snapshot.org,
|
||||
bucket: &snapshot.bucket,
|
||||
})?;
|
||||
|
@ -762,7 +760,6 @@ mod tests {
|
|||
// Check that the data got into the right bucket
|
||||
let test_db = test_storage
|
||||
.db(&DatabaseName::new("MyOrg_MyBucket").unwrap())
|
||||
.await
|
||||
.expect("Database exists");
|
||||
|
||||
let batches = run_query(test_db.as_ref(), "select * from h2o_temperature").await;
|
||||
|
@ -953,7 +950,6 @@ mod tests {
|
|||
// Check that the data got into the right bucket
|
||||
let test_db = test_storage
|
||||
.db(&DatabaseName::new("MyOrg_MyBucket").unwrap())
|
||||
.await
|
||||
.expect("Database exists");
|
||||
|
||||
let batches = run_query(test_db.as_ref(), "select * from h2o_temperature").await;
|
||||
|
|
|
@ -132,7 +132,6 @@ where
|
|||
let db = self
|
||||
.db_store
|
||||
.db(&read_info.database_name)
|
||||
.await
|
||||
.context(DatabaseNotFound {
|
||||
database_name: &read_info.database_name,
|
||||
})?;
|
||||
|
|
|
@ -43,7 +43,7 @@ where
|
|||
&self,
|
||||
_: Request<ListDatabasesRequest>,
|
||||
) -> Result<Response<ListDatabasesResponse>, Status> {
|
||||
let names = self.server.db_names_sorted().await;
|
||||
let names = self.server.db_names_sorted();
|
||||
Ok(Response::new(ListDatabasesResponse { names }))
|
||||
}
|
||||
|
||||
|
@ -53,7 +53,7 @@ where
|
|||
) -> Result<Response<GetDatabaseResponse>, Status> {
|
||||
let name = DatabaseName::new(request.into_inner().name).field("name")?;
|
||||
|
||||
match self.server.db_rules(&name).await {
|
||||
match self.server.db_rules(&name) {
|
||||
Some(rules) => Ok(Response::new(GetDatabaseResponse {
|
||||
rules: Some(rules.into()),
|
||||
})),
|
||||
|
|
|
@ -757,7 +757,6 @@ where
|
|||
|
||||
let db = db_store
|
||||
.db(&db_name)
|
||||
.await
|
||||
.context(DatabaseNotFound { db_name })?;
|
||||
|
||||
let planner = InfluxRPCPlanner::new();
|
||||
|
@ -807,7 +806,7 @@ where
|
|||
})?
|
||||
.build();
|
||||
|
||||
let db = db_store.db(&db_name).await.context(DatabaseNotFound {
|
||||
let db = db_store.db(&db_name).context(DatabaseNotFound {
|
||||
db_name: db_name.as_str(),
|
||||
})?;
|
||||
|
||||
|
@ -867,10 +866,7 @@ where
|
|||
let db_name = db_name.as_str();
|
||||
let tag_name = &tag_name;
|
||||
|
||||
let db = db_store
|
||||
.db(db_name)
|
||||
.await
|
||||
.context(DatabaseNotFound { db_name })?;
|
||||
let db = db_store.db(db_name).context(DatabaseNotFound { db_name })?;
|
||||
|
||||
let planner = InfluxRPCPlanner::new();
|
||||
|
||||
|
@ -927,10 +923,7 @@ where
|
|||
let owned_db_name = db_name;
|
||||
|
||||
let db_name = owned_db_name.as_str();
|
||||
let db = db_store
|
||||
.db(db_name)
|
||||
.await
|
||||
.context(DatabaseNotFound { db_name })?;
|
||||
let db = db_store.db(db_name).context(DatabaseNotFound { db_name })?;
|
||||
|
||||
let executor = db_store.executor();
|
||||
|
||||
|
@ -1018,7 +1011,6 @@ where
|
|||
|
||||
let db = db_store
|
||||
.db(&db_name)
|
||||
.await
|
||||
.context(DatabaseNotFound { db_name })?;
|
||||
|
||||
let planner = InfluxRPCPlanner::new();
|
||||
|
@ -1090,10 +1082,7 @@ where
|
|||
.build();
|
||||
|
||||
let db_name = db_name.as_str();
|
||||
let db = db_store
|
||||
.db(db_name)
|
||||
.await
|
||||
.context(DatabaseNotFound { db_name })?;
|
||||
let db = db_store.db(db_name).context(DatabaseNotFound { db_name })?;
|
||||
|
||||
let planner = InfluxRPCPlanner::new();
|
||||
|
||||
|
|
Loading…
Reference in New Issue