Parent

Methods

Files

Class/Module Index [+]

Quicksearch

ArJdbc::MySQL::ExplainSupport::ExplainPrettyPrinter

@private

Public Instance Methods

pp(result, elapsed) click to toggle source

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 :).

# File lib/arjdbc/mysql/explain_support.rb, line 30
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 << build_footer(result.rows.length, elapsed)

  pp.join("\n") + "\n"
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.