diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 6c6fba51..76574eed 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -25,6 +25,7 @@ jobs: --ignore RUSTSEC-2023-0071 \ --ignore RUSTSEC-2023-0086 \ --ignore RUSTSEC-2024-0320 \ + --ignore RUSTSEC-2024-0363 \ --ignore RUSTSEC-2024-0370 \ --ignore RUSTSEC-2024-0376 diff --git a/Cargo.lock b/Cargo.lock index b90c35c5..04e643ab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -237,9 +237,9 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "arrow" -version = "52.2.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05048a8932648b63f21c37d88b552ccc8a65afb6dfe9fc9f30ce79174c2e7a85" +checksum = "219d05930b81663fd3b32e3bde8ce5bff3c4d23052a99f11a8fa50a3b47b2658" dependencies = [ "arrow-arith", "arrow-array", @@ -255,9 +255,9 @@ dependencies = [ [[package]] name = "arrow-arith" -version = "52.2.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d8a57966e43bfe9a3277984a14c24ec617ad874e4c0e1d2a1b083a39cfbf22c" +checksum = "0272150200c07a86a390be651abdd320a2d12e84535f0837566ca87ecd8f95e0" dependencies = [ "arrow-array", "arrow-buffer", @@ -270,9 +270,9 @@ dependencies = [ [[package]] name = "arrow-array" -version = "52.2.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f4a9468c882dc66862cef4e1fd8423d47e67972377d85d80e022786427768c" +checksum = "8010572cf8c745e242d1b632bd97bd6d4f40fefed5ed1290a8f433abaa686fea" dependencies = [ "ahash 0.8.11", "arrow-buffer", @@ -286,9 +286,9 @@ dependencies = [ [[package]] name = "arrow-buffer" -version = "52.2.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c975484888fc95ec4a632cdc98be39c085b1bb518531b0c80c5d462063e5daa1" +checksum = "0d0a2432f0cba5692bf4cb757469c66791394bac9ec7ce63c1afe74744c37b27" dependencies = [ "bytes", "half", @@ -297,9 +297,9 @@ dependencies = [ [[package]] name = "arrow-cast" -version = "52.2.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da26719e76b81d8bc3faad1d4dbdc1bcc10d14704e63dc17fc9f3e7e1e567c8e" +checksum = "9abc10cd7995e83505cc290df9384d6e5412b207b79ce6bdff89a10505ed2cba" dependencies = [ "arrow-array", "arrow-buffer", @@ -318,9 +318,9 @@ dependencies = [ [[package]] name = "arrow-data" -version = "52.2.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd9d6f18c65ef7a2573ab498c374d8ae364b4a4edf67105357491c031f716ca5" +checksum = "2742ac1f6650696ab08c88f6dd3f0eb68ce10f8c253958a18c943a68cd04aec5" dependencies = [ "arrow-buffer", "arrow-schema", @@ -330,9 +330,9 @@ dependencies = [ [[package]] name = "arrow-ord" -version = "52.2.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42745f86b1ab99ef96d1c0bcf49180848a64fe2c7a7a0d945bc64fa2b21ba9bc" +checksum = "e3e6b61e3dc468f503181dccc2fc705bdcc5f2f146755fa5b56d0a6c5943f412" dependencies = [ "arrow-array", "arrow-buffer", @@ -345,9 +345,9 @@ dependencies = [ [[package]] name = "arrow-row" -version = "52.2.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd09a518c602a55bd406bcc291a967b284cfa7a63edfbf8b897ea4748aad23c" +checksum = "848ee52bb92eb459b811fb471175ea3afcf620157674c8794f539838920f9228" dependencies = [ "ahash 0.8.11", "arrow-array", @@ -355,22 +355,23 @@ dependencies = [ "arrow-data", "arrow-schema", "half", + "hashbrown 0.14.5", ] [[package]] name = "arrow-schema" -version = "52.2.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e972cd1ff4a4ccd22f86d3e53e835c2ed92e0eea6a3e8eadb72b4f1ac802cf8" +checksum = "02d9483aaabe910c4781153ae1b6ae0393f72d9ef757d38d09d450070cf2e528" dependencies = [ "bitflags 2.6.0", ] [[package]] name = "arrow-select" -version = "52.2.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "600bae05d43483d216fb3494f8c32fdbefd8aa4e1de237e790dbb3d9f44690a3" +checksum = "849524fa70e0e3c5ab58394c770cb8f514d0122d20de08475f7b472ed8075830" dependencies = [ "ahash 0.8.11", "arrow-array", @@ -382,9 +383,9 @@ dependencies = [ [[package]] name = "arrow-string" -version = "52.2.0" +version = "51.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dc1985b67cb45f6606a248ac2b4a288849f196bab8c657ea5589f47cdd55e6" +checksum = "9373cb5a021aee58863498c37eb484998ef13377f69989c6c5ccfbd258236cdb" dependencies = [ "arrow-array", "arrow-buffer", @@ -1957,9 +1958,9 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "duckdb" -version = "1.0.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626373a331b49f94b24edc4e53a59b0b354f085ac3b339d43d31da7a9b145004" +checksum = "424ede399a5d1084e65c0888fda71e407e5809400c92ff2cf510bfd1697b9c76" dependencies = [ "arrow", "cast", @@ -1968,7 +1969,6 @@ dependencies = [ "hashlink 0.8.4", "libduckdb-sys", "memchr", - "num-integer", "rust_decimal", "smallvec", "strum 0.25.0", @@ -2683,6 +2683,9 @@ name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +dependencies = [ + "unicode-segmentation", +] [[package]] name = "heck" @@ -3403,9 +3406,9 @@ checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" [[package]] name = "libduckdb-sys" -version = "1.0.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa48143af4679c674db9ad7951ff1d3ce67b8b55578e523d96af54152df6c13b" +checksum = "51b3f02cecc430f61561bde538d42af4be2d9d5a8b058f74883e460bc1055461" dependencies = [ "autocfg", "cc", @@ -3598,9 +3601,9 @@ dependencies = [ [[package]] name = "libsqlite3-sys" -version = "0.30.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" +checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" dependencies = [ "cc", "pkg-config", @@ -4827,7 +4830,7 @@ dependencies = [ "postgresql_commands", "rand", "semver", - "sqlx", + "sqlx 0.8.2", "target-triple", "tempfile", "thiserror", @@ -5518,7 +5521,7 @@ dependencies = [ "serde", "serde_json", "sha2", - "sqlx", + "sqlx 0.7.4", "test-log", "testcontainers", "testcontainers-modules", @@ -5562,16 +5565,16 @@ dependencies = [ [[package]] name = "rusqlite" -version = "0.32.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e" +checksum = "a78046161564f5e7cd9008aff3b2990b3850dc8e0349119b98e8f251e099f24d" dependencies = [ "bitflags 2.6.0", "chrono", "csv", "fallible-iterator 0.3.0", "fallible-streaming-iterator", - "hashlink 0.9.1", + "hashlink 0.8.4", "libsqlite3-sys", "serde_json", "smallvec", @@ -6220,23 +6223,35 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.8.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93334716a037193fac19df402f8571269c84a00852f6a7066b5d2616dcd64d3e" +checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa" dependencies = [ - "sqlx-core", - "sqlx-macros", + "sqlx-core 0.7.4", + "sqlx-macros 0.7.4", "sqlx-mysql", - "sqlx-postgres", + "sqlx-postgres 0.7.4", "sqlx-sqlite", ] [[package]] -name = "sqlx-core" +name = "sqlx" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d8060b456358185f7d50c55d9b5066ad956956fddec42ee2e8567134a8936e" +checksum = "93334716a037193fac19df402f8571269c84a00852f6a7066b5d2616dcd64d3e" +dependencies = [ + "sqlx-core 0.8.2", + "sqlx-macros 0.8.2", + "sqlx-postgres 0.8.2", +] + +[[package]] +name = "sqlx-core" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6" dependencies = [ + "ahash 0.8.11", "atoi", "bit-vec", "byteorder", @@ -6245,6 +6260,47 @@ dependencies = [ "crc", "crossbeam-queue", "either", + "event-listener 2.5.3", + "futures-channel", + "futures-core", + "futures-intrusive", + "futures-io", + "futures-util", + "hashlink 0.8.4", + "hex", + "indexmap 2.5.0", + "log", + "memchr", + "once_cell", + "paste", + "percent-encoding", + "rust_decimal", + "serde", + "serde_json", + "sha2", + "smallvec", + "sqlformat", + "thiserror", + "time", + "tokio", + "tokio-stream", + "tracing", + "url", + "uuid", +] + +[[package]] +name = "sqlx-core" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4d8060b456358185f7d50c55d9b5066ad956956fddec42ee2e8567134a8936e" +dependencies = [ + "atoi", + "byteorder", + "bytes", + "crc", + "crossbeam-queue", + "either", "event-listener 5.3.1", "futures-channel", "futures-core", @@ -6261,19 +6317,29 @@ dependencies = [ "once_cell", "paste", "percent-encoding", - "rust_decimal", "serde", "serde_json", "sha2", "smallvec", "sqlformat", "thiserror", - "time", "tokio", "tokio-stream", "tracing", "url", - "uuid", +] + +[[package]] +name = "sqlx-macros" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127" +dependencies = [ + "proc-macro2", + "quote", + "sqlx-core 0.7.4", + "sqlx-macros-core 0.7.4", + "syn 1.0.109", ] [[package]] @@ -6284,11 +6350,37 @@ checksum = "cac0692bcc9de3b073e8d747391827297e075c7710ff6276d9f7a1f3d58c6657" dependencies = [ "proc-macro2", "quote", - "sqlx-core", - "sqlx-macros-core", + "sqlx-core 0.8.2", + "sqlx-macros-core 0.8.2", "syn 2.0.77", ] +[[package]] +name = "sqlx-macros-core" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8" +dependencies = [ + "dotenvy", + "either", + "heck 0.4.1", + "hex", + "once_cell", + "proc-macro2", + "quote", + "serde", + "serde_json", + "sha2", + "sqlx-core 0.7.4", + "sqlx-mysql", + "sqlx-postgres 0.7.4", + "sqlx-sqlite", + "syn 1.0.109", + "tempfile", + "tokio", + "url", +] + [[package]] name = "sqlx-macros-core" version = "0.8.2" @@ -6305,10 +6397,8 @@ dependencies = [ "serde", "serde_json", "sha2", - "sqlx-core", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", + "sqlx-core 0.8.2", + "sqlx-postgres 0.8.2", "syn 2.0.77", "tempfile", "tokio", @@ -6317,12 +6407,12 @@ dependencies = [ [[package]] name = "sqlx-mysql" -version = "0.8.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64bb4714269afa44aef2755150a0fc19d756fb580a67db8885608cf02f47d06a" +checksum = "1ed31390216d20e538e447a7a9b959e06ed9fc51c37b514b46eb758016ecd418" dependencies = [ "atoi", - "base64 0.22.1", + "base64 0.21.7", "bitflags 2.6.0", "byteorder", "bytes", @@ -6352,7 +6442,7 @@ dependencies = [ "sha1", "sha2", "smallvec", - "sqlx-core", + "sqlx-core 0.7.4", "stringprep", "thiserror", "time", @@ -6363,12 +6453,12 @@ dependencies = [ [[package]] name = "sqlx-postgres" -version = "0.8.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fa91a732d854c5d7726349bb4bb879bb9478993ceb764247660aee25f67c2f8" +checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e" dependencies = [ "atoi", - "base64 0.22.1", + "base64 0.21.7", "bit-vec", "bitflags 2.6.0", "byteorder", @@ -6395,7 +6485,7 @@ dependencies = [ "serde_json", "sha2", "smallvec", - "sqlx-core", + "sqlx-core 0.7.4", "stringprep", "thiserror", "time", @@ -6405,10 +6495,48 @@ dependencies = [ ] [[package]] -name = "sqlx-sqlite" +name = "sqlx-postgres" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5b2cf34a45953bfd3daaf3db0f7a7878ab9b7a6b91b422d24a7a9e4c857b680" +checksum = "6fa91a732d854c5d7726349bb4bb879bb9478993ceb764247660aee25f67c2f8" +dependencies = [ + "atoi", + "base64 0.22.1", + "bitflags 2.6.0", + "byteorder", + "crc", + "dotenvy", + "etcetera", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "hex", + "hkdf", + "hmac", + "home", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "rand", + "serde", + "serde_json", + "sha2", + "smallvec", + "sqlx-core 0.8.2", + "stringprep", + "thiserror", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa" dependencies = [ "atoi", "chrono", @@ -6422,11 +6550,11 @@ dependencies = [ "log", "percent-encoding", "serde", - "serde_urlencoded", - "sqlx-core", + "sqlx-core 0.7.4", "time", "tracing", "url", + "urlencoding", "uuid", ] @@ -7464,6 +7592,12 @@ dependencies = [ "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "utf8parse" version = "0.2.2" diff --git a/Cargo.toml b/Cargo.toml index a7a38b4b..b1c0a6be 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,7 +31,7 @@ csv = "1.3.0" dark-light = "1.1.1" dirs = "5.0.1" dotenvy = "0.15.7" -duckdb = "1.0.0" +duckdb = "0.10.2" form_urlencoded = "1.2.1" futures-util = "0.3.30" indexmap = "2.5.0" @@ -47,7 +47,7 @@ postgresql_embedded = "0.17.2" quick-xml = "0.36.1" regex = "1.10.6" reqwest = "0.12.5" -rusqlite = "0.32.1" +rusqlite = "0.30.0" rust_decimal = "1.35.0" rust-i18n = "3.1.2" rustyline = "14.0.0" @@ -56,7 +56,7 @@ serde = "1.0.209" serde_json = "1.0.127" serde_yaml = "0.9.34" sha2 = "0.10.8" -sqlx = "0.8.2" +sqlx = "0.7.4" supports-color = "3.0.0" sys-locale = "0.3.1" syntect = "5.2.0" diff --git a/deny.toml b/deny.toml index 4a4dd506..e22079e2 100644 --- a/deny.toml +++ b/deny.toml @@ -33,6 +33,7 @@ ignore = [ "RUSTSEC-2023-0071", "RUSTSEC-2023-0086", "RUSTSEC-2024-0320", + "RUSTSEC-2024-0363", "RUSTSEC-2024-0370", ] diff --git a/rsql_drivers/src/mariadb/driver.rs b/rsql_drivers/src/mariadb/driver.rs index 2be2aa0f..6230e4dc 100644 --- a/rsql_drivers/src/mariadb/driver.rs +++ b/rsql_drivers/src/mariadb/driver.rs @@ -27,8 +27,13 @@ mod test { use testcontainers::runners::AsyncRunner; #[allow(dead_code)] - // #[tokio::test] + #[tokio::test] async fn test_container() -> anyhow::Result<()> { + // Skip tests on GitHub Actions for non-Linux platforms; the test containers fail to run. + if std::env::var("GITHUB_ACTIONS").is_ok() && !cfg!(target_os = "linux") { + return Ok(()); + } + let mysql_image = testcontainers::ContainerRequest::from( testcontainers_modules::mariadb::Mariadb::default(), ); diff --git a/rsql_drivers/src/mysql/driver.rs b/rsql_drivers/src/mysql/driver.rs index cafe08fd..5b8cfb16 100644 --- a/rsql_drivers/src/mysql/driver.rs +++ b/rsql_drivers/src/mysql/driver.rs @@ -190,8 +190,13 @@ mod test { use testcontainers::runners::AsyncRunner; #[allow(dead_code)] - // #[tokio::test] + #[tokio::test] async fn test_container() -> anyhow::Result<()> { + // Skip tests on GitHub Actions for non-Linux platforms; the test containers fail to run. + if std::env::var("GITHUB_ACTIONS").is_ok() && !cfg!(target_os = "linux") { + return Ok(()); + } + let mysql_image = testcontainers::ContainerRequest::from(testcontainers_modules::mysql::Mysql::default()); let container = mysql_image.start().await?; diff --git a/rsql_drivers/src/mysql/metadata.rs b/rsql_drivers/src/mysql/metadata.rs index 72cf9996..c00bcec8 100644 --- a/rsql_drivers/src/mysql/metadata.rs +++ b/rsql_drivers/src/mysql/metadata.rs @@ -168,8 +168,13 @@ mod test { use testcontainers::runners::AsyncRunner; #[allow(dead_code)] - // #[tokio::test] + #[tokio::test] async fn test_container() -> anyhow::Result<()> { + // Skip tests on GitHub Actions for non-Linux platforms; the test containers fail to run. + if std::env::var("GITHUB_ACTIONS").is_ok() && !cfg!(target_os = "linux") { + return Ok(()); + } + let mysql_image = testcontainers::ContainerRequest::from(testcontainers_modules::mysql::Mysql::default()); let container = mysql_image.start().await?;