Skip to content

macro uses wrong casing causing warnings in rust-analyzer #3361

@liciana24

Description

@liciana24

Bug Description

rust-analyzer and cargo complains about the casing of a variable leading to false negatives

Minimal Reproduction

use sqlx::{prelude::FromRow, Connection, SqliteConnection};

const DATABASE_URL: &str = "./mydb/sqlite";

#[derive(Debug, FromRow)]
#[sqlx(rename_all = "UPPERCASE")]
pub struct ObjInfo {
    pub name: String,
}

pub async fn get_info(name: &str) -> Result<ObjInfo, Box<dyn std::error::Error>> {
    let mut conn = SqliteConnection::connect(DATABASE_URL).await?;
    let param =  format!("{}%", name);
    let record = sqlx::query!("SELECT MYNAME FROM mytable WHERE MYNAME = ?", param)
        .fetch_one(&mut conn)
        .await?;

    Ok(ObjInfo {
        name: record.MYNAME.unwrap_or_default()
    })
}

gives the error on the query as so:

Field `MYNAME` should have snake_case name, e.g. `myname`
Variable `sqlx_query_as_NAME` should have snake_case name, e.g. `sqlx_query_as_name`

Info

  • SQLx version: 0.7.4
  • SQLx features enabled: sqlx = { version = "0.7.4", features = ["chrono", "macros", "runtime-tokio", "sqlite"] }
  • Database server and version: Sqlite
  • Operating system: windows and openbsd
  • rustc --version: rustc 1.79.0 (129f3b996 2024-06-10)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions