diff --git a/CHANGELOG.md b/CHANGELOG.md index 581009a6..41d80308 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,9 +5,71 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 0.5.2 - 2021-04-15 + +- [[#1149]] Tweak and optimize Pool internals [[@abonander]] + +- [[#1132]] Remove `'static` bound on `Connection::transaction` [[@argv-minus-one]] + +- [[#1128]] Fix `-y` flag for `sqlx db reset -y` [[@qqwa]] + +- [[#1099]] [[#1097]] Truncate buffer when `BufStream` is dropped [[@Diggsey]] + +[#1132]: https://github.com/launchbadge/sqlx/pull/1132 +[#1149]: https://github.com/launchbadge/sqlx/pull/1149 +[#1128]: https://github.com/launchbadge/sqlx/pull/1128 +[#1099]: https://github.com/launchbadge/sqlx/pull/1099 +[#1097]: https://github.com/launchbadge/sqlx/issues/1097 + +### PostgreSQL + +- [[#1170]] Remove `Self: Type` bounds in `Encode` / `Decode` implementations for arrays [[@jplatte]] + + Enables working around the lack of support for user-defined array types: + + ```rust + #[derive(sqlx::Encode)] + struct Foos<'a>(&'a [Foo]); + + impl sqlx::Type for Foos<'_> { + fn type_info() -> PgTypeInfo { + PgTypeInfo::with_name("_foo") + } + } + + query_as!( + Whatever, + "", + Foos(&foo_vec) as _, + ) + ``` + +- [[#1141]] Use `u16::MAX` instead of `i16::MAX` for a check against the largest number of parameters in a query [[@crajcan]] + +- [[#1112]] Add support for `DOMAIN` types [[@demurgos]] + +- [[#1100]] Explicitly `UNLISTEN` before returning connections to the pool in `PgListener` [[@Diggsey]] + +[#1170]: https://github.com/launchbadge/sqlx/pull/1170 +[#1141]: https://github.com/launchbadge/sqlx/pull/1141 +[#1112]: https://github.com/launchbadge/sqlx/pull/1112 +[#1100]: https://github.com/launchbadge/sqlx/pull/1100 + +### SQLite + +- [[#1161]] Catch `SQLITE_MISUSE` on connection close and panic [[@link2xt]] + +- [[#1160]] Do not cast pointers to `i32` (cast to `usize`) [[@link2xt]] + +- [[#1156]] Reset the statement when `fetch_many` stream is dropped [[@link2xt]] + +[#1161]: https://github.com/launchbadge/sqlx/pull/1161 +[#1160]: https://github.com/launchbadge/sqlx/pull/1160 +[#1156]: https://github.com/launchbadge/sqlx/pull/1156 + ## 0.5.1 - 2021-02-04 - - Update sqlx-rt to 0.3. +- Update sqlx-rt to 0.3. ## 0.5.0 - 2021-02-04 @@ -15,8 +77,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [[#983]] [[#1022]] Upgrade async runtime dependencies [[@seryl], [@ant32], [@jplatte], [@robjtede]] - - tokio 1.0 - - actix-rt 2.0 + - tokio 1.0 + - actix-rt 2.0 - [[#854]] Allow chaining `map` and `try_map` [[@jplatte]] @@ -53,7 +115,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [[#918]] Recover from dropping `wait_for_conn` inside Pool. [[@antialize]] [#821]: https://github.com/launchbadge/sqlx/issues/821 - [#918]: https://github.com/launchbadge/sqlx/pull/918 [#919]: https://github.com/launchbadge/sqlx/pull/919 [#983]: https://github.com/launchbadge/sqlx/pull/983 @@ -123,7 +184,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [#850]: https://github.com/launchbadge/sqlx/pull/850 [#845]: https://github.com/launchbadge/sqlx/pull/845 [#839]: https://github.com/launchbadge/sqlx/pull/839 - [#747]: https://github.com/launchbadge/sqlx/issues/747 ## 0.4.1 – 2020-11-13 @@ -803,13 +863,13 @@ Fix docs.rs build by enabling a runtime feature in the docs.rs metadata in `Carg [@mcronce]: https://github.com/mcronce [@hamza1311]: https://github.com/hamza1311 [@augustocdias]: https://github.com/augustocdias -[@Pleto]: https://github.com/Pleto +[@pleto]: https://github.com/Pleto [@chertov]: https://github.com/chertov [@framp]: https://github.com/framp [@markazmierczak]: https://github.com/markazmierczak [@msrd0]: https://github.com/msrd0 [@joshtriplett]: https://github.com/joshtriplett -[@NyxCode]: https://github.com/NyxCode +[@nyxcode]: https://github.com/NyxCode [@nitsky]: https://github.com/nitsky [@esemeniuc]: https://github.com/esemeniuc [@iamsiddhant05]: https://github.com/iamsiddhant05 @@ -824,3 +884,9 @@ Fix docs.rs build by enabling a runtime feature in the docs.rs metadata in `Carg [@fl9]: https://github.com/fl9 [@antialize]: https://github.com/antialize [@dignifiedquire]: https://github.com/dignifiedquire +[@argv-minus-one]: https://github.com/argv-minus-one +[@qqwa]: https://github.com/qqwa +[@diggsey]: https://github.com/Diggsey +[@crajcan]: https://github.com/crajcan +[@demurgos]: https://github.com/demurgos +[@link2xt]: https://github.com/link2xt diff --git a/Cargo.lock b/Cargo.lock index 628d4924..8bd3b5bc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2265,7 +2265,7 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.5.1" +version = "0.5.2" dependencies = [ "anyhow", "async-std", @@ -2298,7 +2298,7 @@ dependencies = [ [[package]] name = "sqlx-cli" -version = "0.5.1" +version = "0.5.2" dependencies = [ "anyhow", "async-trait", @@ -2320,7 +2320,7 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.5.1" +version = "0.5.2" dependencies = [ "ahash 0.7.2", "atoi", @@ -2445,7 +2445,7 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.5.1" +version = "0.5.2" dependencies = [ "dotenv", "either", @@ -2466,7 +2466,7 @@ dependencies = [ [[package]] name = "sqlx-rt" -version = "0.3.0" +version = "0.5.2" dependencies = [ "actix-rt", "async-native-tls", diff --git a/Cargo.toml b/Cargo.toml index 3ea9b6fe..4eb38c46 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,42 +17,53 @@ members = [ [package] name = "sqlx" -version = "0.5.1" +version = "0.5.2" license = "MIT OR Apache-2.0" readme = "README.md" repository = "https://github.com/launchbadge/sqlx" documentation = "https://docs.rs/sqlx" description = "🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, and SQLite." edition = "2018" -keywords = [ "database", "async", "postgres", "mysql", "sqlite" ] -categories = [ "database", "asynchronous" ] +keywords = ["database", "async", "postgres", "mysql", "sqlite"] +categories = ["database", "asynchronous"] authors = [ - "Ryan Leckey ", # ryan@launchbadge.com - "Austin Bonander ", # austin@launchbadge.com - "Chloe Ross ", # chloe@launchbadge.com - "Daniel Akhterov ", # daniel@launchbadge.com -] + "Ryan Leckey ", + "Austin Bonander ", + "Chloe Ross ", + "Daniel Akhterov ", +] # daniel@launchbadge.com [package.metadata.docs.rs] -features = [ "all", "runtime-async-std-native-tls" ] +features = ["all", "runtime-async-std-native-tls"] rustdoc-args = ["--cfg", "docsrs"] [features] -default = [ "macros", "migrate" ] -macros = [ "sqlx-macros" ] -migrate = [ "sqlx-macros/migrate", "sqlx-core/migrate" ] +default = ["macros", "migrate"] +macros = ["sqlx-macros"] +migrate = ["sqlx-macros/migrate", "sqlx-core/migrate"] # [deprecated] TLS is not possible to disable due to it being conditional on multiple features # Hopefully Cargo can handle this in the future -tls = [ ] +tls = [] # offline building support in `sqlx-macros` -offline = [ "sqlx-macros/offline", "sqlx-core/offline" ] +offline = ["sqlx-macros/offline", "sqlx-core/offline"] # intended mainly for CI and docs -all = [ "tls", "all-databases", "all-types" ] -all-databases = [ "mysql", "sqlite", "postgres", "mssql", "any" ] -all-types = [ "bigdecimal", "decimal", "json", "time", "chrono", "ipnetwork", "uuid", "bit-vec", "bstr", "git2" ] +all = ["tls", "all-databases", "all-types"] +all-databases = ["mysql", "sqlite", "postgres", "mssql", "any"] +all-types = [ + "bigdecimal", + "decimal", + "json", + "time", + "chrono", + "ipnetwork", + "uuid", + "bit-vec", + "bstr", + "git2", +] # previous runtimes, available as features for error messages better than just # "feature doesn't exist" @@ -61,13 +72,37 @@ runtime-async-std = [] runtime-tokio = [] # actual runtimes -runtime-actix-native-tls = [ "sqlx-core/runtime-actix-native-tls", "sqlx-macros/runtime-actix-native-tls", "_rt-actix" ] -runtime-async-std-native-tls = [ "sqlx-core/runtime-async-std-native-tls", "sqlx-macros/runtime-async-std-native-tls", "_rt-async-std" ] -runtime-tokio-native-tls = [ "sqlx-core/runtime-tokio-native-tls", "sqlx-macros/runtime-tokio-native-tls", "_rt-tokio" ] +runtime-actix-native-tls = [ + "sqlx-core/runtime-actix-native-tls", + "sqlx-macros/runtime-actix-native-tls", + "_rt-actix", +] +runtime-async-std-native-tls = [ + "sqlx-core/runtime-async-std-native-tls", + "sqlx-macros/runtime-async-std-native-tls", + "_rt-async-std", +] +runtime-tokio-native-tls = [ + "sqlx-core/runtime-tokio-native-tls", + "sqlx-macros/runtime-tokio-native-tls", + "_rt-tokio", +] -runtime-actix-rustls = [ "sqlx-core/runtime-actix-rustls", "sqlx-macros/runtime-actix-rustls", "_rt-actix" ] -runtime-async-std-rustls = [ "sqlx-core/runtime-async-std-rustls", "sqlx-macros/runtime-async-std-rustls", "_rt-async-std" ] -runtime-tokio-rustls = [ "sqlx-core/runtime-tokio-rustls", "sqlx-macros/runtime-tokio-rustls", "_rt-tokio" ] +runtime-actix-rustls = [ + "sqlx-core/runtime-actix-rustls", + "sqlx-macros/runtime-actix-rustls", + "_rt-actix", +] +runtime-async-std-rustls = [ + "sqlx-core/runtime-async-std-rustls", + "sqlx-macros/runtime-async-std-rustls", + "_rt-async-std", +] +runtime-tokio-rustls = [ + "sqlx-core/runtime-tokio-rustls", + "sqlx-macros/runtime-tokio-rustls", + "_rt-tokio", +] # for conditional compilation _rt-actix = [] @@ -75,41 +110,41 @@ _rt-async-std = [] _rt-tokio = [] # database -any = [ "sqlx-core/any" ] -postgres = [ "sqlx-core/postgres", "sqlx-macros/postgres" ] -mysql = [ "sqlx-core/mysql", "sqlx-macros/mysql" ] -sqlite = [ "sqlx-core/sqlite", "sqlx-macros/sqlite" ] -mssql = [ "sqlx-core/mssql", "sqlx-macros/mssql" ] +any = ["sqlx-core/any"] +postgres = ["sqlx-core/postgres", "sqlx-macros/postgres"] +mysql = ["sqlx-core/mysql", "sqlx-macros/mysql"] +sqlite = ["sqlx-core/sqlite", "sqlx-macros/sqlite"] +mssql = ["sqlx-core/mssql", "sqlx-macros/mssql"] # types -bigdecimal = [ "sqlx-core/bigdecimal", "sqlx-macros/bigdecimal" ] -decimal = [ "sqlx-core/decimal", "sqlx-macros/decimal" ] -chrono = [ "sqlx-core/chrono", "sqlx-macros/chrono" ] -ipnetwork = [ "sqlx-core/ipnetwork", "sqlx-macros/ipnetwork" ] -uuid = [ "sqlx-core/uuid", "sqlx-macros/uuid" ] -json = [ "sqlx-core/json", "sqlx-macros/json" ] -time = [ "sqlx-core/time", "sqlx-macros/time" ] -bit-vec = [ "sqlx-core/bit-vec", "sqlx-macros/bit-vec"] -bstr = [ "sqlx-core/bstr" ] -git2 = [ "sqlx-core/git2" ] +bigdecimal = ["sqlx-core/bigdecimal", "sqlx-macros/bigdecimal"] +decimal = ["sqlx-core/decimal", "sqlx-macros/decimal"] +chrono = ["sqlx-core/chrono", "sqlx-macros/chrono"] +ipnetwork = ["sqlx-core/ipnetwork", "sqlx-macros/ipnetwork"] +uuid = ["sqlx-core/uuid", "sqlx-macros/uuid"] +json = ["sqlx-core/json", "sqlx-macros/json"] +time = ["sqlx-core/time", "sqlx-macros/time"] +bit-vec = ["sqlx-core/bit-vec", "sqlx-macros/bit-vec"] +bstr = ["sqlx-core/bstr"] +git2 = ["sqlx-core/git2"] [dependencies] -sqlx-core = { version = "0.5.1", path = "sqlx-core", default-features = false } -sqlx-macros = { version = "0.5.1", path = "sqlx-macros", default-features = false, optional = true } +sqlx-core = { version = "0.5.2", path = "sqlx-core", default-features = false } +sqlx-macros = { version = "0.5.2", path = "sqlx-macros", default-features = false, optional = true } [dev-dependencies] anyhow = "1.0.31" time_ = { version = "0.2.16", package = "time" } futures = "0.3.5" env_logger = "0.8.3" -async-std = { version = "1.8.0", features = [ "attributes" ] } -tokio = { version = "1.0.1", features = [ "full" ] } +async-std = { version = "1.8.0", features = ["attributes"] } +tokio = { version = "1.0.1", features = ["full"] } dotenv = "0.15.0" trybuild = "1.0.24" sqlx-rt = { path = "./sqlx-rt" } sqlx-test = { path = "./sqlx-test" } paste = "1.0.1" -serde = { version = "1.0.111", features = [ "derive" ] } +serde = { version = "1.0.111", features = ["derive"] } serde_json = "1.0.53" url = "2.1.1" @@ -120,12 +155,12 @@ url = "2.1.1" [[test]] name = "any" path = "tests/any/any.rs" -required-features = [ "any" ] +required-features = ["any"] [[test]] name = "any-pool" path = "tests/any/pool.rs" -required-features = [ "any" ] +required-features = ["any"] # # Migrations @@ -134,7 +169,7 @@ required-features = [ "any" ] [[test]] name = "migrate-macro" path = "tests/migrate/macro.rs" -required-features = [ "macros", "migrate" ] +required-features = ["macros", "migrate"] # # SQLite @@ -143,27 +178,27 @@ required-features = [ "macros", "migrate" ] [[test]] name = "sqlite" path = "tests/sqlite/sqlite.rs" -required-features = [ "sqlite" ] +required-features = ["sqlite"] [[test]] name = "sqlite-types" path = "tests/sqlite/types.rs" -required-features = [ "sqlite" ] +required-features = ["sqlite"] [[test]] name = "sqlite-describe" path = "tests/sqlite/describe.rs" -required-features = [ "sqlite" ] +required-features = ["sqlite"] [[test]] name = "sqlite-macros" path = "tests/sqlite/macros.rs" -required-features = [ "sqlite", "macros" ] +required-features = ["sqlite", "macros"] [[test]] name = "sqlite-derives" path = "tests/sqlite/derives.rs" -required-features = [ "sqlite", "macros" ] +required-features = ["sqlite", "macros"] # # MySQL @@ -172,22 +207,22 @@ required-features = [ "sqlite", "macros" ] [[test]] name = "mysql" path = "tests/mysql/mysql.rs" -required-features = [ "mysql" ] +required-features = ["mysql"] [[test]] name = "mysql-types" path = "tests/mysql/types.rs" -required-features = [ "mysql" ] +required-features = ["mysql"] [[test]] name = "mysql-describe" path = "tests/mysql/describe.rs" -required-features = [ "mysql" ] +required-features = ["mysql"] [[test]] name = "mysql-macros" path = "tests/mysql/macros.rs" -required-features = [ "mysql", "macros" ] +required-features = ["mysql", "macros"] # # PostgreSQL @@ -196,27 +231,27 @@ required-features = [ "mysql", "macros" ] [[test]] name = "postgres" path = "tests/postgres/postgres.rs" -required-features = [ "postgres" ] +required-features = ["postgres"] [[test]] name = "postgres-types" path = "tests/postgres/types.rs" -required-features = [ "postgres" ] +required-features = ["postgres"] [[test]] name = "postgres-describe" path = "tests/postgres/describe.rs" -required-features = [ "postgres" ] +required-features = ["postgres"] [[test]] name = "postgres-macros" path = "tests/postgres/macros.rs" -required-features = [ "postgres", "macros" ] +required-features = ["postgres", "macros"] [[test]] name = "postgres-derives" path = "tests/postgres/derives.rs" -required-features = [ "postgres", "macros" ] +required-features = ["postgres", "macros"] # # Microsoft SQL Server (MSSQL) @@ -225,19 +260,19 @@ required-features = [ "postgres", "macros" ] [[test]] name = "mssql" path = "tests/mssql/mssql.rs" -required-features = [ "mssql" ] +required-features = ["mssql"] [[test]] name = "mssql-types" path = "tests/mssql/types.rs" -required-features = [ "mssql" ] +required-features = ["mssql"] [[test]] name = "mssql-describe" path = "tests/mssql/describe.rs" -required-features = [ "mssql" ] +required-features = ["mssql"] [[test]] name = "mssql-macros" path = "tests/mssql/macros.rs" -required-features = [ "mssql", "macros" ] +required-features = ["mssql", "macros"] diff --git a/sqlx-bench/Cargo.toml b/sqlx-bench/Cargo.toml index 4f6ebcc1..0b288ca8 100644 --- a/sqlx-bench/Cargo.toml +++ b/sqlx-bench/Cargo.toml @@ -6,13 +6,31 @@ edition = "2018" publish = false [features] -runtime-actix-native-tls = [ "sqlx/runtime-actix-native-tls", "sqlx-rt/runtime-actix-native-tls" ] -runtime-async-std-native-tls = [ "sqlx/runtime-async-std-native-tls", "sqlx-rt/runtime-async-std-native-tls" ] -runtime-tokio-native-tls = [ "sqlx/runtime-tokio-native-tls", "sqlx-rt/runtime-tokio-native-tls" ] +runtime-actix-native-tls = [ + "sqlx/runtime-actix-native-tls", + "sqlx-rt/runtime-actix-native-tls", +] +runtime-async-std-native-tls = [ + "sqlx/runtime-async-std-native-tls", + "sqlx-rt/runtime-async-std-native-tls", +] +runtime-tokio-native-tls = [ + "sqlx/runtime-tokio-native-tls", + "sqlx-rt/runtime-tokio-native-tls", +] -runtime-actix-rustls = [ "sqlx/runtime-actix-rustls", "sqlx-rt/runtime-actix-rustls" ] -runtime-async-std-rustls = [ "sqlx/runtime-async-std-rustls", "sqlx-rt/runtime-async-std-rustls" ] -runtime-tokio-rustls = [ "sqlx/runtime-tokio-rustls", "sqlx-rt/runtime-tokio-rustls" ] +runtime-actix-rustls = [ + "sqlx/runtime-actix-rustls", + "sqlx-rt/runtime-actix-rustls", +] +runtime-async-std-rustls = [ + "sqlx/runtime-async-std-rustls", + "sqlx-rt/runtime-async-std-rustls", +] +runtime-tokio-rustls = [ + "sqlx/runtime-tokio-rustls", + "sqlx-rt/runtime-tokio-rustls", +] postgres = ["sqlx/postgres"] @@ -21,7 +39,7 @@ criterion = "0.3.3" dotenv = "0.15.0" once_cell = "1.4" sqlx = { version = "0.5", path = "../", default-features = false } -sqlx-rt = { version = "0.3.0", path = "../sqlx-rt", default-features = false } +sqlx-rt = { version = "0.5", path = "../sqlx-rt", default-features = false } [[bench]] name = "pg_pool" diff --git a/sqlx-cli/Cargo.toml b/sqlx-cli/Cargo.toml index 84a96bc7..315b0157 100644 --- a/sqlx-cli/Cargo.toml +++ b/sqlx-cli/Cargo.toml @@ -1,18 +1,18 @@ [package] name = "sqlx-cli" -version = "0.5.1" +version = "0.5.2" description = "Command-line utility for SQLx, the Rust SQL toolkit." edition = "2018" readme = "README.md" homepage = "https://github.com/launchbadge/sqlx" repository = "https://github.com/launchbadge/sqlx" -keywords = [ "database", "postgres", "database-management", "migration"] -categories = [ "database", "command-line-utilities" ] +keywords = ["database", "postgres", "database-management", "migration"] +categories = ["database", "command-line-utilities"] license = "MIT OR Apache-2.0" default-run = "sqlx" authors = [ "Jesper Axelsson ", - "Austin Bonander " + "Austin Bonander ", ] [[bin]] @@ -27,7 +27,12 @@ path = "src/bin/cargo-sqlx.rs" [dependencies] dotenv = "0.15" tokio = { version = "1.0.1", features = ["macros", "rt", "rt-multi-thread"] } -sqlx = { version = "0.5.1", path = "..", default-features = false, features = [ "runtime-async-std-native-tls", "migrate", "any", "offline" ] } +sqlx = { version = "0.5.2", path = "..", default-features = false, features = [ + "runtime-async-std-native-tls", + "migrate", + "any", + "offline", +] } futures = "0.3" clap = "=3.0.0-beta.2" chrono = "0.4" @@ -44,12 +49,12 @@ openssl = { version = "0.10.30", optional = true } remove_dir_all = "0.7.0" [features] -default = [ "postgres", "sqlite", "mysql" ] +default = ["postgres", "sqlite", "mysql"] # databases -mysql = [ "sqlx/mysql" ] -postgres = [ "sqlx/postgres" ] -sqlite = [ "sqlx/sqlite" ] +mysql = ["sqlx/mysql"] +postgres = ["sqlx/postgres"] +sqlite = ["sqlx/sqlite"] # workaround for musl + openssl issues -openssl-vendored = [ "openssl/vendored" ] +openssl-vendored = ["openssl/vendored"] diff --git a/sqlx-core/Cargo.toml b/sqlx-core/Cargo.toml index a0769752..8f867869 100644 --- a/sqlx-core/Cargo.toml +++ b/sqlx-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sqlx-core" -version = "0.5.1" +version = "0.5.2" repository = "https://github.com/launchbadge/sqlx" description = "Core of SQLx, the rust SQL toolkit. Not intended to be used directly." license = "MIT OR Apache-2.0" @@ -16,85 +16,134 @@ authors = [ features = ["all-databases", "all-types", "offline", "runtime-async-std-native-tls"] [features] -default = [ "migrate" ] -migrate = [ "sha2", "crc" ] +default = ["migrate"] +migrate = ["sha2", "crc"] # databases -all-databases = [ "postgres", "mysql", "sqlite", "mssql", "any" ] -postgres = [ "md-5", "sha2", "base64", "sha-1", "rand", "hmac", "futures-channel/sink", "futures-util/sink", "json", "dirs" ] -mysql = [ "sha-1", "sha2", "generic-array", "num-bigint", "base64", "digest", "rand", "rsa" ] -sqlite = [ "libsqlite3-sys" ] -mssql = [ "uuid", "encoding_rs", "regex" ] +all-databases = ["postgres", "mysql", "sqlite", "mssql", "any"] +postgres = [ + "md-5", + "sha2", + "base64", + "sha-1", + "rand", + "hmac", + "futures-channel/sink", + "futures-util/sink", + "json", + "dirs", +] +mysql = [ + "sha-1", + "sha2", + "generic-array", + "num-bigint", + "base64", + "digest", + "rand", + "rsa", +] +sqlite = ["libsqlite3-sys"] +mssql = ["uuid", "encoding_rs", "regex"] any = [] # types -all-types = [ "chrono", "time", "bigdecimal", "decimal", "ipnetwork", "json", "uuid", "bit-vec" ] -bigdecimal = [ "bigdecimal_", "num-bigint" ] -decimal = [ "rust_decimal", "num-bigint" ] -json = [ "serde", "serde_json" ] +all-types = [ + "chrono", + "time", + "bigdecimal", + "decimal", + "ipnetwork", + "json", + "uuid", + "bit-vec", +] +bigdecimal = ["bigdecimal_", "num-bigint"] +decimal = ["rust_decimal", "num-bigint"] +json = ["serde", "serde_json"] # runtimes -runtime-actix-native-tls = [ "sqlx-rt/runtime-actix-native-tls", "_tls-native-tls", "_rt-actix" ] -runtime-async-std-native-tls = [ "sqlx-rt/runtime-async-std-native-tls", "_tls-native-tls", "_rt-async-std" ] -runtime-tokio-native-tls = [ "sqlx-rt/runtime-tokio-native-tls", "_tls-native-tls", "_rt-tokio" ] +runtime-actix-native-tls = [ + "sqlx-rt/runtime-actix-native-tls", + "_tls-native-tls", + "_rt-actix", +] +runtime-async-std-native-tls = [ + "sqlx-rt/runtime-async-std-native-tls", + "_tls-native-tls", + "_rt-async-std", +] +runtime-tokio-native-tls = [ + "sqlx-rt/runtime-tokio-native-tls", + "_tls-native-tls", + "_rt-tokio", +] -runtime-actix-rustls = [ "sqlx-rt/runtime-actix-rustls", "_tls-rustls", "_rt-actix" ] -runtime-async-std-rustls = [ "sqlx-rt/runtime-async-std-rustls", "_tls-rustls", "_rt-async-std" ] -runtime-tokio-rustls = [ "sqlx-rt/runtime-tokio-rustls", "_tls-rustls", "_rt-tokio" ] +runtime-actix-rustls = ["sqlx-rt/runtime-actix-rustls", "_tls-rustls", "_rt-actix"] +runtime-async-std-rustls = [ + "sqlx-rt/runtime-async-std-rustls", + "_tls-rustls", + "_rt-async-std", +] +runtime-tokio-rustls = ["sqlx-rt/runtime-tokio-rustls", "_tls-rustls", "_rt-tokio"] # for conditional compilation -_rt-actix = [ "tokio-stream" ] +_rt-actix = ["tokio-stream"] _rt-async-std = [] -_rt-tokio = [ "tokio-stream" ] +_rt-tokio = ["tokio-stream"] _tls-native-tls = [] -_tls-rustls = [ "rustls", "webpki", "webpki-roots" ] +_tls-rustls = ["rustls", "webpki", "webpki-roots"] # support offline/decoupled building (enables serialization of `Describe`) -offline = [ "serde", "either/serde" ] +offline = ["serde", "either/serde"] [dependencies] ahash = "0.7.2" atoi = "0.4.0" -sqlx-rt = { path = "../sqlx-rt", version = "0.3.0" } -base64 = { version = "0.13.0", default-features = false, optional = true, features = [ "std" ] } +sqlx-rt = { path = "../sqlx-rt", version = "0.5.2" } +base64 = { version = "0.13.0", default-features = false, optional = true, features = ["std"] } bigdecimal_ = { version = "0.2.0", optional = true, package = "bigdecimal" } rust_decimal = { version = "1.8.1", optional = true } bit-vec = { version = "0.6.2", optional = true } bitflags = { version = "1.2.1", default-features = false } bytes = "1.0.0" -byteorder = { version = "1.3.4", default-features = false, features = [ "std" ] } -chrono = { version = "0.4.11", default-features = false, features = [ "clock" ], optional = true } +byteorder = { version = "1.3.4", default-features = false, features = ["std"] } +chrono = { version = "0.4.11", default-features = false, features = ["clock"], optional = true } crc = { version = "1.8.1", optional = true } crossbeam-queue = "0.3.1" crossbeam-channel = "0.5.0" crossbeam-utils = { version = "0.8.1", default-features = false } -digest = { version = "0.9.0", default-features = false, optional = true, features = [ "std" ] } +digest = { version = "0.9.0", default-features = false, optional = true, features = ["std"] } dirs = { version = "3.0.1", optional = true } encoding_rs = { version = "0.8.23", optional = true } either = "1.5.3" -futures-channel = { version = "0.3.5", default-features = false, features = [ "sink", "alloc", "std" ] } +futures-channel = { version = "0.3.5", default-features = false, features = ["sink", "alloc", "std"] } futures-core = { version = "0.3.5", default-features = false } -futures-util = { version = "0.3.5", features = [ "sink" ] } +futures-util = { version = "0.3.5", features = ["sink"] } generic-array = { version = "0.14.4", default-features = false, optional = true } hex = "0.4.2" hmac = { version = "0.10.1", default-features = false, optional = true } itoa = "0.4.5" ipnetwork = { version = "0.17.0", default-features = false, optional = true } libc = "0.2.71" -libsqlite3-sys = { version = "0.22.0", optional = true, default-features = false, features = [ "pkg-config", "vcpkg", "bundled" ] } +libsqlite3-sys = { version = "0.22.0", optional = true, default-features = false, features = [ + "pkg-config", + "vcpkg", + "bundled", +] } log = { version = "0.4.8", default-features = false } md-5 = { version = "0.9.0", default-features = false, optional = true } memchr = { version = "2.3.3", default-features = false } -num-bigint = { version = "0.3.1", default-features = false, optional = true, features = [ "std" ] } +num-bigint = { version = "0.3.1", default-features = false, optional = true, features = ["std"] } once_cell = "1.5.2" percent-encoding = "2.1.0" parking_lot = "0.11.0" -rand = { version = "0.8.3", default-features = false, optional = true, features = [ "std", "std_rng" ] } +rand = { version = "0.8.3", default-features = false, optional = true, features = ["std", "std_rng"] } regex = { version = "1.3.9", optional = true } rsa = { version = "0.4.0", optional = true } -rustls = { version = "0.19.0", features = [ "dangerous_configuration" ], optional = true } -serde = { version = "1.0.106", features = [ "derive", "rc" ], optional = true } -serde_json = { version = "1.0.51", features = [ "raw_value" ], optional = true } +rustls = { version = "0.19.0", features = ["dangerous_configuration"], optional = true } +serde = { version = "1.0.106", features = ["derive", "rc"], optional = true } +serde_json = { version = "1.0.51", features = ["raw_value"], optional = true } sha-1 = { version = "0.9.0", default-features = false, optional = true } sha2 = { version = "0.9.0", default-features = false, optional = true } sqlformat = "0.1.0" @@ -103,11 +152,11 @@ time = { version = "0.2.16", optional = true } tokio-stream = { version = "0.1.2", features = ["fs"], optional = true } smallvec = "1.4.0" url = { version = "2.1.1", default-features = false } -uuid = { version = "0.8.1", default-features = false, optional = true, features = [ "std" ] } +uuid = { version = "0.8.1", default-features = false, optional = true, features = ["std"] } webpki = { version = "0.21.3", optional = true } webpki-roots = { version = "0.21.0", optional = true } whoami = "1.0.1" stringprep = "0.1.2" -bstr = { version = "0.2.14", default-features = false, features = [ "std" ], optional = true } +bstr = { version = "0.2.14", default-features = false, features = ["std"], optional = true } git2 = { version = "0.13.12", default-features = false, optional = true } hashlink = "0.6.0" diff --git a/sqlx-macros/Cargo.toml b/sqlx-macros/Cargo.toml index 0310a39f..9307aa74 100644 --- a/sqlx-macros/Cargo.toml +++ b/sqlx-macros/Cargo.toml @@ -1,32 +1,56 @@ [package] name = "sqlx-macros" -version = "0.5.1" +version = "0.5.2" repository = "https://github.com/launchbadge/sqlx" description = "Macros for SQLx, the rust SQL toolkit. Not intended to be used directly." license = "MIT OR Apache-2.0" edition = "2018" authors = [ - "Ryan Leckey ", # ryan@launchbadge.com - "Austin Bonander ", # austin@launchbadge.com - "Chloe Ross ", # chloe@launchbadge.com - "Daniel Akhterov ", # daniel@launchbadge.com -] + "Ryan Leckey ", + "Austin Bonander ", + "Chloe Ross ", + "Daniel Akhterov ", +] # daniel@launchbadge.com [lib] proc-macro = true [features] -default = [ "runtime-async-std-native-tls", "migrate" ] -migrate = [ "sha2", "sqlx-core/migrate" ] +default = ["runtime-async-std-native-tls", "migrate"] +migrate = ["sha2", "sqlx-core/migrate"] # runtimes -runtime-actix-native-tls = [ "sqlx-core/runtime-actix-native-tls", "sqlx-rt/runtime-actix-native-tls", "_rt-actix" ] -runtime-async-std-native-tls = [ "sqlx-core/runtime-async-std-native-tls", "sqlx-rt/runtime-async-std-native-tls", "_rt-async-std" ] -runtime-tokio-native-tls = [ "sqlx-core/runtime-tokio-native-tls", "sqlx-rt/runtime-tokio-native-tls", "_rt-tokio" ] +runtime-actix-native-tls = [ + "sqlx-core/runtime-actix-native-tls", + "sqlx-rt/runtime-actix-native-tls", + "_rt-actix", +] +runtime-async-std-native-tls = [ + "sqlx-core/runtime-async-std-native-tls", + "sqlx-rt/runtime-async-std-native-tls", + "_rt-async-std", +] +runtime-tokio-native-tls = [ + "sqlx-core/runtime-tokio-native-tls", + "sqlx-rt/runtime-tokio-native-tls", + "_rt-tokio", +] -runtime-actix-rustls = [ "sqlx-core/runtime-actix-rustls", "sqlx-rt/runtime-actix-rustls", "_rt-actix" ] -runtime-async-std-rustls = [ "sqlx-core/runtime-async-std-rustls", "sqlx-rt/runtime-async-std-rustls", "_rt-async-std" ] -runtime-tokio-rustls = [ "sqlx-core/runtime-tokio-rustls", "sqlx-rt/runtime-tokio-rustls", "_rt-tokio" ] +runtime-actix-rustls = [ + "sqlx-core/runtime-actix-rustls", + "sqlx-rt/runtime-actix-rustls", + "_rt-actix", +] +runtime-async-std-rustls = [ + "sqlx-core/runtime-async-std-rustls", + "sqlx-rt/runtime-async-std-rustls", + "_rt-async-std", +] +runtime-tokio-rustls = [ + "sqlx-core/runtime-tokio-rustls", + "sqlx-rt/runtime-tokio-rustls", + "_rt-tokio", +] # for conditional compilation _rt-actix = [] @@ -37,34 +61,34 @@ _rt-tokio = [] offline = ["sqlx-core/offline", "hex", "once_cell", "serde", "serde_json", "sha2"] # database -mysql = [ "sqlx-core/mysql" ] -postgres = [ "sqlx-core/postgres" ] -sqlite = [ "sqlx-core/sqlite" ] -mssql = [ "sqlx-core/mssql" ] +mysql = ["sqlx-core/mysql"] +postgres = ["sqlx-core/postgres"] +sqlite = ["sqlx-core/sqlite"] +mssql = ["sqlx-core/mssql"] # type -bigdecimal = [ "sqlx-core/bigdecimal" ] -decimal = [ "sqlx-core/decimal" ] -chrono = [ "sqlx-core/chrono" ] -time = [ "sqlx-core/time" ] -ipnetwork = [ "sqlx-core/ipnetwork" ] -uuid = [ "sqlx-core/uuid" ] -bit-vec = [ "sqlx-core/bit-vec" ] -json = [ "sqlx-core/json", "serde_json" ] +bigdecimal = ["sqlx-core/bigdecimal"] +decimal = ["sqlx-core/decimal"] +chrono = ["sqlx-core/chrono"] +time = ["sqlx-core/time"] +ipnetwork = ["sqlx-core/ipnetwork"] +uuid = ["sqlx-core/uuid"] +bit-vec = ["sqlx-core/bit-vec"] +json = ["sqlx-core/json", "serde_json"] [dependencies] dotenv = { version = "0.15.0", default-features = false } -futures = { version = "0.3.4", default-features = false, features = [ "executor" ] } +futures = { version = "0.3.4", default-features = false, features = ["executor"] } hex = { version = "0.4.2", optional = true } heck = "0.3.1" either = "1.5.3" once_cell = { version = "1.5.2", optional = true } proc-macro2 = { version = "1.0.9", default-features = false } -sqlx-core = { version = "0.5.1", default-features = false, path = "../sqlx-core" } -sqlx-rt = { version = "0.3.0", default-features = false, path = "../sqlx-rt" } +sqlx-core = { version = "0.5.2", default-features = false, path = "../sqlx-core" } +sqlx-rt = { version = "0.5.2", default-features = false, path = "../sqlx-rt" } serde = { version = "1.0.111", features = ["derive"], optional = true } serde_json = { version = "1.0.30", features = ["preserve_order"], optional = true } sha2 = { version = "0.9.1", optional = true } -syn = { version = "1.0.30", default-features = false, features = [ "full" ] } +syn = { version = "1.0.30", default-features = false, features = ["full"] } quote = { version = "1.0.6", default-features = false } url = { version = "2.1.1", default-features = false } diff --git a/sqlx-rt/Cargo.toml b/sqlx-rt/Cargo.toml index 1ad6cc6a..a8f6fe27 100644 --- a/sqlx-rt/Cargo.toml +++ b/sqlx-rt/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sqlx-rt" -version = "0.3.0" +version = "0.5.2" repository = "https://github.com/launchbadge/sqlx" license = "MIT OR Apache-2.0" description = "Runtime abstraction used by SQLx, the Rust SQL toolkit. Not intended to be used directly." @@ -12,7 +12,11 @@ authors = [ [features] runtime-actix-native-tls = ["_rt-actix", "_tls-native-tls", "tokio-native-tls"] -runtime-async-std-native-tls = ["_rt-async-std", "_tls-native-tls", "async-native-tls"] +runtime-async-std-native-tls = [ + "_rt-async-std", + "_tls-native-tls", + "async-native-tls", +] runtime-tokio-native-tls = ["_rt-tokio", "_tls-native-tls", "tokio-native-tls"] runtime-actix-rustls = ["_rt-actix", "_tls-rustls", "tokio-rustls"]