class ActiveRecord::ConnectionAdapters::PostgreSQL::Column

:nodoc:

def ==(other)

def ==(other)
  other.is_a?(Column) &&
    super &&
    serial? == other.serial?
end

def array

def array
  sql_type_metadata.sql_type.end_with?("[]")
end

def encode_with(coder)

def encode_with(coder)
  coder["serial"] = @serial
  coder["generated"] = @generated
  super
end

def enum?

def enum?
  type == :enum
end

def has_default?

def has_default?
  super && !virtual?
end

def hash

def hash
  Column.hash ^
    super.hash ^
    serial?.hash
end

def init_with(coder)

def init_with(coder)
  @serial = coder["serial"]
  @generated = coder["generated"]
  super
end

def initialize(*, serial: nil, generated: nil, **)

def initialize(*, serial: nil, generated: nil, **)
  super
  @serial = serial
  @generated = generated
end

def serial?

def serial?
  @serial
end

def sql_type

def sql_type
  super.delete_suffix("[]")
end

def virtual?

def virtual?
  # We assume every generated column is virtual, no matter the concrete type
  @generated.present?
end