Class: KnjDB_mysql::Columns
- Defined in:
- lib/knj/knjdb/drivers/mysql/knjdb_mysql_columns.rb
Overview
This class handels various MySQL-column-specific operations.
Defined Under Namespace
Classes: Column
Instance Method Summary collapse
-
#data_sql(data) ⇒ Object
Returns the SQL for this column.
-
#initialize(args) ⇒ Columns
constructor
Constructor.
Constructor Details
#initialize(args) ⇒ Columns
Constructor. Should not be called manually.
4 5 6 |
# File 'lib/knj/knjdb/drivers/mysql/knjdb_mysql_columns.rb', line 4 def initialize(args) @args = args end |
Instance Method Details
#data_sql(data) ⇒ Object
Returns the SQL for this column.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/knj/knjdb/drivers/mysql/knjdb_mysql_columns.rb', line 9 def data_sql(data) raise "No type given." if !data["type"] data["maxlength"] = 255 if data["type"] == "varchar" and !data.key?("maxlength") sql = "`#{data["name"]}` #{data["type"]}" sql << "(#{data["maxlength"]})" if data["maxlength"] sql << " PRIMARY KEY" if data["primarykey"] sql << " AUTO_INCREMENT" if data["autoincr"] sql << " NOT NULL" if !data["null"] if data.key?("default_func") sql << " DEFAULT #{data["default_func"]}" elsif data.key?("default") and data["default"] != false sql << " DEFAULT '#{@args[:db].escape(data["default"])}'" end sql << " COMMENT '#{@args[:db].escape(data["comment"])}'" if data.key?("comment") sql << " AFTER `#{@args[:db].esc_col(data["after"])}`" if data["after"] and !data["first"] sql << " FIRST" if data["first"] return sql end |