Module: Sequel::MySQL
- Defined in:
- lib/sequel/adapters/mysql.rb,
lib/sequel/adapters/shared/mysql.rb
Overview
Module for holding all MySQL-related classes and modules for Sequel.
Defined Under Namespace
Modules: DatabaseMethods, DatasetMethods Classes: Database, Dataset
Constant Summary collapse
- MYSQL_TYPES =
Mapping of type numbers to conversion procs
{}
- MYSQL_TYPE_PROCS =
Use only a single proc for each type to save on memory
{ [0, 246] => lambda{|v| BigDecimal.new(v)}, # decimal [1] => lambda{|v| ? 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)} # blob }
Class Attribute Summary collapse
-
.convert_invalid_date_time ⇒ Object
By default, Sequel raises an exception if in invalid date or time is used.
-
.convert_tinyint_to_bool ⇒ Object
Sequel converts the column type tinyint(1) to a boolean by default when using the native MySQL or Mysql2 adapter.
-
.default_charset ⇒ Object
Set the default charset used for CREATE TABLE.
-
.default_collate ⇒ Object
Set the default collation used for CREATE TABLE.
-
.default_engine ⇒ Object
Set the default engine used for CREATE TABLE.
Class Method Summary collapse
-
.convert_date_time(meth, v) ⇒ Object
If convert_invalid_date_time is nil, :nil, or :string and the conversion raises an InvalidValue exception, return v if :string and nil otherwise.
Class Attribute Details
.convert_invalid_date_time ⇒ Object
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.
38 39 40 |
# File 'lib/sequel/adapters/mysql.rb', line 38 def convert_invalid_date_time @convert_invalid_date_time end |
.convert_tinyint_to_bool ⇒ Object
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.
13 14 15 |
# File 'lib/sequel/adapters/shared/mysql.rb', line 13 def @convert_tinyint_to_bool end |
.default_charset ⇒ Object
Set the default charset used for CREATE TABLE. You can pass the :charset option to create_table to override this setting.
17 18 19 |
# File 'lib/sequel/adapters/shared/mysql.rb', line 17 def default_charset @default_charset end |
.default_collate ⇒ Object
Set the default collation used for CREATE TABLE. You can pass the :collate option to create_table to override this setting.
21 22 23 |
# File 'lib/sequel/adapters/shared/mysql.rb', line 21 def default_collate @default_collate end |
.default_engine ⇒ Object
Set the default engine used for CREATE TABLE. You can pass the :engine option to create_table to override this setting.
25 26 27 |
# File 'lib/sequel/adapters/shared/mysql.rb', line 25 def default_engine @default_engine end |
Class Method Details
.convert_date_time(meth, v) ⇒ Object
If convert_invalid_date_time is nil, :nil, or :string and the conversion raises an InvalidValue exception, return v if :string and nil otherwise.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/sequel/adapters/mysql.rb', line 44 def self.convert_date_time(meth, v) begin Sequel.send(meth, v) rescue InvalidValue case @convert_invalid_date_time when nil, :nil nil when :string v else raise end end end |