# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 58
      def type_cast(value)
        return nil if value.nil?
        case type
          when :string                then value
          when :text                  then value
          when :integer               then value.to_i rescue value ? 1 : 0
          when :float                 then value.to_f # returns self if it's already a Float
          when :decimal               then self.class.value_to_decimal(value)
          when :datetime, :timestamp  then value.class == Time ? value : self.class.string_to_time(value)
          when :time                  then value.class == Time ? value : self.class.string_to_dummy_time(value)
          when :date                  then value.class == Date ? value : self.class.string_to_date(value)
          when :binary                then value
          when :boolean               then self.class.value_to_boolean(value)
          else value
        end
      end