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 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.
39 40 41 |
# File 'lib/sequel/adapters/mysql.rb', line 39 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 adapter. You can turn off the conversion by setting this to false.
44 45 46 |
# File 'lib/sequel/adapters/mysql.rb', line 44 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.
9 10 11 |
# File 'lib/sequel/adapters/shared/mysql.rb', line 9 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.
13 14 15 |
# File 'lib/sequel/adapters/shared/mysql.rb', line 13 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.
17 18 19 |
# File 'lib/sequel/adapters/shared/mysql.rb', line 17 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.
50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/sequel/adapters/mysql.rb', line 50 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 |