Class: ArJdbc::MySQL::ExplainSupport::ExplainPrettyPrinter
- Inherits:
-
Object
- Object
- ArJdbc::MySQL::ExplainSupport::ExplainPrettyPrinter
- Defined in:
- lib/arjdbc/mysql/explain_support.rb
Overview
:nodoc:
Instance Method Summary collapse
-
#pp(result, elapsed) ⇒ Object
Pretty prints the result of a EXPLAIN in a way that resembles the output of the MySQL shell:.
Instance Method Details
#pp(result, elapsed) ⇒ Object
Pretty prints the result of a 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 :).
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/arjdbc/mysql/explain_support.rb', line 32 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 |