diff --git a/.config/nextest.toml b/.config/nextest.toml index e1836202c..53e33c643 100644 --- a/.config/nextest.toml +++ b/.config/nextest.toml @@ -1,7 +1,12 @@ -[profile.dev] +[profile.default] +slow-timeout = { period = "15s" } fail-fast = true +# ignore integration tests since they require a running pgdog instance +default-filter = "not package(integration_tests_rust)" test-threads = 1 -default-filter = "not package(rust)" -[profile.default] -slow-timeout = "15s" +[profile.dev] +inherits = "default" + +[profile.integration] +default-filter = "package(integration_tests_rust)" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e226da74e..23f413c36 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,8 +16,8 @@ Contributions are welcome. If you see a bug, feel free to submit a PR with a fix 4. Run the setup script `bash integration/setup.sh`. It configures required PostgreSQL settings and creates the test databases. If any settings were changed, the script will exit with a notice — restart PostgreSQL and re-run the script before continuing. -5. Run the tests `cargo nextest run --profile dev`. If a test fails, try running it directly. -6. Run the integration tests `bash integration/run.sh` or exact integration test with `bash integration/go/run.sh`. +5. Run the unit tests with `cargo nextest run`. If some test fails, try running it directly. +6. Run the integration tests `bash integration/run.sh` or exact integration test e.g. `bash integration/go/run.sh`. ## Coding diff --git a/Cargo.lock b/Cargo.lock index 94693d64a..e37c61c98 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -654,9 +654,9 @@ dependencies = [ [[package]] name = "azure_core" -version = "0.34.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688882dc4a96b0ea158299d590fad91c471eced6403fd9a9ea1992c14397f25f" +checksum = "fe6a26a7d374b440015cbbcbf2d9d8be5a133aa940599f5e5dc569504baa262e" dependencies = [ "async-lock", "async-trait", @@ -675,9 +675,9 @@ dependencies = [ [[package]] name = "azure_core_macros" -version = "0.8.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70066e34b8db2c3f0b852c56a99333bd25fdedfb8850cd95dddf930928b47b80" +checksum = "b9b52dba6a345f3ad2d42ff8d0d63df9d0994cfa29657bf18ffdbf149f78a4f5" dependencies = [ "proc-macro2", "quote", @@ -687,9 +687,9 @@ dependencies = [ [[package]] name = "azure_identity" -version = "0.34.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8392bbf0028c43df2f69422825721614f47e12fd601f9056df2c18d35c57e0" +checksum = "32edf96b356ca7c51d7590c4925cc36efc3947a5da4468e8e0b25c56ecbb3de5" dependencies = [ "async-lock", "async-trait", @@ -2322,23 +2322,6 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", - "webpki-roots", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", ] [[package]] @@ -2540,6 +2523,28 @@ dependencies = [ "syn 2.0.118", ] +[[package]] +name = "integration_tests_rust" +version = "0.1.0" +dependencies = [ + "bytes", + "chrono", + "futures-util", + "libc", + "ordered-float", + "parking_lot", + "rand 0.9.4", + "reqwest", + "rust_decimal", + "serde_json", + "serial_test", + "sqlx", + "tokio", + "tokio-postgres", + "tokio-rustls", + "uuid", +] + [[package]] name = "ipconfig" version = "0.3.4" @@ -3356,7 +3361,7 @@ dependencies = [ "rand 0.9.4", "ratatui", "regex", - "reqwest 0.12.28", + "reqwest", "rmp-serde", "rust_decimal", "rustls-native-certs", @@ -3797,9 +3802,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.9" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8" dependencies = [ "bytes", "cfg_aliases", @@ -3817,9 +3822,9 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.14" +version = "0.11.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" +checksum = "4fcb935c5bec503c2f0e306bdd3e58bb9029dcb14fa8d9ac76e3a5256ac0763e" dependencies = [ "aws-lc-rs", "bytes", @@ -3848,7 +3853,7 @@ dependencies = [ "once_cell", "socket2 0.6.3", "tracing", - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] @@ -4121,43 +4126,6 @@ dependencies = [ "bytecheck", ] -[[package]] -name = "reqwest" -version = "0.12.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures-core", - "http 1.4.1", - "http-body 1.0.1", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-util", - "js-sys", - "log", - "percent-encoding", - "pin-project-lite", - "rustls", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-rustls", - "tower", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots", -] - [[package]] name = "reqwest" version = "0.13.4" @@ -4175,21 +4143,20 @@ dependencies = [ "http-body-util", "hyper", "hyper-rustls", - "hyper-tls", "hyper-util", "js-sys", "log", "mime", - "native-tls", "percent-encoding", "pin-project-lite", "quinn", "rustls", "rustls-pki-types", "rustls-platform-verifier", + "serde", + "serde_json", "sync_wrapper", "tokio", - "tokio-native-tls", "tokio-rustls", "tokio-util", "tower", @@ -4290,28 +4257,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rust" -version = "0.1.0" -dependencies = [ - "bytes", - "chrono", - "futures-util", - "libc", - "ordered-float", - "parking_lot", - "rand 0.9.4", - "reqwest 0.13.4", - "rust_decimal", - "serde_json", - "serial_test", - "sqlx", - "tokio", - "tokio-postgres", - "tokio-rustls", - "uuid", -] - [[package]] name = "rust_decimal" version = "1.42.0" @@ -5422,16 +5367,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - [[package]] name = "tokio-postgres" version = "0.7.17" @@ -5725,9 +5660,9 @@ checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "typespec" -version = "0.14.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "247afbeabe0c383f630d0fdcb4fb92818c31cd3fe5d293335daff8cac79d4e0f" +checksum = "21666a31293beab8f41d38c2849ddbc342cd9c7cb4d71a9818868287a8934e53" dependencies = [ "base64 0.22.1", "bytes", @@ -5739,9 +5674,9 @@ dependencies = [ [[package]] name = "typespec_client_core" -version = "0.13.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66166c78ee5b5a03b665a639899414a468f645f58dba3c8154b82d64847d227b" +checksum = "924f0c734e0ac3b881ab99d032bd28fcc969d2bb73ef1b8dd4772fd8e518a382" dependencies = [ "async-trait", "base64 0.22.1", @@ -5750,7 +5685,7 @@ dependencies = [ "futures", "pin-project", "rand 0.10.1", - "reqwest 0.13.4", + "reqwest", "serde", "serde_json", "time", @@ -5764,9 +5699,9 @@ dependencies = [ [[package]] name = "typespec_macros" -version = "0.13.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d17153fde258b3c862cecffad95e185c0eb83e619e76542c4b3ed9828af840f0" +checksum = "2c608f4427943f8adb211abc95c87672b1b98847152783507d54e3246e502f60" dependencies = [ "proc-macro2", "quote", @@ -6122,18 +6057,9 @@ dependencies = [ [[package]] name = "webpki-root-certs" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "webpki-roots" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d" +checksum = "0d46a5a140e6f7afeccd8eae97eff335163939eac8b929834875168b29b3d267" dependencies = [ "rustls-pki-types", ] @@ -6370,15 +6296,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.5", -] - [[package]] name = "windows-sys" version = "0.61.2" @@ -6412,30 +6329,13 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", + "windows_i686_gnullvm", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", -] - [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -6448,12 +6348,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -6466,12 +6360,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -6484,24 +6372,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -6514,12 +6390,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -6532,12 +6402,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -6550,12 +6414,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -6568,12 +6426,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - [[package]] name = "winnow" version = "0.7.15" diff --git a/Cargo.toml b/Cargo.toml index 822924e7f..285eda5f5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,6 +26,11 @@ bon = "3.9" schemars = { version = "1.2.1", features = ["uuid1"] } serde_json = "1.0" indexmap = { version = "2.14", features = ["serde"] } +reqwest = { version = "0.13", features = ["json"] } +bytes = "1" +uuid = { version = "1", features = ["v4", "serde"] } +parking_lot = "0.12" +futures-util = "0.3.32" # [patch.crates-io] # tokio = { path = "../tokio/tokio" } diff --git a/integration/rust/Cargo.toml b/integration/rust/Cargo.toml index 62f11be35..3cbc0ecb7 100644 --- a/integration/rust/Cargo.toml +++ b/integration/rust/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "rust" +name = "integration_tests_rust" version = "0.1.0" edition = "2024" @@ -10,16 +10,16 @@ test = true tokio-postgres = {version = "0.7.13", features = ["with-uuid-1"]} sqlx = { version = "0.8.6", features = ["postgres", "runtime-tokio", "tls-native-tls", "bigdecimal", "chrono", "json", "rust_decimal"]} tokio = { version = "1", features = ["full"]} -futures-util = "*" -uuid = "*" +futures-util.workspace = true +uuid.workspace = true serial_test = "3" chrono = "0.4" -parking_lot = "*" -reqwest = "*" -serde_json = "*" +parking_lot.workspace = true +reqwest.workspace = true +serde_json.workspace = true ordered-float = "4.2" tokio-rustls = "0.26" libc = "0.2" rand = "0.9" -bytes = "*" +bytes.workspace = true rust_decimal = { version = "1.42.0", features = ["macros"] } diff --git a/integration/rust/dev.sh b/integration/rust/dev.sh index 400895fb9..3ec4e43ad 100644 --- a/integration/rust/dev.sh +++ b/integration/rust/dev.sh @@ -3,5 +3,5 @@ SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) set -e pushd ${SCRIPT_DIR} -cargo nextest run --no-fail-fast --test-threads=1 +cargo nextest run --profile integration popd diff --git a/integration/rust/tests/integration/admin/show_config.rs b/integration/rust/tests/integration/admin/show_config.rs index 902c8f6bc..a1bed6937 100644 --- a/integration/rust/tests/integration/admin/show_config.rs +++ b/integration/rust/tests/integration/admin/show_config.rs @@ -1,6 +1,6 @@ use std::collections::HashMap; -use rust::setup::admin_sqlx; +use crate::setup::admin_sqlx; use sqlx::{Executor, Row}; use super::assert_layout; diff --git a/integration/rust/tests/integration/admin/show_version.rs b/integration/rust/tests/integration/admin/show_version.rs index ad7f9f073..e215bfce7 100644 --- a/integration/rust/tests/integration/admin/show_version.rs +++ b/integration/rust/tests/integration/admin/show_version.rs @@ -1,4 +1,4 @@ -use rust::setup::admin_sqlx; +use crate::setup::admin_sqlx; use sqlx::{Executor, Row}; use super::assert_layout; diff --git a/integration/rust/tests/integration/admin/tasks.rs b/integration/rust/tests/integration/admin/tasks.rs index 436e75592..f251b86b5 100644 --- a/integration/rust/tests/integration/admin/tasks.rs +++ b/integration/rust/tests/integration/admin/tasks.rs @@ -1,6 +1,6 @@ use std::time::Duration; -use rust::setup::{admin_sqlx, connection_sqlx_direct, connection_sqlx_direct_db}; +use crate::setup::{admin_sqlx, connection_sqlx_direct, connection_sqlx_direct_db}; use sqlx::{Executor, Pool, Postgres, Row}; use tokio::time::{sleep, timeout}; diff --git a/integration/rust/tests/integration/admin_termination.rs b/integration/rust/tests/integration/admin_termination.rs index 572055cb1..1d4e22127 100644 --- a/integration/rust/tests/integration/admin_termination.rs +++ b/integration/rust/tests/integration/admin_termination.rs @@ -1,4 +1,4 @@ -use rust::setup::{admin_sqlx, connection_sqlx_direct, connections_sqlx}; +use crate::setup::{admin_sqlx, connection_sqlx_direct, connections_sqlx}; use sqlx::{Executor, Row}; /// Test that PgDog gracefully handles connections terminated by administrator command. @@ -38,8 +38,8 @@ async fn test_admin_termination_retry() { // The pooler passes through the client's application_name, which is "sqlx" let pids: Vec = admin_pool .fetch_all( - "SELECT pid FROM pg_stat_activity - WHERE datname = 'pgdog' + "SELECT pid FROM pg_stat_activity + WHERE datname = 'pgdog' AND application_name = 'sqlx' AND state = 'idle' AND pid != pg_backend_pid()", diff --git a/integration/rust/tests/integration/auth.rs b/integration/rust/tests/integration/auth.rs index e2e8c5231..46229d7ad 100644 --- a/integration/rust/tests/integration/auth.rs +++ b/integration/rust/tests/integration/auth.rs @@ -1,5 +1,5 @@ -use rust::setup::admin_sqlx; -use rust::utils::assert_setting_str; +use crate::setup::admin_sqlx; +use crate::utils::assert_setting_str; use serial_test::serial; use sqlx::{Connection, Executor, PgConnection}; diff --git a/integration/rust/tests/integration/auto_id.rs b/integration/rust/tests/integration/auto_id.rs index 92116fbcf..8ab9a6a08 100644 --- a/integration/rust/tests/integration/auto_id.rs +++ b/integration/rust/tests/integration/auto_id.rs @@ -1,6 +1,6 @@ //! Integration tests for auto_id injection of pgdog.unique_id() -use rust::setup::{admin_sqlx, connections_sqlx}; +use crate::setup::{admin_sqlx, connections_sqlx}; use sqlx::{Executor, Pool, Postgres}; const AUTO_ID_TABLE: &str = "auto_id_test"; diff --git a/integration/rust/tests/integration/avg.rs b/integration/rust/tests/integration/avg.rs index f44e99c40..50bb665d4 100644 --- a/integration/rust/tests/integration/avg.rs +++ b/integration/rust/tests/integration/avg.rs @@ -1,4 +1,4 @@ -use rust::setup::{admin_sqlx, connections_sqlx}; +use crate::setup::{admin_sqlx, connections_sqlx}; use sqlx::{Connection, Executor, PgConnection, Row}; #[tokio::test] diff --git a/integration/rust/tests/integration/ban.rs b/integration/rust/tests/integration/ban.rs index eed84ee58..baaf77541 100644 --- a/integration/rust/tests/integration/ban.rs +++ b/integration/rust/tests/integration/ban.rs @@ -1,4 +1,4 @@ -use rust::setup::{admin_sqlx, connections_sqlx}; +use crate::setup::{admin_sqlx, connections_sqlx}; use sqlx::Executor; use sqlx::Row; diff --git a/integration/rust/tests/integration/cancel.rs b/integration/rust/tests/integration/cancel.rs index 3d3f4bafb..f8a3eaebc 100644 --- a/integration/rust/tests/integration/cancel.rs +++ b/integration/rust/tests/integration/cancel.rs @@ -1,7 +1,7 @@ use std::time::Duration; +use crate::setup::{admin_tokio, connection_sqlx_direct}; use bytes::{BufMut, BytesMut}; -use rust::setup::{admin_tokio, connection_sqlx_direct}; use sqlx::PgPool; use tokio::{io::AsyncWriteExt, net::TcpStream, task::JoinHandle, time::timeout}; use tokio_postgres::{CancelToken, Error as PgError, NoTls, SimpleQueryMessage}; diff --git a/integration/rust/tests/integration/client_ids.rs b/integration/rust/tests/integration/client_ids.rs index 7402ac4a9..faa476b87 100644 --- a/integration/rust/tests/integration/client_ids.rs +++ b/integration/rust/tests/integration/client_ids.rs @@ -1,5 +1,5 @@ +use crate::setup::admin_sqlx; use futures_util::future::join_all; -use rust::setup::admin_sqlx; use serial_test::serial; use sqlx::{Executor, Row}; use std::collections::HashSet; diff --git a/integration/rust/tests/integration/connection_recovery.rs b/integration/rust/tests/integration/connection_recovery.rs index 7c260ccc5..d12d4e434 100644 --- a/integration/rust/tests/integration/connection_recovery.rs +++ b/integration/rust/tests/integration/connection_recovery.rs @@ -1,4 +1,4 @@ -use rust::setup::{admin_sqlx, admin_tokio}; +use crate::setup::{admin_sqlx, admin_tokio}; use serial_test::serial; use sqlx::{Executor, Row}; use std::time::Duration; diff --git a/integration/rust/tests/integration/copy.rs b/integration/rust/tests/integration/copy.rs index 7755f26cc..2a33d5d5c 100644 --- a/integration/rust/tests/integration/copy.rs +++ b/integration/rust/tests/integration/copy.rs @@ -1,4 +1,4 @@ -use rust::setup::{connections_sqlx, connections_tokio}; +use crate::setup::{connections_sqlx, connections_tokio}; #[tokio::test] async fn copy_from_csv() -> Result<(), Box> { diff --git a/integration/rust/tests/integration/cross_shard_disabled.rs b/integration/rust/tests/integration/cross_shard_disabled.rs index e9b42aed1..87394fe08 100644 --- a/integration/rust/tests/integration/cross_shard_disabled.rs +++ b/integration/rust/tests/integration/cross_shard_disabled.rs @@ -1,6 +1,6 @@ use std::time::Duration; -use rust::setup::{admin_sqlx, connections_sqlx}; +use crate::setup::{admin_sqlx, connections_sqlx}; use sqlx::Executor; use tokio::time::sleep; diff --git a/integration/rust/tests/integration/distinct.rs b/integration/rust/tests/integration/distinct.rs index a0ad12b05..6160dd93e 100644 --- a/integration/rust/tests/integration/distinct.rs +++ b/integration/rust/tests/integration/distinct.rs @@ -1,4 +1,4 @@ -use rust::setup::connections_sqlx; +use crate::setup::connections_sqlx; use sqlx::{Executor, Row}; #[tokio::test] diff --git a/integration/rust/tests/integration/explain.rs b/integration/rust/tests/integration/explain.rs index 85637f439..7d8cdfd10 100644 --- a/integration/rust/tests/integration/explain.rs +++ b/integration/rust/tests/integration/explain.rs @@ -1,4 +1,4 @@ -use rust::setup::{admin_sqlx, connections_tokio}; +use crate::setup::{admin_sqlx, connections_tokio}; use sqlx::Executor; use tokio_postgres::SimpleQueryMessage; diff --git a/integration/rust/tests/integration/fake_transactions.rs b/integration/rust/tests/integration/fake_transactions.rs index 924dafed5..1b8269498 100644 --- a/integration/rust/tests/integration/fake_transactions.rs +++ b/integration/rust/tests/integration/fake_transactions.rs @@ -1,4 +1,4 @@ -use rust::setup::{admin_sqlx, connections_sqlx}; +use crate::setup::{admin_sqlx, connections_sqlx}; use serial_test::serial; use sqlx::{Executor, Pool, Postgres, Row}; diff --git a/integration/rust/tests/integration/idle_in_transaction.rs b/integration/rust/tests/integration/idle_in_transaction.rs index 9905fee31..f408db86d 100644 --- a/integration/rust/tests/integration/idle_in_transaction.rs +++ b/integration/rust/tests/integration/idle_in_transaction.rs @@ -1,6 +1,6 @@ use std::time::Duration; -use rust::setup::{admin_sqlx, connection_sqlx_direct, connections_sqlx}; +use crate::setup::{admin_sqlx, connection_sqlx_direct, connections_sqlx}; use sqlx::{Executor, Row}; use tokio::time::sleep; diff --git a/integration/rust/tests/integration/limit.rs b/integration/rust/tests/integration/limit.rs index 6976091b5..3bbcba93a 100644 --- a/integration/rust/tests/integration/limit.rs +++ b/integration/rust/tests/integration/limit.rs @@ -1,5 +1,5 @@ -use rust::setup::admin_sqlx; -use rust::setup::connections_sqlx; +use crate::setup::admin_sqlx; +use crate::setup::connections_sqlx; use sqlx::{Executor, Row, postgres::PgPool}; #[tokio::test] diff --git a/integration/rust/tests/integration/maintenance_mode.rs b/integration/rust/tests/integration/maintenance_mode.rs index 8659cda00..80eff213f 100644 --- a/integration/rust/tests/integration/maintenance_mode.rs +++ b/integration/rust/tests/integration/maintenance_mode.rs @@ -1,6 +1,6 @@ use std::time::Duration; -use rust::setup::{admin_sqlx, admin_tokio, connection_failover, connections_sqlx}; +use crate::setup::{admin_sqlx, admin_tokio, connection_failover, connections_sqlx}; use serial_test::serial; use sqlx::Executor; use tokio::time::sleep; diff --git a/integration/rust/tests/integration/max.rs b/integration/rust/tests/integration/max.rs index 91cdc55b2..89d2ba300 100644 --- a/integration/rust/tests/integration/max.rs +++ b/integration/rust/tests/integration/max.rs @@ -1,5 +1,5 @@ +use crate::setup::{admin_sqlx, connections_sqlx}; use chrono::{DateTime, NaiveDateTime, Utc}; -use rust::setup::{admin_sqlx, connections_sqlx}; use sqlx::{Connection, Executor, PgConnection, Row, postgres::PgPool}; const SHARD_URLS: [&str; 2] = [ diff --git a/integration/rust/tests/integration/multi_set.rs b/integration/rust/tests/integration/multi_set.rs index 318aa34a4..b3f53af35 100644 --- a/integration/rust/tests/integration/multi_set.rs +++ b/integration/rust/tests/integration/multi_set.rs @@ -1,4 +1,4 @@ -use rust::setup::connections_tokio; +use crate::setup::connections_tokio; fn extract_simple_query_value(msgs: &[tokio_postgres::SimpleQueryMessage]) -> String { for msg in msgs { diff --git a/integration/rust/tests/integration/notify.rs b/integration/rust/tests/integration/notify.rs index 45a5e0453..8baf8cad7 100644 --- a/integration/rust/tests/integration/notify.rs +++ b/integration/rust/tests/integration/notify.rs @@ -1,8 +1,8 @@ use std::sync::Arc; use std::time::{Duration, SystemTime, UNIX_EPOCH}; +use crate::setup::admin_sqlx; use parking_lot::Mutex; -use rust::setup::admin_sqlx; use rust_decimal::prelude::ToPrimitive; use sqlx::{Connection, Executor, PgConnection, Pool, Postgres, Row, postgres::PgListener}; use tokio::{ diff --git a/integration/rust/tests/integration/offset.rs b/integration/rust/tests/integration/offset.rs index 5529b2dbe..0afffc27e 100644 --- a/integration/rust/tests/integration/offset.rs +++ b/integration/rust/tests/integration/offset.rs @@ -1,4 +1,4 @@ -use rust::setup::{admin_sqlx, connections_sqlx}; +use crate::setup::{admin_sqlx, connections_sqlx}; use sqlx::{Executor, Row, postgres::PgPool}; const TABLE: &str = "offset_test"; diff --git a/integration/rust/tests/integration/partial_req.rs b/integration/rust/tests/integration/partial_req.rs index 94f2a4929..4414a9547 100644 --- a/integration/rust/tests/integration/partial_req.rs +++ b/integration/rust/tests/integration/partial_req.rs @@ -1,6 +1,6 @@ use std::time::Duration; -use rust::{ +use crate::{ setup::{admin_sqlx, connection_sqlx_direct}, utils::{Message, connect}, }; diff --git a/integration/rust/tests/integration/per_stmt_routing.rs b/integration/rust/tests/integration/per_stmt_routing.rs index a2777f654..67816d14e 100644 --- a/integration/rust/tests/integration/per_stmt_routing.rs +++ b/integration/rust/tests/integration/per_stmt_routing.rs @@ -1,4 +1,4 @@ -use rust::setup::{admin_sqlx, connections_sqlx}; +use crate::setup::{admin_sqlx, connections_sqlx}; use sqlx::{Acquire, Executor, Row}; #[tokio::test] diff --git a/integration/rust/tests/integration/prepared.rs b/integration/rust/tests/integration/prepared.rs index cad067ec9..cac8bdf13 100644 --- a/integration/rust/tests/integration/prepared.rs +++ b/integration/rust/tests/integration/prepared.rs @@ -1,6 +1,6 @@ use std::time::Duration; -use rust::setup::*; +use crate::setup::*; use sqlx::{Executor, Row, postgres::PgPoolOptions, types::BigDecimal}; use tokio::{spawn, time::sleep}; diff --git a/integration/rust/tests/integration/protocol_version.rs b/integration/rust/tests/integration/protocol_version.rs index 355b3d3e8..a559f22bd 100644 --- a/integration/rust/tests/integration/protocol_version.rs +++ b/integration/rust/tests/integration/protocol_version.rs @@ -1,8 +1,8 @@ -use bytes::{Buf, Bytes}; -use rust::{ +use crate::{ setup::admin_sqlx, utils::{Message, startup_with_version}, }; +use bytes::{Buf, Bytes}; use serial_test::serial; use sqlx::Executor; use tokio::{io::AsyncWriteExt, net::TcpStream}; diff --git a/integration/rust/tests/integration/reload.rs b/integration/rust/tests/integration/reload.rs index edd859cf7..b21b8470e 100644 --- a/integration/rust/tests/integration/reload.rs +++ b/integration/rust/tests/integration/reload.rs @@ -1,6 +1,6 @@ use std::time::Duration; -use rust::setup::{admin_tokio, backends, connection_failover, connection_sqlx_direct}; +use crate::setup::{admin_tokio, backends, connection_failover, connection_sqlx_direct}; use serial_test::serial; use sqlx::{Executor, Row, postgres::PgPoolOptions}; use tokio::time::sleep; diff --git a/integration/rust/tests/integration/reset.rs b/integration/rust/tests/integration/reset.rs index 5b4cf8e41..ab88fb04b 100644 --- a/integration/rust/tests/integration/reset.rs +++ b/integration/rust/tests/integration/reset.rs @@ -1,4 +1,4 @@ -use rust::setup::{admin_sqlx, connections_sqlx}; +use crate::setup::{admin_sqlx, connections_sqlx}; use sqlx::Executor; async fn run_reset_single_param() { diff --git a/integration/rust/tests/integration/rewrite.rs b/integration/rust/tests/integration/rewrite.rs index ac1635b20..74448c944 100644 --- a/integration/rust/tests/integration/rewrite.rs +++ b/integration/rust/tests/integration/rewrite.rs @@ -1,4 +1,4 @@ -use rust::setup::{admin_sqlx, connections_sqlx}; +use crate::setup::{admin_sqlx, connections_sqlx}; use sqlx::{Executor, Pool, Postgres}; const TEST_TABLE: &str = "sharded_list"; diff --git a/integration/rust/tests/integration/rewrite_omni.rs b/integration/rust/tests/integration/rewrite_omni.rs index e9d30fd2c..532774eda 100644 --- a/integration/rust/tests/integration/rewrite_omni.rs +++ b/integration/rust/tests/integration/rewrite_omni.rs @@ -1,4 +1,4 @@ -use rust::setup::*; +use crate::setup::*; use sqlx::Executor; #[tokio::test] diff --git a/integration/rust/tests/integration/savepoint.rs b/integration/rust/tests/integration/savepoint.rs index 13973f297..cac423db2 100644 --- a/integration/rust/tests/integration/savepoint.rs +++ b/integration/rust/tests/integration/savepoint.rs @@ -1,4 +1,4 @@ -use rust::setup::connections_sqlx; +use crate::setup::connections_sqlx; use sqlx::Executor; #[tokio::test] diff --git a/integration/rust/tests/integration/set_config.rs b/integration/rust/tests/integration/set_config.rs index 7b4bbf67c..8d294d1a1 100644 --- a/integration/rust/tests/integration/set_config.rs +++ b/integration/rust/tests/integration/set_config.rs @@ -1,4 +1,4 @@ -use rust::setup::connections_sqlx; +use crate::setup::connections_sqlx; use sqlx::query_scalar; use std::assert_matches; diff --git a/integration/rust/tests/integration/set_in_transaction.rs b/integration/rust/tests/integration/set_in_transaction.rs index 7a327cd36..ebd862c0c 100644 --- a/integration/rust/tests/integration/set_in_transaction.rs +++ b/integration/rust/tests/integration/set_in_transaction.rs @@ -1,4 +1,4 @@ -use rust::setup::{admin_sqlx, connections_sqlx}; +use crate::setup::{admin_sqlx, connections_sqlx}; use sqlx::Executor; async fn run_set_in_transaction_reset_after_commit() { diff --git a/integration/rust/tests/integration/set_sharding_key.rs b/integration/rust/tests/integration/set_sharding_key.rs index 8cc21faff..84f2aee2c 100644 --- a/integration/rust/tests/integration/set_sharding_key.rs +++ b/integration/rust/tests/integration/set_sharding_key.rs @@ -1,6 +1,6 @@ //! Test cluster with just one sharding function. -use rust::setup::connections_sqlx; +use crate::setup::connections_sqlx; use sqlx::Connection; use sqlx::prelude::*; diff --git a/integration/rust/tests/integration/shard_consistency.rs b/integration/rust/tests/integration/shard_consistency.rs index 562fdfe0d..ee2739244 100644 --- a/integration/rust/tests/integration/shard_consistency.rs +++ b/integration/rust/tests/integration/shard_consistency.rs @@ -1,4 +1,4 @@ -use rust::setup::{admin_sqlx, connections_sqlx}; +use crate::setup::{admin_sqlx, connections_sqlx}; use sqlx::{Executor, Row}; #[tokio::test] diff --git a/integration/rust/tests/integration/stddev.rs b/integration/rust/tests/integration/stddev.rs index 7808b3b98..805d932b1 100644 --- a/integration/rust/tests/integration/stddev.rs +++ b/integration/rust/tests/integration/stddev.rs @@ -1,4 +1,4 @@ -use rust::setup::{admin_sqlx, connections_sqlx}; +use crate::setup::{admin_sqlx, connections_sqlx}; use rust_decimal::prelude::*; use sqlx::{Executor, Pool, Postgres, Row}; diff --git a/integration/rust/tests/integration/sum.rs b/integration/rust/tests/integration/sum.rs index fceb64ea0..0c0bb7b51 100644 --- a/integration/rust/tests/integration/sum.rs +++ b/integration/rust/tests/integration/sum.rs @@ -1,4 +1,4 @@ -use rust::setup::{admin_sqlx, connections_sqlx}; +use crate::setup::{admin_sqlx, connections_sqlx}; use sqlx::{Connection, Executor, PgConnection, Row, postgres::PgPool}; const SHARD_URLS: [&str; 2] = [ diff --git a/integration/rust/tests/integration/syntax_error.rs b/integration/rust/tests/integration/syntax_error.rs index 7b9009673..ed8ae1196 100644 --- a/integration/rust/tests/integration/syntax_error.rs +++ b/integration/rust/tests/integration/syntax_error.rs @@ -1,4 +1,4 @@ -use rust::setup::connections_sqlx; +use crate::setup::connections_sqlx; use sqlx::Executor; /// Make sure we don't get disconnected on syntax error. diff --git a/integration/rust/tests/integration/timestamp_sorting.rs b/integration/rust/tests/integration/timestamp_sorting.rs index 446e6a730..cd56ccee0 100644 --- a/integration/rust/tests/integration/timestamp_sorting.rs +++ b/integration/rust/tests/integration/timestamp_sorting.rs @@ -1,5 +1,5 @@ +use crate::setup::connections_sqlx; use chrono::{Duration, Utc}; -use rust::setup::connections_sqlx; use sqlx::{Executor, Row}; #[tokio::test] @@ -41,7 +41,7 @@ async fn test_timestamp_sorting_across_shards() { for (id, name, timestamp) in &test_data { sqlx::query( - "INSERT INTO timestamp_test (id, name, created_at, updated_at) + "INSERT INTO timestamp_test (id, name, created_at, updated_at) VALUES ($1, $2, $3, $3)", ) .bind(id) @@ -138,7 +138,7 @@ async fn test_timestamp_sorting_across_shards() { ); sqlx::query( - "INSERT INTO timestamp_test (id, name, created_at, special_ts) + "INSERT INTO timestamp_test (id, name, created_at, special_ts) VALUES ($1, $2, $3, 'infinity'::timestamp)", ) .bind(301i64) @@ -149,7 +149,7 @@ async fn test_timestamp_sorting_across_shards() { .unwrap(); sqlx::query( - "INSERT INTO timestamp_test (id, name, created_at, special_ts) + "INSERT INTO timestamp_test (id, name, created_at, special_ts) VALUES ($1, $2, $3, '-infinity'::timestamp)", ) .bind(302i64) diff --git a/integration/rust/tests/integration/tls_enforced.rs b/integration/rust/tests/integration/tls_enforced.rs index 058f2a266..68746ee5f 100644 --- a/integration/rust/tests/integration/tls_enforced.rs +++ b/integration/rust/tests/integration/tls_enforced.rs @@ -1,5 +1,5 @@ -use rust::setup::admin_sqlx; -use rust::utils::assert_setting_str; +use crate::setup::admin_sqlx; +use crate::utils::assert_setting_str; use sqlx::{ConnectOptions, Connection, Executor, postgres::PgSslMode}; #[tokio::test] diff --git a/integration/rust/tests/integration/tls_reload.rs b/integration/rust/tests/integration/tls_reload.rs index 9a86ecb97..ef3e95e3b 100644 --- a/integration/rust/tests/integration/tls_reload.rs +++ b/integration/rust/tests/integration/tls_reload.rs @@ -9,7 +9,7 @@ use std::{ time::Duration, }; -use rust::setup::admin_tokio; +use crate::setup::admin_tokio; use serial_test::serial; use tokio::{ io::{AsyncReadExt, AsyncWriteExt}, diff --git a/integration/rust/tests/integration/transaction_state.rs b/integration/rust/tests/integration/transaction_state.rs index 37e3adf7a..531cc47fb 100644 --- a/integration/rust/tests/integration/transaction_state.rs +++ b/integration/rust/tests/integration/transaction_state.rs @@ -1,4 +1,4 @@ -use rust::setup::admin_sqlx; +use crate::setup::admin_sqlx; use serial_test::serial; use sqlx::{Executor, Pool, Postgres, Row}; use tokio::time::{Duration, Instant, sleep}; diff --git a/integration/rust/tests/integration/unrecognized_aggregate.rs b/integration/rust/tests/integration/unrecognized_aggregate.rs index ca413625d..a706e461b 100644 --- a/integration/rust/tests/integration/unrecognized_aggregate.rs +++ b/integration/rust/tests/integration/unrecognized_aggregate.rs @@ -1,4 +1,4 @@ -use rust::setup::{admin_sqlx, connections_sqlx}; +use crate::setup::{admin_sqlx, connections_sqlx}; use sqlx::Executor; use std::assert_matches; diff --git a/integration/rust/tests/mod.rs b/integration/rust/tests/mod.rs index ac6110765..5b7601c85 100644 --- a/integration/rust/tests/mod.rs +++ b/integration/rust/tests/mod.rs @@ -5,3 +5,5 @@ pub mod stats; pub mod tokio_postgres; pub use stats::get_stat; + +use integration_tests_rust::*; diff --git a/integration/rust/tests/sqlx/bad_auth.rs b/integration/rust/tests/sqlx/bad_auth.rs index 3b78deb26..cee44babd 100644 --- a/integration/rust/tests/sqlx/bad_auth.rs +++ b/integration/rust/tests/sqlx/bad_auth.rs @@ -1,4 +1,4 @@ -use rust::setup::admin_sqlx; +use crate::setup::admin_sqlx; use serial_test::serial; use sqlx::{Connection, Executor, PgConnection}; diff --git a/integration/rust/tests/sqlx/multi_set.rs b/integration/rust/tests/sqlx/multi_set.rs index 0127e7f2b..b268a6e7b 100644 --- a/integration/rust/tests/sqlx/multi_set.rs +++ b/integration/rust/tests/sqlx/multi_set.rs @@ -1,4 +1,4 @@ -use rust::setup::connections_sqlx; +use crate::setup::connections_sqlx; use sqlx::Executor; #[tokio::test] diff --git a/integration/rust/tests/sqlx/select.rs b/integration/rust/tests/sqlx/select.rs index 463025855..01cac669b 100644 --- a/integration/rust/tests/sqlx/select.rs +++ b/integration/rust/tests/sqlx/select.rs @@ -1,4 +1,4 @@ -use rust::setup::connections_sqlx; +use crate::setup::connections_sqlx; use tokio::task::JoinSet; use crate::get_stat; diff --git a/integration/rust/tests/sqlx/unique_id.rs b/integration/rust/tests/sqlx/unique_id.rs index c14065097..411bc9a88 100644 --- a/integration/rust/tests/sqlx/unique_id.rs +++ b/integration/rust/tests/sqlx/unique_id.rs @@ -1,4 +1,4 @@ -use rust::setup::connection_sqlx_direct; +use crate::setup::connection_sqlx_direct; use sqlx::{Executor, Postgres, pool::Pool, postgres::PgPoolOptions}; async fn sharded_pool() -> Pool { diff --git a/integration/rust/tests/tokio_postgres/copy.rs b/integration/rust/tests/tokio_postgres/copy.rs index 4473bedc9..3884cd388 100644 --- a/integration/rust/tests/tokio_postgres/copy.rs +++ b/integration/rust/tests/tokio_postgres/copy.rs @@ -2,7 +2,7 @@ // use tokio_postgres::binary_copy::{BinaryCopyInWriter, BinaryCopyOutStream}; // use tokio_postgres::types::Type; -// use rust::setup::connections; +// use crate::setup::connections; // #[tokio::test] // async fn test_copy() { diff --git a/integration/rust/tests/tokio_postgres/nulls.rs b/integration/rust/tests/tokio_postgres/nulls.rs index a48dad449..094105d3b 100644 --- a/integration/rust/tests/tokio_postgres/nulls.rs +++ b/integration/rust/tests/tokio_postgres/nulls.rs @@ -1,4 +1,4 @@ -use rust::setup::connections_tokio; +use crate::setup::connections_tokio; #[tokio::test] async fn test_nulls() { diff --git a/integration/rust/tests/tokio_postgres/prepared.rs b/integration/rust/tests/tokio_postgres/prepared.rs index 6baf8e566..6254aeb29 100644 --- a/integration/rust/tests/tokio_postgres/prepared.rs +++ b/integration/rust/tests/tokio_postgres/prepared.rs @@ -1,4 +1,4 @@ -use rust::setup::*; +use crate::setup::*; #[tokio::test] async fn test_prepared() { diff --git a/integration/rust/tests/tokio_postgres/select.rs b/integration/rust/tests/tokio_postgres/select.rs index f66383331..42c1946ef 100644 --- a/integration/rust/tests/tokio_postgres/select.rs +++ b/integration/rust/tests/tokio_postgres/select.rs @@ -1,4 +1,4 @@ -use rust::setup::connections_tokio; +use crate::setup::connections_tokio; #[tokio::test] async fn select_one() { diff --git a/nextest.toml b/nextest.toml deleted file mode 100644 index 3ca534675..000000000 --- a/nextest.toml +++ /dev/null @@ -1,2 +0,0 @@ -[profile.default] -slow-timeout = { period = "60s", terminate-after = 2 } diff --git a/pgdog-config/Cargo.toml b/pgdog-config/Cargo.toml index dc5f4a29b..87519e115 100644 --- a/pgdog-config/Cargo.toml +++ b/pgdog-config/Cargo.toml @@ -5,12 +5,12 @@ edition = "2024" [dependencies] serde = { version = "1", features = ["derive"] } -serde_json = "1" +serde_json.workspace = true tracing = "0.1" thiserror = "2" toml = "0.8" url = "2" -uuid = { version = "1", features = ["v4", "serde"] } +uuid.workspace = true rand = "*" pgdog-vector = { path = "../pgdog-vector" } once_cell = "*" diff --git a/pgdog-postgres-types/Cargo.toml b/pgdog-postgres-types/Cargo.toml index 8c5042bad..3abe65b14 100644 --- a/pgdog-postgres-types/Cargo.toml +++ b/pgdog-postgres-types/Cargo.toml @@ -5,9 +5,9 @@ edition = "2024" [dependencies] chrono = "0.4" -bytes = "*" +bytes.workspace = true thiserror = "*" -uuid = "*" +uuid.workspace = true serde = { version = "*", features = ["derive"]} schemars.workspace = true pgdog-vector = { path = "../pgdog-vector" } diff --git a/pgdog-stats/Cargo.toml b/pgdog-stats/Cargo.toml index 883d0aed1..5ee15a9a9 100644 --- a/pgdog-stats/Cargo.toml +++ b/pgdog-stats/Cargo.toml @@ -7,6 +7,6 @@ edition = "2024" serde = {version = "*", features = ["derive", "rc"]} pgdog-config = { path = "../pgdog-config" } pgdog-postgres-types = { path = "../pgdog-postgres-types" } -bytes = "*" -indexmap = { version = "*", features = ["serde"] } +bytes.workspace = true +indexmap.workspace = true schemars.workspace = true diff --git a/pgdog-vector/Cargo.toml b/pgdog-vector/Cargo.toml index 09a4f6860..900753ae1 100644 --- a/pgdog-vector/Cargo.toml +++ b/pgdog-vector/Cargo.toml @@ -5,5 +5,5 @@ edition = "2024" [dependencies] serde = { version = "1", features = ["derive"] } -serde_json = "1" +serde_json.workspace = true schemars.workspace = true diff --git a/pgdog/Cargo.toml b/pgdog/Cargo.toml index 13cec23b2..689a5d22f 100644 --- a/pgdog/Cargo.toml +++ b/pgdog/Cargo.toml @@ -21,13 +21,13 @@ tokio = { version = "1", features = ["full"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "json", "std"] } tracing-throttle = "0.4" -parking_lot = "0.12" +parking_lot.workspace = true thiserror = "2" derive_more = { version = "2", features = ["display", "debug", "error", "from", "from_str"] } -bytes = "1" +bytes.workspace = true clap = { version = "4", features = ["derive"] } serde = { version = "1", features = ["derive"] } -serde_json = "1" +serde_json.workspace = true async-trait = "0.1" rand = "0.9.2" once_cell = "1" @@ -49,7 +49,7 @@ pg_query = { git = "https://github.com/pgdogdev/pg_query.rs.git", rev = "97019d0 regex = "1" memchr = "2" semver = "1" -uuid = { version = "1", features = ["v4", "serde"] } +uuid.workspace = true url = "2" ratatui = { version = "0.30.0-alpha.1", optional = true } rmp-serde = "1" @@ -72,12 +72,12 @@ pgdog-config = { path = "../pgdog-config" } pgdog-vector = { path = "../pgdog-vector" } pgdog-stats = { path = "../pgdog-stats" } pgdog-postgres-types = { path = "../pgdog-postgres-types"} -azure_identity = "0.34.0" -azure_core = "0.34.0" +azure_identity = "1.0.0" +azure_core = "1.0.0" crc32c = "0.6.8" bit-vec = "0.8" smallvec = "1" -reqwest = { version = "0.12", default-features = false, features = ["rustls-tls-webpki-roots-no-provider", "json"] } +reqwest.workspace = true hex = "0.4" x509-parser = "0.18" pg_raw_parse = { git = "https://github.com/pgdogdev/pg_raw_parse.git", rev = "b94e4cf", optional = true } diff --git a/pgdog/src/backend/databases.rs b/pgdog/src/backend/databases.rs index ac36926c6..18cba4c4c 100644 --- a/pgdog/src/backend/databases.rs +++ b/pgdog/src/backend/databases.rs @@ -1869,13 +1869,13 @@ mod tests { let original_config = r#" [[databases]] name = "source_db" -host = "source-host" +host = "127.0.0.1" port = 5432 role = "primary" [[databases]] name = "destination_db" -host = "destination-host" +host = "127.0.0.2" port = 5433 role = "primary" "#; @@ -1899,54 +1899,54 @@ password = "testpass" cutover("source_db", "destination_db").await.unwrap(); // Verify backup files contain original content - let backup_config_str = fs::read_to_string(config_path.with_extension("bak.toml")) + let backup_config = fs::read_to_string(config_path.with_extension("bak.toml")) .await .unwrap(); - let backup_config: crate::config::Config = toml::from_str(&backup_config_str).unwrap(); + let backup_config: crate::config::Config = toml::from_str(&backup_config).unwrap(); let backup_source = backup_config .databases .iter() .find(|d| d.name == "source_db") .unwrap(); - assert_eq!(backup_source.host, "source-host"); + assert_eq!(backup_source.host, "127.0.0.1"); assert_eq!(backup_source.port, 5432); let backup_dest = backup_config .databases .iter() .find(|d| d.name == "destination_db") .unwrap(); - assert_eq!(backup_dest.host, "destination-host"); + assert_eq!(backup_dest.host, "127.0.0.2"); assert_eq!(backup_dest.port, 5433); - let backup_users_str = fs::read_to_string(users_path.with_extension("bak.toml")) + let backup_users = fs::read_to_string(users_path.with_extension("bak.toml")) .await .unwrap(); - let backup_users: crate::config::Users = toml::from_str(&backup_users_str).unwrap(); + let backup_users: crate::config::Users = toml::from_str(&backup_users).unwrap(); assert_eq!(backup_users.users.len(), 1); assert_eq!(backup_users.users[0].name, "testuser"); assert_eq!(backup_users.users[0].database, "source_db"); // Verify new config files have swapped values - let new_config_str = fs::read_to_string(&config_path).await.unwrap(); - let new_config: crate::config::Config = toml::from_str(&new_config_str).unwrap(); + let new_config = fs::read_to_string(&config_path).await.unwrap(); + let new_config: crate::config::Config = toml::from_str(&new_config).unwrap(); let new_source = new_config .databases .iter() .find(|d| d.name == "source_db") .unwrap(); - assert_eq!(new_source.host, "destination-host"); + assert_eq!(new_source.host, "127.0.0.2"); assert_eq!(new_source.port, 5433); let new_dest = new_config .databases .iter() .find(|d| d.name == "destination_db") .unwrap(); - assert_eq!(new_dest.host, "source-host"); + assert_eq!(new_dest.host, "127.0.0.1"); assert_eq!(new_dest.port, 5432); // Verify users were swapped - let new_users_str = fs::read_to_string(&users_path).await.unwrap(); - let new_users: crate::config::Users = toml::from_str(&new_users_str).unwrap(); + let new_users = fs::read_to_string(&users_path).await.unwrap(); + let new_users: crate::config::Users = toml::from_str(&new_users).unwrap(); assert_eq!(new_users.users.len(), 1); assert_eq!(new_users.users[0].name, "testuser"); assert_eq!(new_users.users[0].database, "destination_db");