http://dev.rubyonrails.org/changeset/5310
------------------------------------------------------------------------
r5310 | rick | 2006-10-16 08:42:55 -0700 (Mon, 16 Oct 2006) | 1 line
Fix has_many :through to add the appropriate conditions when going through an association using STI. Closes #5783. [Jonathan Viney] (sorry, forgot to commit the actual files)
------------------------------------------------------------------------
U activerecord/lib/active_record/associations/has_many_through_association.rb
U activerecord/lib/active_record/associations.rb
U activerecord/CHANGELOG
Updated to revision 5310.
1) Error:
test_load_schema(AAACreateTablesTest):
ActiveRecord::StatementInvalid: ./test/../lib/active_record/connection_adapters/abstract_adapter.rb:128:in `log': OCIError: ORA-00972: identifier is too long: CREATE TABLE lock_with_custom_column_without_defaults (id NUMBER(38) NOT NULL PRIMARY KEY, custom_lock_version NUMBER(38))
./test/aaa_create_tables_test.rb:18:in `test_load_schema'
./test/../lib/active_record/connection_adapters/oracle_adapter.rb:243:in `execute'
./test/../lib/active_record/connection_adapters/abstract/schema_statements.rb:104:in `create_table'
./test/../lib/active_record/connection_adapters/oracle_adapter.rb:368:in `create_table'
./test/../lib/active_record/migration.rb:274:in `method_missing'
./test/../lib/active_record/migration.rb:258:in `say_with_time'
/usr/pkg/ruby184/lib/ruby/1.8/benchmark.rb:293:in `measure'
./test/../lib/active_record/migration.rb:258:in `say_with_time'
./test/../lib/active_record/migration.rb:272:in `method_missing'
(eval):57:in `test_load_schema'
./test/../lib/active_record/schema.rb:43:in `define'
(eval):1:in `test_load_schema'
./test/aaa_create_tables_test.rb:18:in `test_load_schema'
2) Failure:
test_eager_with_has_many_through_join_model_with_conditions(EagerAssociationTest) [./test/associations/eager_test.rb:126]:
<[#<SpecialComment:0x45f99b00 @attributes={"body"=>"Special type", "type"=>"SpecialComment", "post_id"=>4, "id"=>6}>, #<SpecialComment:0x45f9229c @attributes={"body"=>"Special type 2", "type"=>"SpecialComment", "post_id"=>4, "id"=>7}>, #<VerySpecialComment:0x45f8bca8 @attributes={"body"=>"Very Special type", "type"=>"VerySpecialComment", "post_id"=>4, "id"=>5}>, #<Comment:0x45f854c0 @attributes={"body"=>"Normal type", "type"=>"Comment", "post_id"=>4, "id"=>8}>, #<Comment:0x45f82464 @attributes={"body"=>"Normal type", "type"=>"Comment", "post_id"=>5, "id"=>9}>, #<SpecialComment:0x45f7cfdc @attributes={"body"=>"Special Type", "type"=>"SpecialComment", "post_id"=>5, "id"=>10}>]> expected but was
<[#<SpecialComment:0x45f696f8 @attributes={"body"=>"go crazy", "type"=>"SpecialComment", "post_id"=>7, "id"=>11}>]>.
3) Error:
test_select_limited_ids_list(HasAndBelongsToManyAssociationsTest):
ActiveRecord::StatementInvalid: OCIError: ORA-01791: not a SELECTed expression: SELECT DISTINCT projects.id FROM projects LEFT OUTER JOIN developers_projects ON developers_projects.project_id = projects.id LEFT OUTER JOIN developers ON developers.id = developers_projects.developer_id ORDER BY developers.created_at
./test/../lib/active_record/connection_adapters/abstract_adapter.rb:128:in `log'
./test/../lib/active_record/connection_adapters/oracle_adapter.rb:243:in `execute'
./test/../lib/active_record/connection_adapters/oracle_adapter.rb:449:in `select'
./test/../lib/active_record/connection_adapters/oracle_adapter.rb:234:in `select_all'
./test/../lib/active_record/associations.rb:1188:in `select_limited_ids_list'
./test/associations_test.rb:1796:in `test_select_limited_ids_list'
4) Failure:
test_not_resaved_when_unchanged(HasOneAssociationsTest)
[./test/abstract_unit.rb:48:in `assert_queries'
./test/associations_test.rb:351:in `test_not_resaved_when_unchanged']:
0 instead of 1 queries were executed.
<1> expected but was
<0>.
5) Error:
test_lock_with_custom_column_without_default_sets_version_to_zero(OptimisticLockingTest):
OCIError: ORA-00972: identifier is too long
ORA-00972: identifier is too long
(eval):3:in `describe'
./test/../lib/active_record/connection_adapters/oracle_adapter.rb:333:in `columns'
./test/../lib/active_record/base.rb:759:in `columns'
./test/../lib/active_record/base.rb:2029:in `attributes_from_column_definition_without_lock'
./test/../lib/active_record/locking/optimistic.rb:45:in `attributes_from_column_definition'
./test/../lib/active_record/base.rb:1487:in `initialize_without_callbacks'
./test/../lib/active_record/callbacks.rb:225:in `initialize'
./test/locking_test.rb:72:in `test_lock_with_custom_column_without_default_sets_version_to_zero'
984 tests, 3511 assertions, 2 failures, 3 errors
rake aborted!
Command failed with status (1): [/usr/pkg/ruby184/bin/ruby -Ilib:test:test/...]
(See full trace by running task with --trace)
I've submitted a patch to resolve the remaining AR/Oracle test failures;
I backed out the still-in-progress bind variable changes, so that this
could be applied before the 1.2 release.
Michael Schoen wrote:
> "rick" has given AR/Oracle some love, but it's still unhappy...
I've submitted a patch to resolve the remaining AR/Oracle test failures;
Resending this with a more enticing subject line...
Michael Schoen wrote:
> "rick" has given AR/Oracle some love, but it's still unhappy...
I've submitted a patch to resolve the remaining AR/Oracle test failures;
I backed out the still-in-progress bind variable changes, so that this
could be applied before the 1.2 release.
http://dev.rubyonrails.org/ticket/6515
Thanks. Omitting that bit still leaves a failed test. I updated the
ticket, please let me know how you want to proceed. I can put together a
cleaner patch in a bit if that's ok.
I've updated the ticket w/ a patch for the remaining failing test.