Michael Schoen
2006-Oct-13 08:32 UTC
Rails AR/Oracle Unit Test: [5291] failed (getting worse)
"rick" has kicked AR/Oracle while it was down... http://dev.rubyonrails.org/changeset/5291 ------------------------------------------------------------------------ r5291 | rick | 2006-10-13 01:29:00 -0700 (Fri, 13 Oct 2006) | 1 line fix select_limited_ids_list issues in postgresql, retain current behavior in other adapters [Rick] ------------------------------------------------------------------------ U activerecord/test/associations_test.rb U activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb U activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb U activerecord/lib/active_record/associations.rb U activerecord/CHANGELOG Updated to revision 5291. 1) Error: test_load_schema(AAACreateTablesTest): ActiveRecord::StatementInvalid: ./test/../lib/active_record/connection_adapters/abstract_adapter.rb:122: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) 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 projects.id, developers.created_at ./test/../lib/active_record/connection_adapters/abstract_adapter.rb:122: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'' 3) 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>. 4) 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'' 980 tests, 3506 assertions, 1 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) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to rubyonrails-core@googlegroups.com To unsubscribe from this group, send email to rubyonrails-core-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-core -~----------~----~----~----~------~----~------~--~---
Rick Olson
2006-Oct-13 09:00 UTC
Re: Rails AR/Oracle Unit Test: [5291] failed (getting worse)
> 2) 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 projects.id, developers.created_at > ./test/../lib/active_record/connection_adapters/abstract_adapter.rb:122: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''From the looks of it, Oracle has the same requirement as Postgresql, where it requires the order by columns in a distinct query to be in the select clause. However, this won''t be the same unless you can define a seperate distinct clause from the select clause like I did with PostgreSQL: SELECT DISTINCT ON (projects.id) projects.id, developers.created_at... Does anything like this exist for Oracle? The solutions I''m seeing involve either subqueries or aggregates. -- Rick Olson http://weblog.techno-weenie.net http://mephistoblog.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to rubyonrails-core@googlegroups.com To unsubscribe from this group, send email to rubyonrails-core-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-core -~----------~----~----~----~------~----~------~--~---