Skip to content

Commit

Permalink
Remove repeated logic causing duplication like COLLATE statements
Browse files Browse the repository at this point in the history
  • Loading branch information
rahul342 committed Dec 9, 2023
1 parent bdea16e commit 5f65312
Showing 1 changed file with 2 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,36 +7,13 @@ class SchemaCreation < MySQL::SchemaCreation # :nodoc:
private

def add_column_options!(sql, options)
# By default, TIMESTAMP columns are NOT NULL, cannot contain NULL values,
# and assigning NULL assigns the current timestamp. To permit a TIMESTAMP
# column to contain NULL, explicitly declare it with the NULL attribute.
# See https://dev.mysql.com/doc/refman/en/timestamp-initialization.html
if /\Atimestamp\b/.match?(options[:column].sql_type) && !options[:primary_key]
sql << " NULL" unless options[:null] == false || options_include_default?(options)
end

if options[:srid]
sql << " /*!80003 SRID #{options[:srid]} */"
end

if charset = options[:charset]
sql << " CHARACTER SET #{charset}"
end

if collation = options[:collation]
sql << " COLLATE #{collation}"
end

if as = options[:as]
sql << " AS (#{as})"
if options[:stored]
sql << (mariadb? ? " PERSISTENT" : " STORED")
end
end

add_sql_comment!(super, options[:comment])
super
end
end
end
end
end
end

0 comments on commit 5f65312

Please sign in to comment.