aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/arel/session.rb7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/arel/session.rb b/lib/arel/session.rb
index 6d115e7078..e6da825b97 100644
--- a/lib/arel/session.rb
+++ b/lib/arel/session.rb
@@ -33,9 +33,10 @@ module Arel
end
def read(select)
- (@read ||= Hash.new do |hash, x|
- hash[x] = x.call
- end)[select]
+ @read ||= {}
+ key = select.object_id
+ return @read[key] if @read.key? key
+ @read[key] = select.call
end
def update(update)