@@ -273,20 +273,39 @@ impl Unparser<'_> {
273273 pattern,
274274 escape_char,
275275 case_insensitive : _,
276- } )
277- | Expr :: Like ( Like {
278- negated,
279- expr,
280- pattern,
281- escape_char,
282- case_insensitive : _,
283276 } ) => Ok ( ast:: Expr :: Like {
284277 negated : * negated,
285278 expr : Box :: new ( self . expr_to_sql_inner ( expr) ?) ,
286279 pattern : Box :: new ( self . expr_to_sql_inner ( pattern) ?) ,
287280 escape_char : escape_char. map ( |c| c. to_string ( ) ) ,
288281 any : false ,
289282 } ) ,
283+ Expr :: Like ( Like {
284+ negated,
285+ expr,
286+ pattern,
287+ escape_char,
288+ case_insensitive,
289+ } ) => {
290+ if * case_insensitive {
291+ Ok ( ast:: Expr :: ILike {
292+ negated : * negated,
293+ expr : Box :: new ( self . expr_to_sql_inner ( expr) ?) ,
294+ pattern : Box :: new ( self . expr_to_sql_inner ( pattern) ?) ,
295+ escape_char : escape_char. map ( |c| c. to_string ( ) ) ,
296+ any : false ,
297+ } )
298+ } else {
299+ Ok ( ast:: Expr :: Like {
300+ negated : * negated,
301+ expr : Box :: new ( self . expr_to_sql_inner ( expr) ?) ,
302+ pattern : Box :: new ( self . expr_to_sql_inner ( pattern) ?) ,
303+ escape_char : escape_char. map ( |c| c. to_string ( ) ) ,
304+ any : false ,
305+ } )
306+ }
307+ }
308+
290309 Expr :: AggregateFunction ( agg) => {
291310 let func_name = agg. func . name ( ) ;
292311 let AggregateFunctionParams {
@@ -1866,10 +1885,20 @@ mod tests {
18661885 expr: Box :: new( col( "a" ) ) ,
18671886 pattern: Box :: new( lit( "foo" ) ) ,
18681887 escape_char: Some ( 'o' ) ,
1869- case_insensitive: true ,
1888+ case_insensitive: false ,
18701889 } ) ,
18711890 r#"a NOT LIKE 'foo' ESCAPE 'o'"# ,
18721891 ) ,
1892+ (
1893+ Expr :: Like ( Like {
1894+ negated: true ,
1895+ expr: Box :: new( col( "a" ) ) ,
1896+ pattern: Box :: new( lit( "foo" ) ) ,
1897+ escape_char: Some ( 'o' ) ,
1898+ case_insensitive: true ,
1899+ } ) ,
1900+ r#"a NOT ILIKE 'foo' ESCAPE 'o'"# ,
1901+ ) ,
18731902 (
18741903 Expr :: SimilarTo ( Like {
18751904 negated: false ,
0 commit comments