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, 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| @zero_date_time_behavior_convert_to_null ? trap_bad_date_time(v) : Sequel.string_to_date(v)},                # date
  [7, 12] => lambda{|v| @zero_date_time_behavior_convert_to_null ? trap_bad_date_time(v) : Sequel.string_to_datetime(v)},          # datetime
  [11]  => lambda{|v| @zero_date_time_behavior_convert_to_null ? trap_bad_date_time(v) : Sequel.string_to_time(v)},                # time
  [249, 250, 251, 252]  => lambda{|v| Sequel::SQL::Blob.new(v)} # blob
}

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.default_charsetObject

Set the default options used for CREATE TABLE



11
12
13
# File 'lib/sequel/adapters/shared/mysql.rb', line 11

def default_charset
  @default_charset
end

.default_collateObject

Set the default options used for CREATE TABLE



11
12
13
# File 'lib/sequel/adapters/shared/mysql.rb', line 11

def default_collate
  @default_collate
end

.default_engineObject

Set the default options used for CREATE TABLE



11
12
13
# File 'lib/sequel/adapters/shared/mysql.rb', line 11

def default_engine
  @default_engine
end

.zero_date_time_behavior_convert_to_nullObject

Similar to the JDBC parameter zeroDateTimeBehavior=convertToNull, handles dates 0000-00-00 and times like 00:00:00 and converts to null



29
30
31
# File 'lib/sequel/adapters/mysql.rb', line 29

def zero_date_time_behavior_convert_to_null
  @zero_date_time_behavior_convert_to_null
end

Class Method Details

.trap_bad_date_time(v) ⇒ Object



31
32
33
34
35
36
37
38
# File 'lib/sequel/adapters/mysql.rb', line 31

def trap_bad_date_time(v)
  result = nil
  begin
    result = Sequel.string_to_date(v)
  rescue Sequel::Error::InvalidValue
  end
  result
end