aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/engines
diff options
context:
space:
mode:
Diffstat (limited to 'lib/arel/engines')
-rw-r--r--lib/arel/engines/memory/relations/operations.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/arel/engines/memory/relations/operations.rb b/lib/arel/engines/memory/relations/operations.rb
index 8e03aca7b1..e35fbe3234 100644
--- a/lib/arel/engines/memory/relations/operations.rb
+++ b/lib/arel/engines/memory/relations/operations.rb
@@ -37,4 +37,25 @@ module Arel
raise NotImplementedError
end
end
+
+ class Alias < Compound
+ def eval
+ unoperated_rows
+ end
+ end
+
+ class Join < Relation
+ def eval
+ result = []
+ relation1.eval.each do |row1|
+ relation2.eval.each do |row2|
+ combined_row = row1.combine(row2, self)
+ if predicates.all? { |p| p.eval(combined_row) }
+ result << combined_row
+ end
+ end
+ end
+ result
+ end
+ end
end \ No newline at end of file