Sha256: 25dda6d6e72b274705c29c5c471df0fdce3936ff8fd16877496e7129e4019fbc
Contents?: true
Size: 1.18 KB
Versions: 9
Compression:
Stored size: 1.18 KB
Contents
module ActiveRecord module ConnectionAdapters module MySQL class Column < ConnectionAdapters::Column # :nodoc: delegate :strict, :extra, to: :sql_type_metadata, allow_nil: true def initialize(*) super assert_valid_default extract_default end def has_default? return false if blob_or_text_column? # MySQL forbids defaults on blob and text columns super end def blob_or_text_column? /\A(?:tiny|medium|long)?blob\b/ === sql_type || type == :text end def unsigned? /\bunsigned\z/ === sql_type end def case_sensitive? collation && collation !~ /_ci\z/ end def auto_increment? extra == 'auto_increment' end private def extract_default if blob_or_text_column? @default = null || strict ? nil : '' end end def assert_valid_default if blob_or_text_column? && default.present? raise ArgumentError, "#{type} columns cannot have a default value: #{default.inspect}" end end end end end end
Version data entries
9 entries across 9 versions & 2 rubygems