On Nov 12, 12:30 pm, knightsc <[EMAIL PROTECTED]> wrote:
> I'm trying to run the regresttion test scripts on a firebird database.
> I'm getting a lot of errors where the query being created is using =
> NULL in the where clause. One specific place that is fails is as
> follows
>
>   1) Error:
> test_save_on_parent_saves_children(AssociationProxyTest):
> ActiveRecord::StatementInvalid: FireRuby::FireRubyException: Error
> preparing a SQL statement.
> Dynamic SQL Error
> SQL error code = -104
> Token unknown - line 1, char 59
> NULL
> Invalid token
> SQL Code = -104
> Firebird Code = 335544569
> : SELECT * FROM audit_logs WHERE (audit_logs.developer_id = NULL)
>     ./../lib/active_record/connection_adapters/abstract_adapter.rb:
> 128:in `log'
>     ./../lib/active_record/connection_adapters/firebird_adapter.rb:
> 382:in `execute'
>     ./../lib/active_record/connection_adapters/firebird_adapter.rb:
> 612:in `select'
>     ./../lib/active_record/connection_adapters/firebird_adapter.rb:
> 374:in `select_all'
>     ./../lib/active_record/base.rb:427:in `find_by_sql'
>     ./../lib/active_record/base.rb:999:in `find_every'
>     ./../lib/active_record/base.rb:418:in `find'
>     ./../lib/active_record/associations/has_many_association.rb:91:in
> `find'
>     ./../lib/active_record/associations/association_collection.rb:
> 163:in `find_target'
>     ./../lib/active_record/associations/has_many_association.rb:121:in
> `load_target'
>     ./../lib/active_record/associations/association_proxy.rb:122:in
> `method_missing'
>     ./../lib/active_record/associations/has_many_association.rb:98:in
> `method_missing'
>     ./../lib/active_record/callbacks.rb:345:in `callback'
>     ./../lib/active_record/callbacks.rb:335:in `callback'
>     ./../lib/active_record/callbacks.rb:330:in `each'
>     ./../lib/active_record/callbacks.rb:330:in `callback'
>     ./../lib/active_record/callbacks.rb:255:in
> `create_without_timestamps'
>     ./../lib/active_record/timestamp.rb:30:in `create'
>     ./../lib/active_record/base.rb:1793:in
> `create_or_update_without_callbacks'
>     ./../lib/active_record/callbacks.rb:242:in `create_or_update'
>     ./../lib/active_record/base.rb:1549:in `save_without_validation'
>     ./../lib/active_record/validations.rb:752:in
> `save_without_transactions'
>     ./../lib/active_record/transactions.rb:129:in `save'
>     ./../lib/active_record/connection_adapters/abstract/
> database_statements.rb:59:in `transaction'
>     ./../lib/active_record/transactions.rb:95:in `transaction'
>     ./../lib/active_record/transactions.rb:121:in `transaction'
>     ./../lib/active_record/transactions.rb:129:in `save'
>     ./../lib/active_record/base.rb:451:in `create'
>     associations_test.rb:110:in `test_save_on_parent_saves_children'
>
> This line in the test is doing something like this
>
> developer = Developer.create :name => "Bryan" :salary => 50_000
>
> Firebird uses the prefetch sequence generate stuff and I know that a
> sequence number has been fetched but for whatever reason in the create
> when it's trying to load the associations it's trying to query = NULL
> instead of the actually id of the class. Can someone point me in the
> right direction of something to look at to correct this problem.
>
> Thanks,
> Scott Knight

This seems like the same problem described on 
http://dev.rubyonrails.org/ticket/8713
but it doesn't seem to be fixed for firebird. The problem seems to be
right before it can send construct_sql to the association it
calls .blank? on the association which then causes the proxy to
load_target on them which runs the query with = NULL in it

-Scott


--~--~---------~--~----~------------~-------~--~----~
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 [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to