Class: Arel::Middleware::PGResult

Inherits:
Object
  • Object
show all
Defined in:
lib/arel/middleware/result.rb

Direct Known Subclasses

EmptyPGResult

Class Method Summary collapse

Class Method Details

.cast_to(result) ⇒ Object



112
113
114
115
116
117
118
119
120
# File 'lib/arel/middleware/result.rb', line 112

def cast_to(result)
  return result.original_data unless result.modified?

  pg_columns = result_to_columns(result)
  conn = ActiveRecord::Base.connection.raw_connection
  new_result = PgResultInit.create(conn, result.original_data, pg_columns, result.rows)
  result.original_data.clear
  new_result
end

.column_objects(pg_result) ⇒ Object



94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/arel/middleware/result.rb', line 94

def column_objects(pg_result)
  pg_result.fields.each_with_index.map do |field, index|
    Column.new(
      field,
      tableid: pg_result.ftable(index),
      columnid: pg_result.ftablecol(index),
      format: pg_result.fformat(index),
      typid: pg_result.ftype(index),
      typlen: pg_result.fsize(index),
      atttypmod: pg_result.fmod(index),
    )
  end
end

.rows(data) ⇒ Object



108
109
110
# File 'lib/arel/middleware/result.rb', line 108

def rows(data)
  data.values
end