Module: Motor::Queries::PostgresqlExecQuery
- Defined in:
- lib/motor/queries/postgresql_exec_query.rb
Class Method Summary collapse
Class Method Details
.call(conn, statement) ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/motor/queries/postgresql_exec_query.rb', line 8 def call(conn, statement) if Rails.version.to_f >= 8.0 result = conn.send(:internal_execute, *statement) process_result(conn, result) else conn.send(:execute_and_clear, *statement) do |result| process_result(conn, result) end end end |
.process_result(conn, result) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/motor/queries/postgresql_exec_query.rb', line 19 def process_result(conn, result) types = {} fields = result.fields fields.each_with_index do |fname, i| ftype = result.ftype i fmod = result.fmod i types[fname] = conn.send(:get_oid_type, ftype, fmod, fname) end if conn.respond_to?(:build_result, true) conn.send(:build_result, columns: fields, rows: result.values, column_types: types) else ActiveRecord::Result.new(fields, result.values, types) end end |