diff --git a/sqlx-macros/src/query/mod.rs b/sqlx-macros/src/query/mod.rs index 94aa2824be..bd647a8ea4 100644 --- a/sqlx-macros/src/query/mod.rs +++ b/sqlx-macros/src/query/mod.rs @@ -168,7 +168,9 @@ fn expand_from_db(input: QueryMacroInput, db_url: &str) -> crate::Result { let data = block_on(async { let mut conn = sqlx_core::postgres::PgConnection::connect(db_url.as_str()).await?; - QueryData::from_db(&mut conn, &input.sql).await + let data = QueryData::from_db(&mut conn, &input.sql).await?; + conn.close().await?; + Ok::<_, crate::Error>(data) })?; expand_with_data(input, data, false) @@ -181,7 +183,9 @@ fn expand_from_db(input: QueryMacroInput, db_url: &str) -> crate::Result { let data = block_on(async { let mut conn = sqlx_core::mssql::MssqlConnection::connect(db_url.as_str()).await?; - QueryData::from_db(&mut conn, &input.sql).await + let data = QueryData::from_db(&mut conn, &input.sql).await?; + conn.close().await?; + Ok::<_, crate::Error>(data) })?; expand_with_data(input, data, false) @@ -194,7 +198,9 @@ fn expand_from_db(input: QueryMacroInput, db_url: &str) -> crate::Result { let data = block_on(async { let mut conn = sqlx_core::mysql::MySqlConnection::connect(db_url.as_str()).await?; - QueryData::from_db(&mut conn, &input.sql).await + let data = QueryData::from_db(&mut conn, &input.sql).await?; + conn.close().await?; + Ok::<_, crate::Error>(data) })?; expand_with_data(input, data, false) @@ -207,7 +213,9 @@ fn expand_from_db(input: QueryMacroInput, db_url: &str) -> crate::Result { let data = block_on(async { let mut conn = sqlx_core::sqlite::SqliteConnection::connect(db_url.as_str()).await?; - QueryData::from_db(&mut conn, &input.sql).await + let data = QueryData::from_db(&mut conn, &input.sql).await?; + conn.close().await?; + Ok::<_, crate::Error>(data) })?; expand_with_data(input, data, false)