refactor: remove unnecessary async from DatabaseStore trait (#965)

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
pull/24376/head
Raphael Taylor-Davies 2021-03-11 11:33:53 +00:00 committed by GitHub
parent af553f3b38
commit 0ff527285c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 23 additions and 39 deletions

View File

@ -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.

View File

@ -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()

View File

@ -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();

View File

@ -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;

View File

@ -132,7 +132,6 @@ where
let db = self
.db_store
.db(&read_info.database_name)
.await
.context(DatabaseNotFound {
database_name: &read_info.database_name,
})?;

View File

@ -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()),
})),

View File

@ -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();