| 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