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.
Calls superclass method
Sequel::MySQL::DatabaseMethods#server_version
# 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
Calls superclass method
Sequel::Database#database_specific_error_class
# 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
Calls superclass method
Sequel::MySQL::DatabaseMethods#schema_column_type
# File lib/sequel/adapters/trilogy.rb, line 85 def schema_column_type(db_type) db_type =~ /\Atinyint\(1\)/ ? :boolean : super end