# File activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb, line 39 def execute(sql, name = nil) sql = transform_query(sql) check_if_write_query(sql) materialize_transactions mark_transaction_written_if_write(sql) log(sql, name) do ActiveSupport::Dependencies.interlock.permit_concurrent_loads do @connection.async_exec(sql) end end end
Executes an SQL statement, returning a PG::Result object on success or raising a PG::Error exception otherwise. Note: the PG::Result object is manually memory managed; if you don't need it specifically, you may want consider the exec_query
wrapper.
# File activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb, line 7 def explain(arel, binds = []) sql = "EXPLAIN #{to_sql(arel, binds)}" PostgreSQL::ExplainPrettyPrinter.new.pp(exec_query(sql, "EXPLAIN", binds)) end
# File activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb, line 132 def high_precision_current_timestamp HIGH_PRECISION_CURRENT_TIMESTAMP end
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.