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 17 def connect(server) 18 opts = server_opts(server) 19 opts[:username] ||= opts.delete(:user) 20 opts[:found_rows] = true 21 conn = ::Trilogy.new(opts) 22 mysql_connection_setting_sqls.each{|sql| log_connection_yield(sql, conn){conn.query(sql)}} 23 conn 24 end
disconnect_connection(c)
click to toggle source
# File lib/sequel/adapters/trilogy.rb 26 def disconnect_connection(c) 27 c.discard! 28 rescue ::Trilogy::Error 29 nil 30 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 33 def execute(sql, opts) 34 r = synchronize(opts[:server]) do |conn| 35 log_connection_yield((log_sql = opts[:log_sql]) ? sql + log_sql : sql, conn) do 36 conn.query_with_flags(sql, timezone.nil? || timezone == :local ? LOCAL_TIME_QUERY_FLAGS : QUERY_FLAGS) 37 end 38 end 39 yield r 40 rescue ::Trilogy::Error => e 41 raise_error(e) 42 end
execute_dui(sql, opts=OPTS)
click to toggle source
# File lib/sequel/adapters/trilogy.rb 44 def execute_dui(sql, opts=OPTS) 45 execute(sql, opts, &:affected_rows) 46 end
execute_insert(sql, opts=OPTS)
click to toggle source
# File lib/sequel/adapters/trilogy.rb 48 def execute_insert(sql, opts=OPTS) 49 execute(sql, opts, &:last_insert_id) 50 end
freeze()
click to toggle source
Calls superclass method
Sequel::MySQL::DatabaseMethods#freeze
# File lib/sequel/adapters/trilogy.rb 52 def freeze 53 server_version 54 super 55 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 58 def server_version(_server=nil) 59 @server_version ||= super() 60 end
Private Instance Methods
connection_execute_method()
click to toggle source
# File lib/sequel/adapters/trilogy.rb 73 def connection_execute_method 74 :query 75 end
database_error_classes()
click to toggle source
# File lib/sequel/adapters/trilogy.rb 77 def database_error_classes 78 [::Trilogy::Error] 79 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 64 def database_specific_error_class(exception, opts) 65 case exception.message 66 when /1205 - Lock wait timeout exceeded; try restarting transaction\z/ 67 DatabaseLockTimeout 68 else 69 super 70 end 71 end
dataset_class_default()
click to toggle source
# File lib/sequel/adapters/trilogy.rb 81 def dataset_class_default 82 Dataset 83 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 86 def schema_column_type(db_type) 87 db_type =~ /\Atinyint\(1\)/ ? :boolean : super 88 end