Module: Arel::Middleware::PostgreSQLAdapter

Defined in:
lib/arel/middleware/postgresql_adapter.rb

Instance Method Summary collapse

Instance Method Details

#exec_cache(sql, name, binds) ⇒ Object



51
52
53
54
55
56
57
58
59
# File 'lib/arel/middleware/postgresql_adapter.rb', line 51

def exec_cache(sql, name, binds)
  Arel::Middleware.current_chain.execute(sql, binds) do |processed_sql, processed_binds|
    Arel::Middleware::Result.create(
      data: super(processed_sql, name, processed_binds),
      from: Arel::Middleware::PGResult,
      to: Arel::Middleware::PGResult,
    )
  end
end

#exec_no_cache(sql, name, binds) ⇒ Object



41
42
43
44
45
46
47
48
49
# File 'lib/arel/middleware/postgresql_adapter.rb', line 41

def exec_no_cache(sql, name, binds)
  Arel::Middleware.current_chain.execute(sql, binds) do |processed_sql, processed_binds|
    Arel::Middleware::Result.create(
      data: super(processed_sql, name, processed_binds),
      from: Arel::Middleware::PGResult,
      to: Arel::Middleware::PGResult,
    )
  end
end

#execute(sql, name = nil) ⇒ Object

rubocop:disable Lint/DuplicateMethods



17
18
19
# File 'lib/arel/middleware/postgresql_adapter.rb', line 17

def execute(sql, name = nil)
  super(sql, name)
end

#initialize(*args) ⇒ Object



4
5
6
7
8
# File 'lib/arel/middleware/postgresql_adapter.rb', line 4

def initialize(*args)
  Arel.middleware.none do
    super(*args)
  end
end

#parent_executeObject



14
15
16
# File 'lib/arel/middleware/postgresql_adapter.rb', line 14

def execute(sql, name = nil)
  super(sql, name)
end

#query(sql, name = nil) ⇒ Object

rubocop:enable Lint/DuplicateMethods



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/arel/middleware/postgresql_adapter.rb', line 28

def query(sql, name = nil)
  Arel::Middleware.current_chain.execute(sql) do |processed_sql|
    # NOTE: we're not calling `super` here, but execute.
    # The `query` super does not return the columns, like the other methods.
    # As we want the result objects to be the same, we call execute instead.
    Arel::Middleware::Result.create(
      data: parent_execute(processed_sql, name),
      from: Arel::Middleware::PGResult,
      to: Arel::Middleware::ArrayResult,
    )
  end
end