Skip to content

sqlx-postgres Fails to Build on Latest 1.91.0 #145288

@HTGAzureX1212

Description

@HTGAzureX1212

I tried this code:

// sqlx library

I expected compilation to succeed.
Instead, this happened: hangs for a while (possibly due to recursion) and then errors out with
error[E0275]: overflow evaluating the requirement `(&mut PgConnection, Oid): std::marker::Send` .

error[E0275]: overflow evaluating the requirement `(&mut PgConnection, Oid): std::marker::Send`
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-core-0.8.6\src\ext\async_stream.rs:28:56
     |
  28 |         Fut: 'a + Future<Output = Result<(), Error>> + Send,
     |                                                        ^^^^
     |
     = help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`sqlx_postgres`)
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82
     |
 193 |       async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> {
     |  __________________________________________________________________________________^
 194 | |         let (name, typ_type, category, relation_id, element, base_type): (
 195 | |             String,
 196 | |             i8,
...    |
 257 | |     }
     | |_____^
note: required because it's used within this `async` block
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33
     |
 172 |             let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?;
     |                                 ^^^^^
     = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send`
note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12
     |
 231 | pub struct Box<
     |            ^^^
note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12
     |
1094 | pub struct Pin<Ptr> {
     |            ^^^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36
     |
 157 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 158 | |         // first we check if this is a built-in type
 159 | |         // in the average application, the vast majority of checks should flow through this
 160 | |         if let Some(info) = PgTypeInfo::try_from_oid(oid) {
...    |
 191 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:319:36
     |
 319 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 320 | |         let base_type = self.maybe_fetch_type_info_by_oid(base_type, true).await?;
 321 | |
 322 | |         Ok(PgTypeInfo(PgType::Custom(Arc::new(PgCustomType {
...    |
 326 | |         }))))
 327 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82
     |
 193 |       async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> {
     |  __________________________________________________________________________________^
 194 | |         let (name, typ_type, category, relation_id, element, base_type): (
 195 | |             String,
 196 | |             i8,
...    |
 257 | |     }
     | |_____^
note: required because it's used within this `async` block
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33
     |
 172 |             let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?;
     |                                 ^^^^^
     = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send`
note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12
     |
 231 | pub struct Box<
     |            ^^^
note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12
     |
1094 | pub struct Pin<Ptr> {
     |            ^^^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36
     |
 157 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 158 | |         // first we check if this is a built-in type
 159 | |         // in the average application, the vast majority of checks should flow through this
 160 | |         if let Some(info) = PgTypeInfo::try_from_oid(oid) {
...    |
 191 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:319:36
     |
 319 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 320 | |         let base_type = self.maybe_fetch_type_info_by_oid(base_type, true).await?;
 321 | |
 322 | |         Ok(PgTypeInfo(PgType::Custom(Arc::new(PgCustomType {
...    |
 326 | |         }))))
 327 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82
     |
 193 |       async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> {
     |  __________________________________________________________________________________^
 194 | |         let (name, typ_type, category, relation_id, element, base_type): (
 195 | |             String,
 196 | |             i8,
...    |
 257 | |     }
     | |_____^
note: required because it's used within this `async` block
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33
     |
 172 |             let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?;
     |                                 ^^^^^
     = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send`
note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12
     |
 231 | pub struct Box<
     |            ^^^
note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12
     |
1094 | pub struct Pin<Ptr> {
     |            ^^^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36
     |
 157 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 158 | |         // first we check if this is a built-in type
 159 | |         // in the average application, the vast majority of checks should flow through this
 160 | |         if let Some(info) = PgTypeInfo::try_from_oid(oid) {
...    |
 191 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:319:36
     |
 319 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 320 | |         let base_type = self.maybe_fetch_type_info_by_oid(base_type, true).await?;
 321 | |
 322 | |         Ok(PgTypeInfo(PgType::Custom(Arc::new(PgCustomType {
...    |
 326 | |         }))))
 327 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82
     |
 193 |       async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> {
     |  __________________________________________________________________________________^
 194 | |         let (name, typ_type, category, relation_id, element, base_type): (
 195 | |             String,
 196 | |             i8,
...    |
 257 | |     }
     | |_____^
note: required because it's used within this `async` block
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33
     |
 172 |             let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?;
     |                                 ^^^^^
     = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send`
note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12
     |
 231 | pub struct Box<
     |            ^^^
note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12
     |
1094 | pub struct Pin<Ptr> {
     |            ^^^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36
     |
 157 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 158 | |         // first we check if this is a built-in type
 159 | |         // in the average application, the vast majority of checks should flow through this
 160 | |         if let Some(info) = PgTypeInfo::try_from_oid(oid) {
...    |
 191 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:319:36
     |
 319 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 320 | |         let base_type = self.maybe_fetch_type_info_by_oid(base_type, true).await?;
 321 | |
 322 | |         Ok(PgTypeInfo(PgType::Custom(Arc::new(PgCustomType {
...    |
 326 | |         }))))
 327 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82
     |
 193 |       async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> {
     |  __________________________________________________________________________________^
 194 | |         let (name, typ_type, category, relation_id, element, base_type): (
 195 | |             String,
 196 | |             i8,
...    |
 257 | |     }
     | |_____^
note: required because it's used within this `async` block
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33
     |
 172 |             let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?;
     |                                 ^^^^^
     = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send`
note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12
     |
 231 | pub struct Box<
     |            ^^^
note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12
     |
1094 | pub struct Pin<Ptr> {
     |            ^^^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36
     |
 157 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 158 | |         // first we check if this is a built-in type
 159 | |         // in the average application, the vast majority of checks should flow through this
 160 | |         if let Some(info) = PgTypeInfo::try_from_oid(oid) {
...    |
 191 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:319:36
     |
 319 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 320 | |         let base_type = self.maybe_fetch_type_info_by_oid(base_type, true).await?;
 321 | |
 322 | |         Ok(PgTypeInfo(PgType::Custom(Arc::new(PgCustomType {
...    |
 326 | |         }))))
 327 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82
     |
 193 |       async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> {
     |  __________________________________________________________________________________^
 194 | |         let (name, typ_type, category, relation_id, element, base_type): (
 195 | |             String,
 196 | |             i8,
...    |
 257 | |     }
     | |_____^
note: required because it's used within this `async` block
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33
     |
 172 |             let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?;
     |                                 ^^^^^
     = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send`
note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12
     |
 231 | pub struct Box<
     |            ^^^
note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12
     |
1094 | pub struct Pin<Ptr> {
     |            ^^^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36
     |
 157 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 158 | |         // first we check if this is a built-in type
 159 | |         // in the average application, the vast majority of checks should flow through this
 160 | |         if let Some(info) = PgTypeInfo::try_from_oid(oid) {
...    |
 191 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:319:36
     |
 319 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 320 | |         let base_type = self.maybe_fetch_type_info_by_oid(base_type, true).await?;
 321 | |
 322 | |         Ok(PgTypeInfo(PgType::Custom(Arc::new(PgCustomType {
...    |
 326 | |         }))))
 327 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82
     |
 193 |       async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> {
     |  __________________________________________________________________________________^
 194 | |         let (name, typ_type, category, relation_id, element, base_type): (
 195 | |             String,
 196 | |             i8,
...    |
 257 | |     }
     | |_____^
note: required because it's used within this `async` block
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33
     |
 172 |             let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?;
     |                                 ^^^^^
     = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send`
note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12
     |
 231 | pub struct Box<
     |            ^^^
note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12
     |
1094 | pub struct Pin<Ptr> {
     |            ^^^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36
     |
 157 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 158 | |         // first we check if this is a built-in type
 159 | |         // in the average application, the vast majority of checks should flow through this
 160 | |         if let Some(info) = PgTypeInfo::try_from_oid(oid) {
...    |
 191 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:319:36
     |
 319 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 320 | |         let base_type = self.maybe_fetch_type_info_by_oid(base_type, true).await?;
 321 | |
 322 | |         Ok(PgTypeInfo(PgType::Custom(Arc::new(PgCustomType {
...    |
 326 | |         }))))
 327 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82
     |
 193 |       async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> {
     |  __________________________________________________________________________________^
 194 | |         let (name, typ_type, category, relation_id, element, base_type): (
 195 | |             String,
 196 | |             i8,
...    |
 257 | |     }
     | |_____^
note: required because it's used within this `async` block
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33
     |
 172 |             let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?;
     |                                 ^^^^^
     = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send`
note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12
     |
 231 | pub struct Box<
     |            ^^^
note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12
     |
1094 | pub struct Pin<Ptr> {
     |            ^^^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36
     |
 157 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 158 | |         // first we check if this is a built-in type
 159 | |         // in the average application, the vast majority of checks should flow through this
 160 | |         if let Some(info) = PgTypeInfo::try_from_oid(oid) {
...    |
 191 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:319:36
     |
 319 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 320 | |         let base_type = self.maybe_fetch_type_info_by_oid(base_type, true).await?;
 321 | |
 322 | |         Ok(PgTypeInfo(PgType::Custom(Arc::new(PgCustomType {
...    |
 326 | |         }))))
 327 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:193:82
     |
 193 |       async fn fetch_type_by_oid(&mut self, oid: Oid) -> Result<PgTypeInfo, Error> {
     |  __________________________________________________________________________________^
 194 | |         let (name, typ_type, category, relation_id, element, base_type): (
 195 | |             String,
 196 | |             i8,
...    |
 257 | |     }
     | |_____^
note: required because it's used within this `async` block
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33
     |
 172 |             let info = Box::pin(async { self.fetch_type_by_oid(oid).await }).await?;
     |                                 ^^^^^
     = note: required for `Unique<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>` to implement `std::marker::Send`
note: required because it appears within the type `Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\alloc\src\boxed.rs:231:12
     |
 231 | pub struct Box<
     |            ^^^
note: required because it appears within the type `Pin<Box<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:172:33: 172:38}>>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\pin.rs:1094:12
     |
1094 | pub struct Pin<Ptr> {
     |            ^^^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:157:36
     |
 157 |       ) -> Result<PgTypeInfo, Error> {
     |  ____________________________________^
 158 | |         // first we check if this is a built-in type
 159 | |         // in the average application, the vast majority of checks should flow through this
 160 | |         if let Some(info) = PgTypeInfo::try_from_oid(oid) {
...    |
 191 | |     }
     | |_____^
note: required because it's used within this `async` fn body
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\describe.rs:104:63
     |
 104 |       ) -> Result<(Vec<PgColumn>, HashMap<UStr, usize>), Error> {
     |  _______________________________________________________________^
 105 | |         let mut columns = Vec::new();
 106 | |         let mut column_names = HashMap::new();
...    |
 137 | |         Ok((columns, column_names))
 138 | |     }
     | |_____^
note: required because it's used within this `async` block
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-postgres-0.8.6\src\connection\executor.rs:294:12
     |
 294 |           Ok(try_stream! {
     |  ____________^
 295 | |             loop {
 296 | |                 let message = self.inner.stream.recv().await?;
...    |
 375 | |             Ok(())
 376 | |         })
     | |_________^
note: required because it appears within the type `ManuallyDrop<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-core-0.8.6\src\ext\async_stream.rs:124:110: 124:120}>`
    --> C:\Users\htgaz\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\core\src\mem\manually_drop.rs:157:12
     |
 157 | pub struct ManuallyDrop<T: ?Sized> {
     |            ^^^^^^^^^^^^
note: required because it appears within the type `Instrumented<{async block@C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\sqlx-core-0.8.6\src\ext\async_stream.rs:124:110: 124:120}>`
    --> C:\Users\htgaz\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\tracing-0.1.41\src\instrument.rs:266:16
     |
 266 |     pub struct Instrumented<T> {
     |                ^^^^^^^^^^^^
     = note: this error originates in the macro `try_stream` (in Nightly builds, run with -Z macro-backtrace for more info)

Meta

rustc --version --verbose:

rustc 1.91.0-nightly (1ebbd87a6 2025-08-11)
binary: rustc
commit-hash: 1ebbd87a62ce96a72b22da61b7c2c43893534842
commit-date: 2025-08-11
host: x86_64-pc-windows-msvc
release: 1.91.0-nightly
LLVM version: 21.1.0

Metadata

Metadata

Assignees

Labels

C-bugCategory: This is a bug.E-needs-bisectionCall for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustcS-needs-reproStatus: This issue has no reproduction and needs a reproduction to make progress.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions