Module | Sequel::MySQL |
In: |
lib/sequel/adapters/mysql.rb
lib/sequel/adapters/shared/mysql.rb |
MYSQL_TYPES | = | {} | Mapping of type numbers to conversion procs | |
MYSQL_TYPE_PROCS | = | { [0, 246] => lambda{|v| BigDecimal.new(v)}, # decimal [1] => lambda{|v| convert_tinyint_to_bool ? v.to_i != 0 : v.to_i}, # tinyint [2, 3, 8, 9, 13, 247, 248] => lambda{|v| v.to_i}, # integer [4, 5] => lambda{|v| v.to_f}, # float [10, 14] => lambda{|v| convert_date_time(:string_to_date, v)}, # date [7, 12] => lambda{|v| convert_date_time(:database_to_application_timestamp, v)}, # datetime [11] => lambda{|v| convert_date_time(:string_to_time, v)}, # time [249, 250, 251, 252] => lambda{|v| Sequel::SQL::Blob.new(v)} | Use only a single proc for each type to save on memory |
convert_invalid_date_time | [RW] | By default, Sequel raises an exception if in invalid date or time is used. However, if this is set to nil or :nil, the adapter treats dates like 0000-00-00 and times like 838:00:00 as nil values. If set to :string, it returns the strings as is. |
convert_tinyint_to_bool | [RW] | Sequel converts the column type tinyint(1) to a boolean by default when using the native MySQL or Mysql2 adapter. You can turn off the conversion by setting this to false. This setting is ignored when connecting to MySQL via the do or jdbc adapters, both of which automatically do the conversion. |
default_charset | [RW] | Set the default charset used for CREATE TABLE. You can pass the :charset option to create_table to override this setting. |
default_collate | [RW] | Set the default collation used for CREATE TABLE. You can pass the :collate option to create_table to override this setting. |
default_engine | [RW] | Set the default engine used for CREATE TABLE. You can pass the :engine option to create_table to override this setting. |
If convert_invalid_date_time is nil, :nil, or :string and the conversion raises an InvalidValue exception, return v if :string and nil otherwise.
# File lib/sequel/adapters/mysql.rb, line 44 44: def self.convert_date_time(meth, v) 45: begin 46: Sequel.send(meth, v) 47: rescue InvalidValue 48: case @convert_invalid_date_time 49: when nil, :nil 50: nil 51: when :string 52: v 53: else 54: raise 55: end 56: end 57: end