From 7a51983efc50c8f9092785b1b586f8884dedc01a Mon Sep 17 00:00:00 2001
From: Bryan Helmkamp <bryan@brynary.com>
Date: Sun, 17 May 2009 16:02:10 -0400
Subject: initial implementation of cross-engine join

Conflicts:

	lib/arel/engines/memory/relations/array.rb
	lib/arel/engines/sql/primitives.rb
---
 lib/arel/algebra/relations/row.rb | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

(limited to 'lib/arel/algebra')

diff --git a/lib/arel/algebra/relations/row.rb b/lib/arel/algebra/relations/row.rb
index 3731dd9696..e8484944bd 100644
--- a/lib/arel/algebra/relations/row.rb
+++ b/lib/arel/algebra/relations/row.rb
@@ -4,12 +4,13 @@ module Arel
     deriving :==, :initialize
     
     def [](attribute)
-      tuple[relation.position_of(attribute)]
+      attribute.type_cast(tuple[relation.position_of(attribute)])
     end
     
     def slice(*attributes)
       Row.new(relation, attributes.inject([]) do |cheese, attribute|
-        cheese << self[attribute]
+        # FIXME TESTME method chaining
+        cheese << tuple[relation.relation.position_of(attribute)]
         cheese
       end)
     end
-- 
cgit v1.2.3