On 25 Jun 2008, at 17:34, Grant Croker wrote:

> On/El 25/06/08 16:33, Frederick Cheung wrote/escribió:
>>
>> On 25 Jun 2008, at 14:58, Grant Croker wrote:
>>> The crash occurs due to the looping/recursion as it eventually runs
>>> out of stack space in the process. See http://en.pastebin.ca/raw/1055724
>>>  for the backtrace I get when running rake using --trace. You will
>>> see from the log file that it continually loops against the
>>> following 4 lines:
>>> activerecord-2.1.0/lib/active_record/connection_adapters/
>>> ingres_adapter.rb:398:in `quote'
>>> activerecord-2.1.0/lib/active_record/connection_adapters/abstract/
>>> schema_statements.rb:377:in `add_column_options!'
>>> activerecord-2.1.0/lib/active_record/connection_adapters/abstract/
>>> schema_definitions.rb:272:in `add_column_options!'
>>> activerecord-2.1.0/lib/active_record/connection_adapters/abstract/
>>> schema_definitions.rb:263:in `to_s'
>>>
>> Hmm, ColumnDefinition aliases to_s to to_sql (and then that calls
>> through to add_column_options!, which calls through to
>> add_column_options! on the adapter itself). Are you calling to_s on
>> something you shouldn't be (perhaps as a debugging aid?)
>>
>>
> I found the recursive problem - the ingres adapter method quote()  
> makes the following call to a trace function:
>     complete_trace(" in quote(#{value}, #{column}) ")
>
> which goes to:
>
> def complete_trace (msg)
>     if(PRINT_TRACES) then
>         puts "\n#{msg}\n"
>     end
> end
>
>
> commenting out that line allows the migration to carry on, at least  
> it creates the tables now.
>
> It would appear that even when PRINT_TRACES == false that the msg  
> (quote(#{value}, #{column})) is being executed. Can you think of a  
> reason why that would be?
>

It's the column.to_s which is bad, and that bit has to be evaluated  
(even if complete_trace then ignores it). You'll be ok if you change  
#{column} to something else

Fred

> thanks
>
> grant
> -- 
> Grant Croker - Ingres PHP, Ruby and Python maintainer
> Mark Carwardine's role, essentially, was to be the one who knew what  
> he
> was talking about. My role, and one for which I was entirely  
> qualified,
> was to be an extremely ignorant non-zoologist to whom everything that
> happened would come as a complete surprise.
>
> >


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