Class: ActiveRecord::ConnectionAdapters::HbaseAdapter::ExplainPrettyPrinter

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record/connection_adapters/hbase_adapter.rb

Overview

:nodoc:

Instance Method Summary collapse

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



153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'lib/active_record/connection_adapters/hbase_adapter.rb', line 153

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