Class: ActiveRecord::ConnectionAdapters::MySQL::ExplainPrettyPrinter
- Inherits:
-
Object
- Object
- ActiveRecord::ConnectionAdapters::MySQL::ExplainPrettyPrinter
- Defined in:
- lib/active_record/connection_adapters/mysql/explain_pretty_printer.rb
Overview
:nodoc:
Instance Method Summary collapse
-
#pp(result, elapsed) ⇒ Object
Pretty prints the result of an EXPLAIN in a way that resembles the output of the MySQL shell:.
Instance Method Details
#pp(result, elapsed) ⇒ Object
Pretty prints the result of an EXPLAIN in a way that resembles the output of the MySQL shell:
+----+-------------+-------+-------+---------------+---------+---------+-------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+---------+---------+-------+------+-------------+
| 1 | SIMPLE | users | const | PRIMARY | PRIMARY | 4 | const | 1 | |
| 1 | SIMPLE | posts | ALL | NULL | NULL | NULL | NULL | 1 | Using where |
+----+-------------+-------+-------+---------------+---------+---------+-------+------+-------------+
2 rows in set (0.00 sec)
This is an exercise in Ruby hyperrealism :).
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/active_record/connection_adapters/mysql/explain_pretty_printer.rb', line 19 def pp(result, elapsed) widths = compute_column_widths(result) separator = build_separator(widths) pp = [] pp << separator pp << build_cells(result.columns, widths) pp << separator result.rows.each do |row| pp << build_cells(row, widths) end pp << separator pp << (result.rows.length, elapsed) pp.join("\n") + "\n" end |