| 568 | |
| 569 | #[tokio::test(flavor = "multi_thread")] |
| 570 | async fn hstore_extension_server_sqlx_smoke() -> Result<()> { |
| 571 | let _trace = TestTrace::new("hstore_extension_server_sqlx_smoke"); |
| 572 | let server = PgliteServer::builder() |
| 573 | .temporary() |
| 574 | .extension(extensions::HSTORE) |
| 575 | .start()?; |
| 576 | let mut conn = sqlx::PgConnection::connect(&server.connection_uri()).await?; |
| 577 | |
| 578 | sqlx::query("CREATE TEMP TABLE oxide_hstore_sqlx (data hstore)") |
| 579 | .execute(&mut conn) |
| 580 | .await?; |
| 581 | sqlx::query("INSERT INTO oxide_hstore_sqlx VALUES ('\"name\"=>\"test1\"')") |
| 582 | .execute(&mut conn) |
| 583 | .await?; |
| 584 | let row = sqlx::query( |
| 585 | "SELECT data -> 'name' AS name, \ |
| 586 | (SELECT count(*)::int4 FROM pg_extension WHERE extname = 'hstore') AS count \ |
| 587 | FROM oxide_hstore_sqlx", |
| 588 | ) |
| 589 | .fetch_one(&mut conn) |
| 590 | .await?; |
| 591 | assert_eq!(row.try_get::<String, _>("name")?, "test1"); |
| 592 | assert_eq!(row.try_get::<i32, _>("count")?, 1); |
| 593 | |
| 594 | conn.close().await?; |
| 595 | server.shutdown()?; |
| 596 | Ok(()) |
| 597 | } |
| 598 | |
| 599 | #[tokio::test(flavor = "multi_thread")] |
| 600 | async fn vector_extension_server_sqlx_smoke() -> Result<()> { |