aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/visitors
diff options
context:
space:
mode:
authorKeenan Brock <keenan@thebrocks.net>2015-12-05 18:54:09 -0500
committerKeenan Brock <keenan@thebrocks.net>2015-12-05 19:00:33 -0500
commit508a6783c8f75742ac64e5073b3b211b0c15662a (patch)
tree6b3dda4f7ac76ae52aa74ccf1bcb3b67f943d720 /lib/arel/visitors
parent3c429c5d86e9e2201c2a35d934ca6a8911c18e69 (diff)
downloadrails-508a6783c8f75742ac64e5073b3b211b0c15662a.tar.gz
rails-508a6783c8f75742ac64e5073b3b211b0c15662a.tar.bz2
rails-508a6783c8f75742ac64e5073b3b211b0c15662a.zip
Add case sensitive match
Explicitly declare if this is case sensitive or not most implementation assume case sensitive postgres assumes case insensitive
Diffstat (limited to 'lib/arel/visitors')
-rw-r--r--lib/arel/visitors/postgresql.rb6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/arel/visitors/postgresql.rb b/lib/arel/visitors/postgresql.rb
index bd23fc0a47..75d2ad9c93 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