This project is archived and is in readonly mode.
ActiveRecord::Relation#merge merges other table's conditions having same attribute name
Reported by Akira Matsuda | July 23rd, 2010 @ 10:53 AM | in 3.0.2
For example,
(Developer.joins(:company).where(:name => 'david') & Company.where(:name => '37signals')).to_sql
/ generates the following SQL.
SELECT "developers".* FROM "developers" INNER JOIN "companies" ON "companies"."id" = "developers"."company_id" WHERE ("companies"."name" = '37signals')
("developers"."name" = 'david') were overwritten because ActiveRecord::Relation#merge merges all Equality conditions with same attribute name.
Attached a patch to compare table_name as well when merging.
Comments and changes to this ticket
-
Akira Matsuda August 22nd, 2010 @ 09:38 PM
- Tag changed from activerecord rails3, merge relation, edge, merge, patch, relation, scope, tested to activerecord rails3, merge relation, bug, edge, merge, patch, relation, scope, tested
Updated the patch so that it applies to the current Edge...
-
José Valim August 23rd, 2010 @ 01:25 AM
- Milestone cleared.
- Assigned user set to Aaron Patterson
- Importance changed from to Low
-
Aaron Patterson August 23rd, 2010 @ 01:47 AM
- State changed from new to incomplete
Hi Akira!
I tried this patch, but it makes the AR tests fail. Specifically a named scope test:
$ ruby -w -I"lib:test:test/connections/native_sqlite3" test/cases/named_scope_test.rb -n test_chaining_should_use_latest_conditions_when_searching /Users/apatterson/git/arel/lib/arel/algebra/attributes/attribute.rb:70: warning: method redefined; discarding old root Using native SQLite3 Loaded suite test/cases/named_scope_test Started F Finished in 0.063631 seconds. 1) Failure: test_chaining_should_use_latest_conditions_when_searching(NamedScopeTest) [test/cases/named_scope_test.rb:352:in `test_chaining_should_use_latest_conditions_when_searching' /Users/apatterson/git/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:67:in `__send__' /Users/apatterson/git/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:67:in `run' /Users/apatterson/git/rails/activesupport/lib/active_support/callbacks.rb:418:in `_run_setup_callbacks' /Users/apatterson/git/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:65:in `run']: <[#<Post id: 4, author_id: 1, title: "sti comments", body: "hello", type: "Post", comments_count: 0, taggings_count: 0>]> expected but was <[]>. 1 tests, 3 assertions, 1 failures, 0 errors
Can you check the patch and make sure the AR tests pass?
-
Repository October 30th, 2010 @ 09:26 PM
- State changed from incomplete to resolved
(from [296467fcc40bb3c6a4f42dedc267eb4f313843a9]) only returning where values for the corresponding relation, also filtering where value hash based on table name [#5234 state:resolved] [#5184 state:resolved] http://github.com/rails/rails/commit/296467fcc40bb3c6a4f42dedc267eb...
-
Repository October 30th, 2010 @ 09:37 PM
(from [29b3af539b1a61141a42adb04b78d86433bdd21e]) only returning where values for the corresponding relation, also filtering where value hash based on table name [#5234 state:resolved] [#5184 state:resolved] http://github.com/rails/rails/commit/29b3af539b1a61141a42adb04b78d8...
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile »
<h2 style="font-size: 14px">Tickets have moved to Github</h2>
The new ticket tracker is available at <a href="https://github.com/rails/rails/issues">https://github.com/rails/rails/issues</a>
People watching this ticket
Attachments
Referenced by
- 5234 ActiveRecord::Relation#scope_for_create wrongly merges other table's conditions having same attribute name Updated the patch so that it applies to the current Edge....
- 5234 ActiveRecord::Relation#scope_for_create wrongly merges other table's conditions having same attribute name Attached a patch for fixing this. This patch depends on a...
- 5184 ActiveRecord::Relation#merge merges other table's conditions having same attribute name (from [296467fcc40bb3c6a4f42dedc267eb4f313843a9]) only re...
- 5234 ActiveRecord::Relation#scope_for_create wrongly merges other table's conditions having same attribute name (from [296467fcc40bb3c6a4f42dedc267eb4f313843a9]) only re...
- 5234 ActiveRecord::Relation#scope_for_create wrongly merges other table's conditions having same attribute name (from [29b3af539b1a61141a42adb04b78d86433bdd21e]) only re...
- 5184 ActiveRecord::Relation#merge merges other table's conditions having same attribute name (from [29b3af539b1a61141a42adb04b78d86433bdd21e]) only re...