class Sequel::Trilogy::Database

Constants

LOCAL_TIME_QUERY_FLAGS
QUERY_FLAGS

Public Instance Methods

connect(server) click to toggle source

Connect to the database. See Trilogy documentation for options.

# File lib/sequel/adapters/trilogy.rb, line 16
def connect(server)
  opts = server_opts(server)
  opts[:username] ||= opts.delete(:user)
  opts[:found_rows] = true
  conn = ::Trilogy.new(opts)
  mysql_connection_setting_sqls.each{|sql| log_connection_yield(sql, conn){conn.query(sql)}}
  conn
end
disconnect_connection(c) click to toggle source
# File lib/sequel/adapters/trilogy.rb, line 25
def disconnect_connection(c)
  c.discard!
rescue ::Trilogy::Error
  nil
end
execute(sql, opts) { |r| ... } click to toggle source

Execute the given SQL on the given connection and yield the result.

# File lib/sequel/adapters/trilogy.rb, line 32
def execute(sql, opts)
  r = synchronize(opts[:server]) do |conn|
    log_connection_yield((log_sql = opts[:log_sql]) ? sql + log_sql : sql, conn) do
      conn.query_with_flags(sql, timezone.nil? || timezone == :local ? LOCAL_TIME_QUERY_FLAGS : QUERY_FLAGS)
    end
  end
  yield r
rescue ::Trilogy::Error => e
  raise_error(e)
end
execute_dui(sql, opts=OPTS) click to toggle source
# File lib/sequel/adapters/trilogy.rb, line 43
def execute_dui(sql, opts=OPTS)
  execute(sql, opts, &:affected_rows)
end
execute_insert(sql, opts=OPTS) click to toggle source
# File lib/sequel/adapters/trilogy.rb, line 47
def execute_insert(sql, opts=OPTS)
  execute(sql, opts, &:last_insert_id)
end
freeze() click to toggle source
Calls superclass method Sequel::MySQL::DatabaseMethods#freeze
# File lib/sequel/adapters/trilogy.rb, line 51
def freeze
  server_version
  super
end
server_version(_server=nil) click to toggle source

Return the version of the MySQL server to which we are connecting.

# File lib/sequel/adapters/trilogy.rb, line 57
def server_version(_server=nil)
  @server_version ||= super()
end

Private Instance Methods

connection_execute_method() click to toggle source
# File lib/sequel/adapters/trilogy.rb, line 72
def connection_execute_method
  :query
end
database_error_classes() click to toggle source
# File lib/sequel/adapters/trilogy.rb, line 76
def database_error_classes
  [::Trilogy::Error]
end
database_specific_error_class(exception, opts) click to toggle source
# File lib/sequel/adapters/trilogy.rb, line 63
def database_specific_error_class(exception, opts)
  case exception.message
  when /1205 - Lock wait timeout exceeded; try restarting transaction\z/
    DatabaseLockTimeout
  else
    super
  end
end
dataset_class_default() click to toggle source
# File lib/sequel/adapters/trilogy.rb, line 80
def dataset_class_default
  Dataset
end
schema_column_type(db_type) click to toggle source

Convert tinyint(1) type to boolean if convert_tinyint_to_bool is true

# File lib/sequel/adapters/trilogy.rb, line 85
def schema_column_type(db_type)
  db_type =~ /\Atinyint\(1\)/ ? :boolean : super
end