Here is something that "works" under SQL Server (with freetds / odbc) but not mysql. When renaming columns using the SQL ''as'' construct with the mysql adapter, the type is not always preserved. # script/console>> SomeModel.find(:first, :select => ''integer_column'').integer_column.class=> Fixnum>> SomeModel.find(:first, :select => ''integer_column as width'').width.class=> String More detailed: # cat db/migrate/005_create_noodles.rb class CreateSomeModel < ActiveRecord::Migration def self.up create_table :some_models do |t| t.integer :integer_column end end def self.down drop_table :some_models end end # rake db:migrate # script/console>> SomeModel.create(:integer_column => 4) => #<SomeModel id: 1, integer_column: 4>>> SomeModel.find(:first, :select => ''integer_column as width'').width=> "4">> _.class=> String Under SQL Server get "Fixnum" instead of "String". Fixnum makes more sense to me. I get the impression the Mysql::Result#each_hash method is responsible. I tried with both Ruby and C implementation do the same. What should it be? (I posted this to the Ruby-on-Rails mailing list, but without replies) Stephan -- Posted via http://www.ruby-forum.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?hl=en -~----------~----~----~----~------~----~------~--~---
> When renaming columns using the SQL ''as'' construct with the mysql > adapter, the type is not always preserved.IIRC the mysql drivers (both C and pure-ruby) returns those (all?) values as strings. When AR knows the column it can typecast the values itself, but for piggybacked values like this, we can''t. This is an upstream bug and should probably be fixed there. -- Cheers Koz --~--~---------~--~----~------------~-------~--~----~ 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?hl=en -~----------~----~----~----~------~----~------~--~---
Michael Koziarski wrote:> IIRC the mysql drivers (both C and pure-ruby) returns those (all?) > values as strings. When AR knows the column it can typecast the > values itself, but for piggybacked values like this, we can''t. This > is an upstream bug and should probably be fixed there. >Ok, so it is not intended to be this way, and the SQL Server driver is doing the right thing. Thanks; I''ll try to find out from "upstream". Stephan -- Posted via http://www.ruby-forum.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?hl=en -~----------~----~----~----~------~----~------~--~---