@@ -953,23 +953,23 @@ if Code.ensure_loaded?(Postgrex) do
953953
954954 defp expr ( { :in , _ , [ left , right ] } , sources , query ) when is_list ( right ) do
955955 args = Enum . map_intersperse ( right , ?, , & expr ( & 1 , sources , query ) )
956- [ expr ( left , sources , query ) , " IN (" , args , ?) ]
956+ [ maybe_paren ( left , sources , query ) , " IN (" , args , ?) ]
957957 end
958958
959959 defp expr ( { :in , _ , [ left , { :^ , _ , [ ix , _ ] } ] } , sources , query ) do
960- [ expr ( left , sources , query ) , " = ANY($" , Integer . to_string ( ix + 1 ) , ?) ]
960+ [ maybe_paren ( left , sources , query ) , " = ANY($" , Integer . to_string ( ix + 1 ) , ?) ]
961961 end
962962
963963 defp expr ( { :in , _ , [ left , % Ecto.SubQuery { } = subquery ] } , sources , query ) do
964- [ expr ( left , sources , query ) , " IN " , expr ( subquery , sources , query ) ]
964+ [ maybe_paren ( left , sources , query ) , " IN " , expr ( subquery , sources , query ) ]
965965 end
966966
967967 defp expr ( { :in , _ , [ left , right ] } , sources , query ) do
968- [ expr ( left , sources , query ) , " = ANY(" , expr ( right , sources , query ) , ?) ]
968+ [ maybe_paren ( left , sources , query ) , " = ANY(" , expr ( right , sources , query ) , ?) ]
969969 end
970970
971971 defp expr ( { :is_nil , _ , [ arg ] } , sources , query ) do
972- [ expr ( arg , sources , query ) | " IS NULL" ]
972+ [ maybe_paren ( arg , sources , query ) | " IS NULL" ]
973973 end
974974
975975 defp expr ( { :not , _ , [ expr ] } , sources , query ) do
0 commit comments