aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/visitors
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2015-12-16 07:42:17 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2015-12-16 07:42:17 -0800
commit899e8428c50c586e6c8d4884b542ac9fdf01e95f (patch)
treecea78b06495af32c84f7fa34f4cc104b6cb3c1bf /lib/arel/visitors
parent3c429c5d86e9e2201c2a35d934ca6a8911c18e69 (diff)
parent725cf0502eb279c728bd93320cc5e22134228ff1 (diff)
downloadrails-899e8428c50c586e6c8d4884b542ac9fdf01e95f.tar.gz
rails-899e8428c50c586e6c8d4884b542ac9fdf01e95f.tar.bz2
rails-899e8428c50c586e6c8d4884b542ac9fdf01e95f.zip
Merge pull request #403 from kbrock/regexp
Case insensitivite match/regular expressions
Diffstat (limited to 'lib/arel/visitors')
-rw-r--r--lib/arel/visitors/postgresql.rb12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/arel/visitors/postgresql.rb b/lib/arel/visitors/postgresql.rb
index bd23fc0a47..1ef0261bdd 100644
--- a/lib/arel/visitors/postgresql.rb
+++ b/lib/arel/visitors/postgresql.rb
@@ -4,7 +4,8 @@ module Arel
private
def visit_Arel_Nodes_Matches o, collector
- collector = infix_value o, collector, ' ILIKE '
+ op = o.case_sensitive ? ' LIKE ' : ' ILIKE '
+ collector = infix_value o, collector, op
if o.escape
collector << ' ESCAPE '
visit o.escape, collector
@@ -14,7 +15,8 @@ module Arel
end
def visit_Arel_Nodes_DoesNotMatch o, collector
- collector = infix_value o, collector, ' NOT ILIKE '
+ op = o.case_sensitive ? ' NOT LIKE ' : ' NOT ILIKE '
+ collector = infix_value o, collector, op
if o.escape
collector << ' ESCAPE '
visit o.escape, collector
@@ -24,11 +26,13 @@ module Arel
end
def visit_Arel_Nodes_Regexp o, collector
- infix_value o, collector, ' ~ '
+ op = o.case_sensitive ? ' ~ ' : ' ~* '
+ infix_value o, collector, op
end
def visit_Arel_Nodes_NotRegexp o, collector
- infix_value o, collector, ' !~ '
+ op = o.case_sensitive ? ' !~ ' : ' !~* '
+ infix_value o, collector, op
end
def visit_Arel_Nodes_DistinctOn o, collector