Method: ActiveRecord::ConnectionAdapters::PostgreSQL::DatabaseStatements#execute

Defined in:
lib/active_record/connection_adapters/postgresql/database_statements.rb

#execute(sql, name = nil) ⇒ Object

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.



83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/active_record/connection_adapters/postgresql/database_statements.rb', line 83

def execute(sql, name = nil)
  if preventing_writes? && write_query?(sql)
    raise ActiveRecord::ReadOnlyError, "Write query attempted while in readonly mode: #{sql}"
  end

  materialize_transactions

  log(sql, name) do
    ActiveSupport::Dependencies.interlock.permit_concurrent_loads do
      @connection.async_exec(sql)
    end
  end
end