Class: Flydata::Parser::Mysql::FlydataMysqlClient
- Inherits:
-
Mysql2::Client
- Object
- Mysql2::Client
- Flydata::Parser::Mysql::FlydataMysqlClient
- Defined in:
- lib/flydata/parser/mysql/dump_parser.rb
Overview
Custom mysql client that sets config params (eg:-read_timeout) uniformly for all mysql access. Also, gives access to the last query that was executed using the client which can be helpful when handling exceptions
Instance Attribute Summary collapse
-
#last_query ⇒ Object
Returns the value of attribute last_query.
Instance Method Summary collapse
-
#initialize(db_opts) ⇒ FlydataMysqlClient
constructor
A new instance of FlydataMysqlClient.
- #query(sql, options = {}) ⇒ Object
Constructor Details
#initialize(db_opts) ⇒ FlydataMysqlClient
Returns a new instance of FlydataMysqlClient.
218 219 220 221 |
# File 'lib/flydata/parser/mysql/dump_parser.rb', line 218 def initialize(db_opts) #TODO : Pass timeout in as a setting from the data entry super(db_opts.merge(read_timeout: 3600)) end |
Instance Attribute Details
#last_query ⇒ Object
Returns the value of attribute last_query.
216 217 218 |
# File 'lib/flydata/parser/mysql/dump_parser.rb', line 216 def last_query @last_query end |
Instance Method Details
#query(sql, options = {}) ⇒ Object
223 224 225 226 227 228 229 230 231 232 233 |
# File 'lib/flydata/parser/mysql/dump_parser.rb', line 223 def query(sql, = {}) @last_query = sql begin super(sql, ) rescue Mysql2::Error => e if /^Timeout waiting for a response/ === e.to_s raise "The below query timed out when running. Please check long running processes and locks in your database.\n#{last_query}" end raise e end end |