@@ -17,10 +17,10 @@ pub enum DbmsKind {
1717#[ derive( Debug , Default , Clone , Serialize , Deserialize ) ]
1818#[ serde( rename_all = "snake_case" ) ]
1919#[ non_exhaustive]
20+ #[ allow( deprecated) ]
2021pub enum SqlObfuscationMode {
2122 #[ default]
2223 #[ deprecated = "kept for compatibility with agent's obfuscator but has unintuitive behavior" ]
23- #[ allow( deprecated) ]
2424 Unspecified ,
2525 NormalizeOnly ,
2626 ObfuscateOnly ,
@@ -240,6 +240,7 @@ impl<'a> Tokenizer<'a> {
240240 )
241241 }
242242
243+ #[ allow( deprecated) ]
243244 fn is_unspecified_obfuscate_mode ( & self ) -> bool {
244245 matches ! (
245246 self . config. obfuscation_mode,
@@ -2072,7 +2073,7 @@ fn collapse_multi_values(s: &str) -> String {
20722073 let mut result = String :: with_capacity ( s. len ( ) ) ;
20732074 let mut remaining = s;
20742075
2075- while ! remaining. is_empty ( ) {
2076+ while let Some ( c ) = remaining. chars ( ) . next ( ) {
20762077 const VALUES_KW : & str = "VALUES" ;
20772078 const VALUES_TAIL : & str = " ( ? )" ;
20782079 const VALUES_FULL : & str = "VALUES ( ? )" ;
@@ -2112,8 +2113,6 @@ fn collapse_multi_values(s: &str) -> String {
21122113 }
21132114 }
21142115
2115- // Fallback: consume one char
2116- let c = remaining. chars ( ) . next ( ) . unwrap ( ) ; // safe because remaining not empty
21172116 result. push ( c) ;
21182117 remaining = & remaining[ c. len_utf8 ( ) ..] ;
21192118 }
@@ -2172,6 +2171,7 @@ pub fn obfuscate_sql(s: &str, config: &SqlObfuscateConfig) -> String {
21722171 let raw = tokenizer. finalize ( ) ;
21732172 // collapse_grouped_values applies in legacy mode and obfuscate_and_normalize mode.
21742173 // In obfuscate_only and normalize_only modes, values are NOT collapsed.
2174+ #[ allow( deprecated) ]
21752175 let should_collapse = matches ! (
21762176 config. obfuscation_mode,
21772177 SqlObfuscationMode :: Unspecified | SqlObfuscationMode :: ObfuscateAndNormalize
0 commit comments