@@ -730,9 +730,12 @@ impl<'a> Parser<'a> {
730730 Keyword :: AND => Some ( BinaryOperator :: And ) ,
731731 Keyword :: OR => Some ( BinaryOperator :: Or ) ,
732732 Keyword :: LIKE => Some ( BinaryOperator :: Like ) ,
733+ Keyword :: ILIKE => Some ( BinaryOperator :: Ilike ) ,
733734 Keyword :: NOT => {
734735 if self . parse_keyword ( Keyword :: LIKE ) {
735736 Some ( BinaryOperator :: NotLike )
737+ } else if self . parse_keyword ( Keyword :: ILIKE ) {
738+ Some ( BinaryOperator :: NotIlike )
736739 } else {
737740 None
738741 }
@@ -850,13 +853,17 @@ impl<'a> Parser<'a> {
850853 // precedence.
851854 Token :: Word ( w) if w. keyword == Keyword :: IN => Ok ( Self :: BETWEEN_PREC ) ,
852855 Token :: Word ( w) if w. keyword == Keyword :: BETWEEN => Ok ( Self :: BETWEEN_PREC ) ,
853- Token :: Word ( w) if w. keyword == Keyword :: LIKE => Ok ( Self :: BETWEEN_PREC ) ,
856+ Token :: Word ( w) if w. keyword == Keyword :: LIKE || w. keyword == Keyword :: ILIKE => {
857+ Ok ( Self :: BETWEEN_PREC )
858+ }
854859 _ => Ok ( 0 ) ,
855860 } ,
856861 Token :: Word ( w) if w. keyword == Keyword :: IS => Ok ( 17 ) ,
857862 Token :: Word ( w) if w. keyword == Keyword :: IN => Ok ( Self :: BETWEEN_PREC ) ,
858863 Token :: Word ( w) if w. keyword == Keyword :: BETWEEN => Ok ( Self :: BETWEEN_PREC ) ,
859- Token :: Word ( w) if w. keyword == Keyword :: LIKE => Ok ( Self :: BETWEEN_PREC ) ,
864+ Token :: Word ( w) if w. keyword == Keyword :: LIKE || w. keyword == Keyword :: ILIKE => {
865+ Ok ( Self :: BETWEEN_PREC )
866+ }
860867 Token :: Eq | Token :: Lt | Token :: LtEq | Token :: Neq | Token :: Gt | Token :: GtEq => Ok ( 20 ) ,
861868 Token :: Pipe => Ok ( 21 ) ,
862869 Token :: Caret | Token :: Sharp | Token :: ShiftRight | Token :: ShiftLeft => Ok ( 22 ) ,
0 commit comments