aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorJames Pearson <james@needcode.co.uk>2019-07-29 12:04:07 +0100
committerJames Pearson <james@needcode.co.uk>2019-07-29 15:53:29 +0100
commit92c265b3ad89303e53e64f7ead4499066966c722 (patch)
tree313f573fdbddf65bf6624b7fe9ee39318bd3ad83 /activerecord/lib
parent682f6648193a7d166d8f54be98af19c62b4e938f (diff)
downloadrails-92c265b3ad89303e53e64f7ead4499066966c722.tar.gz
rails-92c265b3ad89303e53e64f7ead4499066966c722.tar.bz2
rails-92c265b3ad89303e53e64f7ead4499066966c722.zip
Enabled matches_regex for MySql
Previously matches_regex was only availble on PostgreSql, this will enable it for MySql Usage example: users = User.arel_table; users = User.arel_table; User.where(users[:email].matches_regexp('(.*)\@gmail.com')) Update activerecord/test/cases/arel/visitors/mysql_test.rb Co-Authored-By: Ryuta Kamizono <kamipo@gmail.com>
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/arel/visitors/mysql.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/activerecord/lib/arel/visitors/mysql.rb b/activerecord/lib/arel/visitors/mysql.rb
index dd77cfdf66..6cb866715f 100644
--- a/activerecord/lib/arel/visitors/mysql.rb
+++ b/activerecord/lib/arel/visitors/mysql.rb
@@ -48,6 +48,14 @@ module Arel # :nodoc: all
visit_Arel_Nodes_IsNotDistinctFrom o, collector
end
+ def visit_Arel_Nodes_Regexp(o, collector)
+ infix_value o, collector, " REGEXP "
+ end
+
+ def visit_Arel_Nodes_NotRegexp(o, collector)
+ infix_value o, collector, " NOT REGEXP "
+ end
+
# In the simple case, MySQL allows us to place JOINs directly into the UPDATE
# query. However, this does not allow for LIMIT, OFFSET and ORDER. To support
# these, we must use a subquery.