Methods

Files

Class/Module Index [+]

Quicksearch

ActiveRecord::ConnectionAdapters::SchemaStatements

Public Instance Methods

type_to_sql(type, limit = nil, precision = nil, scale = nil) click to toggle source

Convert the speficied column type to a SQL string.

# File lib/arjdbc/jdbc/compatibility.rb, line 8
def type_to_sql(type, limit = nil, precision = nil, scale = nil)
  if native = native_database_types[type]
    column_type_sql = (native.is_a?(Hash) ? native[:name] : native).dup

    if type == :decimal # ignore limit, use precision and scale
      scale ||= native[:scale]

      if precision ||= native[:precision]
        if scale
          column_type_sql << "(#{precision},#{scale})"
        else
          column_type_sql << "(#{precision})"
        end
      elsif scale
        raise ArgumentError, "Error adding decimal column: precision cannot be empty if scale if specified"
      end

    elsif limit ||= native.is_a?(Hash) && native[:limit]
      column_type_sql << "(#{limit})"
    end

    column_type_sql
  else
    type
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.