diff options
-rw-r--r-- | lib/arel/algebra/relations/operations/take.rb | 11 | ||||
-rw-r--r-- | spec/support/model.rb | 9 |
2 files changed, 7 insertions, 13 deletions
diff --git a/lib/arel/algebra/relations/operations/take.rb b/lib/arel/algebra/relations/operations/take.rb index 421051124c..299c29ab72 100644 --- a/lib/arel/algebra/relations/operations/take.rb +++ b/lib/arel/algebra/relations/operations/take.rb @@ -7,17 +7,6 @@ module Arel @taken = taken end - def engine - engine = relation.engine - - # Temporary check of whether or not the engine supports where. - if engine.respond_to?(:supports) && !engine.supports(:limiting) - Memory::Engine.new - else - engine - end - end - def externalizable? true end diff --git a/spec/support/model.rb b/spec/support/model.rb index d5be35cbba..969af83cc6 100644 --- a/spec/support/model.rb +++ b/spec/support/model.rb @@ -1,6 +1,6 @@ module Arel module Testing - class Engine + class Engine < Arel::Memory::Engine attr_reader :rows def initialize @@ -12,7 +12,12 @@ module Arel end def read(relation) - @rows.dup.map { |r| Row.new(relation, r) } + case relation + when Arel::Take + relation.eval + else + @rows.dup.map { |r| Row.new(relation, r) } + end end def create(insert) |