()
| 4767 | } |
| 4768 | |
| 4769 | fn run_server_sqlx_select_one() -> Result<()> { |
| 4770 | let visible_started = Instant::now(); |
| 4771 | let server = measure_phase("server.start", PgliteServer::temporary_tcp)?; |
| 4772 | let uri = server.database_url(); |
| 4773 | let runtime = measure_phase("client.tokio_runtime_create", || { |
| 4774 | tokio::runtime::Builder::new_current_thread() |
| 4775 | .enable_all() |
| 4776 | .build() |
| 4777 | .context("create perf tokio runtime") |
| 4778 | })?; |
| 4779 | runtime.block_on(async move { |
| 4780 | let started = Instant::now(); |
| 4781 | let mut conn = sqlx::PgConnection::connect(&uri) |
| 4782 | .await |
| 4783 | .context("connect SQLx to PGliteServer")?; |
| 4784 | record_phase_timing("client.sqlx_connect", started.elapsed()); |
| 4785 | let started = Instant::now(); |
| 4786 | let row = sqlx::query("SELECT $1::int4 + 1 AS answer") |
| 4787 | .bind(41_i32) |
| 4788 | .fetch_one(&mut conn) |
| 4789 | .await |
| 4790 | .context("run first SQLx query")?; |
| 4791 | record_phase_timing("client.sqlx_first_query", started.elapsed()); |
| 4792 | let answer: i32 = row.try_get("answer").context("read SQLx answer")?; |
| 4793 | if answer != 42 { |
| 4794 | bail!("SQLx server query returned {answer}, expected 42"); |
| 4795 | } |
| 4796 | conn.close().await.context("close SQLx connection")?; |
| 4797 | Ok::<_, anyhow::Error>(()) |
| 4798 | })?; |
| 4799 | record_phase_timing( |
| 4800 | "visible.server_start_to_first_sqlx_query", |
| 4801 | visible_started.elapsed(), |
| 4802 | ); |
| 4803 | measure_phase("operation.shutdown", || server.shutdown()) |
| 4804 | } |
| 4805 | |
| 4806 | fn run_direct_repeated_selects(iterations: usize) -> Result<()> { |
| 4807 | let mut db = Pglite::builder().temporary().open()?; |
nothing calls this directly
no test coverage detected