aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/arel/algebra/relations/operations/take.rb11
-rw-r--r--spec/support/model.rb9
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)