Class: Nquery::DataSources::MysqlAdapter
- Inherits:
-
PostgresqlAdapter
- Object
- Adapter
- PostgresqlAdapter
- Nquery::DataSources::MysqlAdapter
- Defined in:
- lib/nquery/data_sources/mysql_adapter.rb
Instance Method Summary collapse
Methods inherited from PostgresqlAdapter
Methods inherited from Adapter
#columns, for, #initialize, #tables
Constructor Details
This class inherits a constructor from Nquery::DataSources::Adapter
Instance Method Details
#execute_readonly(statement, timeout: 15, row_limit: 10_000) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/nquery/data_sources/mysql_adapter.rb', line 6 def execute_readonly(statement, timeout: 15, row_limit: 10_000) with_connection do |conn| rows = [] columns = [] duration = Benchmark.realtime do conn.transaction do conn.execute("SET SESSION TRANSACTION READ ONLY") result = conn.exec_query("#{statement.strip.sub(/;\s*\z/, '')} LIMIT #{row_limit.to_i}") columns = result.columns rows = result.rows raise ActiveRecord::Rollback end end { columns: columns, rows: rows, row_count: rows.size, duration_ms: (duration * 1000).round } end end |