Skip to content

Commit

Permalink
Put schema in quotes for postgres driver (#2436)
Browse files Browse the repository at this point in the history
* Put schema in quotes for postgres driver

* Add tests
  • Loading branch information
TwoDCube authored Dec 23, 2024
1 parent 8a256ce commit e27e1d9
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/driver/sqlx_postgres.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ impl SqlxPostgresConnector {
let set_search_path_sql = options
.schema_search_path
.as_ref()
.map(|schema| format!("SET search_path = {schema}"));
.map(|schema| format!("SET search_path = \"{schema}\""));
let lazy = options.connect_lazy;
let mut pool_options = options.sqlx_pool_options();
if let Some(sql) = set_search_path_sql {
Expand Down
20 changes: 20 additions & 0 deletions tests/connection_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -140,3 +140,23 @@ pub async fn connection_ping_closed_postgres() {

ctx.delete().await;
}

#[sea_orm_macros::test]
#[cfg(feature = "sqlx-postgres")]
pub async fn connection_with_search_path_postgres() {
let ctx = TestContext::new("connection_with_search_path").await;

let base_url = std::env::var("DATABASE_URL").unwrap();
let mut opt = sea_orm::ConnectOptions::new(format!("{base_url}/connection_with_search_path"));
opt
// The connection pool has a single connection only
.max_connections(1)
// A controlled connection acquire timeout
.acquire_timeout(std::time::Duration::from_secs(2))
.set_schema_search_path("schema-with-special-characters");

let db = sea_orm::Database::connect(opt).await;
assert!(db.is_ok());

ctx.delete().await;
}

0 comments on commit e27e1d9

Please sign in to comment.