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 -~----------~----~----~----~------~----~------~--~---