diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2015-12-22 17:12:34 -0200 |
---|---|---|
committer | Rafael França <rafaelmfranca@gmail.com> | 2015-12-22 17:12:34 -0200 |
commit | 90815ce412b6341c7372e1e514d9078869b4b933 (patch) | |
tree | e4e2fafdf448cb6090b0ba94caef13a32e825aa8 /activerecord/lib/active_record/connection_adapters | |
parent | d182c22e915b4d5d97d171b9c612b6c37c7d6ded (diff) | |
parent | c548298e76026465c2e358f9ff1d83c8c404b587 (diff) | |
download | rails-90815ce412b6341c7372e1e514d9078869b4b933.tar.gz rails-90815ce412b6341c7372e1e514d9078869b4b933.tar.bz2 rails-90815ce412b6341c7372e1e514d9078869b4b933.zip |
Merge pull request #22620 from kamipo/join_to_delete_is_same_as_join_to_update
`join_to_delete` is same as `join_to_update`
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb | 10 | ||||
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | 2 |
2 files changed, 3 insertions, 9 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb b/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb index 7e0b449c99..d3bc378bea 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb @@ -344,18 +344,12 @@ module ActiveRecord # The default strategy for an UPDATE with joins is to use a subquery. This doesn't work # on MySQL (even when aliasing the tables), but MySQL allows using JOIN directly in # an UPDATE statement, so in the MySQL adapters we redefine this to do that. - def join_to_update(update, select) #:nodoc: - key = update.key + def join_to_update(update, select, key) # :nodoc: subselect = subquery_for(key, select) update.where key.in(subselect) end - - def join_to_delete(delete, select, key) #:nodoc: - subselect = subquery_for(key, select) - - delete.where key.in(subselect) - end + alias join_to_delete join_to_update protected diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb index af10703e0e..5ebd8a8dcb 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -431,7 +431,7 @@ module ActiveRecord # 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. - def join_to_update(update, select) #:nodoc: + def join_to_update(update, select, key) # :nodoc: if select.limit || select.offset || select.orders.any? super else |