class ActiveRecord::ConnectionAdapters::Column

An abstract definition of a column in a table.

def ==(other)

def ==(other)
  other.is_a?(Column) &&
    name == other.name &&
    default == other.default &&
    sql_type_metadata == other.sql_type_metadata &&
    null == other.null &&
    default_function == other.default_function &&
    collation == other.collation &&
    comment == other.comment
end

def bigint?

def bigint?
  /\Abigint\b/.match?(sql_type)
end

def deduplicated

def deduplicated
  @name = -name
  @sql_type_metadata = sql_type_metadata.deduplicate if sql_type_metadata
  @default = -default if default
  @default_function = -default_function if default_function
  @collation = -collation if collation
  @comment = -comment if comment
  super
end

def encode_with(coder)

def encode_with(coder)
  coder["name"] = @name
  coder["sql_type_metadata"] = @sql_type_metadata
  coder["null"] = @null
  coder["default"] = @default
  coder["default_function"] = @default_function
  coder["collation"] = @collation
  coder["comment"] = @comment
end

def has_default?

def has_default?
  !default.nil? || default_function
end

def hash

def hash
  Column.hash ^
    name.hash ^
    name.encoding.hash ^
    default.hash ^
    sql_type_metadata.hash ^
    null.hash ^
    default_function.hash ^
    collation.hash ^
    comment.hash
end

def human_name

Column.new('sales_stage', ...).human_name # => 'Sales stage'
===== Examples

Returns the human name of the column name.
def human_name
  Base.human_attribute_name(@name)
end

def init_with(coder)

def init_with(coder)
  @name = coder["name"]
  @sql_type_metadata = coder["sql_type_metadata"]
  @null = coder["null"]
  @default = coder["default"]
  @default_function = coder["default_function"]
  @collation = coder["collation"]
  @comment = coder["comment"]
end

def initialize(name, default, sql_type_metadata = nil, null = true, default_function = nil, collation: nil, comment: nil, **)

+null+ determines if this column allows +NULL+ values.
+sql_type_metadata+ is various information about the type of the column
+default+ is the type-casted default value, such as +new+ in sales_stage varchar(20) default 'new'.
+name+ is the column's name, such as supplier_id in supplier_id bigint.

Instantiates a new column in the table.
def initialize(name, default, sql_type_metadata = nil, null = true, default_function = nil, collation: nil, comment: nil, **)
  @name = name.freeze
  @sql_type_metadata = sql_type_metadata
  @null = null
  @default = default
  @default_function = default_function
  @collation = collation
  @comment = comment
end

def virtual?

def virtual?
  false
end