Module: ActiveRecord::ConnectionAdapters::MySQL::DatabaseStatements
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Included In:
| |
Defined in: | activerecord/lib/active_record/connection_adapters/mysql/database_statements.rb |
Instance Method Summary
Instance Method Details
#build_explain_clause(options = [])
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/mysql/database_statements.rb', line 36
def build_explain_clause( = []) return "EXPLAIN" if .empty? explain_clause = "EXPLAIN #{ .join(" ").upcase}" if analyze_without_explain? && explain_clause.include?("ANALYZE") explain_clause.sub("EXPLAIN ", "") else explain_clause end end
#explain(arel, binds = [], options = [])
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/mysql/database_statements.rb', line 27
def explain(arel, binds = [], = []) sql = build_explain_clause( ) + " " + to_sql(arel, binds) start = Process.clock_gettime(Process::CLOCK_MONOTONIC) result = internal_exec_query(sql, "EXPLAIN", binds) elapsed = Process.clock_gettime(Process::CLOCK_MONOTONIC) - start MySQL::ExplainPrettyPrinter.new.pp(result, elapsed) end
#high_precision_current_timestamp
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/mysql/database_statements.rb', line 23
def HIGH_PRECISION_CURRENT_TIMESTAMP end