{"record":{"id":"b38afab80230865a","repo":"diesel-rs/diesel","slug":"invalid-sql-name-attribute-name-attribu","errorCode":null,"errorMessage":"Invalid `#[sql_name = {attribute_name:?}]` attribute","messagePattern":"Invalid `#\\[sql_name = (.+?)\\]` attribute","errorType":"exception","errorClass":"syn::Error","httpStatus":null,"severity":"error","filePath":"diesel_table_macro_syntax/src/lib.rs","lineNumber":235,"sourceCode":"    if let Some(index) = meta.iter().position(|m| {\n        m.path()\n            .get_ident()\n            .map(|i| i == attribute_name)\n            .unwrap_or(false)\n    }) {\n        let attribute = meta.remove(index);\n        let span = attribute.span();\n        let extraction_after_finding_attr = if let syn::Meta::NameValue(MetaNameValue {\n            value: syn::Expr::Lit(syn::ExprLit { lit, .. }),\n            ..\n        }) = attribute.meta\n        {\n            extraction_fn(lit)\n        } else {\n            None\n        };\n        return Ok(Some(extraction_after_finding_attr.ok_or_else(|| {\n            syn::Error::new(\n                span,\n                format_args!(\"Invalid `#[sql_name = {attribute_name:?}]` attribute\"),\n            )\n        })?));\n    }\n    Ok(None)\n}\n\nfn take_flag(\n    meta: &mut Vec<syn::Attribute>,\n    attribute_name: &'static str,\n) -> Result<bool, syn::Error> {\n    if let Some(index) = meta.iter().position(|m| {\n        m.path()\n            .get_ident()\n            .map(|i| i == attribute_name)\n            .unwrap_or(false)\n    }) {","sourceCodeStart":217,"sourceCodeEnd":253,"githubUrl":"https://github.com/diesel-rs/diesel/blob/6fa6ed01b24b24248ab2a611698d0a7c6a2e9120/diesel_table_macro_syntax/src/lib.rs#L217-L253","documentation":"Compile-time error from take_lit in diesel_table_macro_syntax, which extracts a string-literal value for an attribute such as #[sql_name = \"...\"] from the macro input. This guard fires when the named attribute was found but its meta is not a NameValue with a literal value — e.g. #[sql_name] without `= \"...\"`, or a non-literal expression. Fix: write `#[sql_name = \"your_name\"]` with a string literal.","triggerScenarios":"Thrown at diesel_table_macro_syntax/src/lib.rs:235 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use `#[sql_name = \"...\"]` with a string literal","Remove the attribute if not needed"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6fa6ed01b24b24248ab2a611698d0a7c6a2e9120","analyzedAt":"2026-09-07T01:50:13.074Z","contentChangedAt":"2026-09-07T01:50:13.074Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}