<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lib/adapter_helper/oracle_enhanced.rb</filename>
    </added>
    <added>
      <filename>lib/composite_primary_keys/connection_adapters/oracle_enhanced_adapter.rb</filename>
    </added>
    <added>
      <filename>test/connections/native_oracle_enhanced/connection.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,7 +1,7 @@
 require 'active_record'
 
 # UNTESTED - firebird sqlserver sqlserver_odbc db2 sybase openbase
-for adapter in %w( mysql sqlite oracle postgresql ibm_db ) 
+for adapter in %w( mysql sqlite oracle oracle_enhanced postgresql ibm_db ) 
   Rake::TestTask.new(&quot;test_#{adapter}&quot;) { |t|
     t.libs &lt;&lt; &quot;test&quot; &lt;&lt; &quot;test/connections/native_#{adapter}&quot;
     t.pattern = &quot;test/test_*.rb&quot;</diff>
      <filename>tasks/databases.rake</filename>
    </modified>
    <modified>
      <diff>@@ -27,4 +27,10 @@ drop sequence comments_seq;
 drop table hacks;
 drop table kitchen_sinks;
 drop table restaurants;
-drop table restaurants_suburbs;
\ No newline at end of file
+drop table restaurants_suburbs;
+drop table dorms;
+drop sequence dorms_seq;
+drop table rooms;
+drop table room_attributes;
+drop sequence room_attributes_seq;
+drop table room_attribute_assignments;
\ No newline at end of file</diff>
      <filename>test/fixtures/db_definitions/oracle.drop.sql</filename>
    </modified>
    <modified>
      <diff>@@ -157,4 +157,33 @@ create table restaurants_suburbs (
 	store_id number(11) not null,
 	city_id number(11) not null,
 	suburb_id number(11) not null
+);
+
+create table dorms (
+	id number(11) not null,
+	constraint dorms_pk primary key (id)
+);
+
+create sequence dorms_seq
+  start with 1000;
+
+create table rooms (
+	dorm_id number(11) not null,
+	room_id number(11) not null,
+	constraint rooms_pk primary key (dorm_id, room_id)
+);
+
+create table room_attributes (
+	id number(11) not null,
+	name varchar(50),
+	constraint room_attributes_pk primary key (id)
+);
+
+create sequence room_attributes_seq
+  start with 1000;
+
+create table room_attribute_assignments (
+	dorm_id number(11) not null,
+	room_id number(11) not null,
+	room_attribute_id number(11) not null
 );
\ No newline at end of file</diff>
      <filename>test/fixtures/db_definitions/oracle.sql</filename>
    </modified>
    <modified>
      <diff>@@ -1,84 +1,84 @@
-require 'abstract_unit'
-require 'fixtures/reference_type'
-require 'fixtures/reference_code'
-require 'fixtures/product'
-require 'fixtures/tariff'
-require 'fixtures/product_tariff'
-
-class TestAttributes &lt; Test::Unit::TestCase
-  fixtures :reference_types, :reference_codes, :products, :tariffs, :product_tariffs
-  
-  CLASSES = {
-    :single =&gt; {
-      :class =&gt; ReferenceType,
-      :primary_keys =&gt; :reference_type_id,
-    },
-    :dual   =&gt; { 
-      :class =&gt; ReferenceCode,
-      :primary_keys =&gt; [:reference_type_id, :reference_code],
-    },
-  }
-  
-  def setup
-    self.class.classes = CLASSES
-  end
-  
-  def test_brackets
-    testing_with do
-      @first.attributes.each_pair do |attr_name, value|
-        assert_equal value, @first[attr_name]
-      end
-    end
-  end
-    
-  def test_brackets_primary_key
-    testing_with do
-      assert_equal @first.id, @first[@primary_keys], &quot;[] failing for #{@klass}&quot;
-      assert_equal @first.id, @first[@first.class.primary_key]
-    end
-  end
-
-  def test_brackets_assignment
-    testing_with do
-      @first.attributes.each_pair do |attr_name, value|
-        @first[attr_name]= !value.nil? ? value * 2 : '1'
-        assert_equal !value.nil? ? value * 2 : '1', @first[attr_name]
-      end
-    end
-  end
-    
-  def test_brackets_foreign_key_assignment
-    @flat = Tariff.find(1, Date.today.to_s(:db))
-    @second_free = ProductTariff.find(2,2,Date.today.to_s(:db))
-    @second_free_fk = [:tariff_id, :tariff_start_date]
-    @second_free[key = @second_free_fk] = @flat.id
-      compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
-      assert_equal @flat.id, @second_free[key]
-    @second_free[key = @second_free_fk.to_composite_ids] = @flat.id
-      assert_equal @flat.id, @second_free[key]
-      compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
-    @second_free[key = @second_free_fk.to_composite_ids] = @flat.id.to_s
-      assert_equal @flat.id, @second_free[key]
-      compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
-    @second_free[key = @second_free_fk.to_composite_ids] = @flat.id.to_s
-      assert_equal @flat.id, @second_free[key]
-      compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
-    @second_free[key = @second_free_fk.to_composite_ids.to_s] = @flat.id
-      assert_equal @flat.id, @second_free[key]
-      compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
-    @second_free[key = @second_free_fk.to_composite_ids.to_s] = @flat.id.to_s
-      assert_equal @flat.id, @second_free[key]
-      compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
-  end
-private
-  def compare_indexes(obj_name1, indexes1, obj_name2, indexes2)
-    obj1, obj2 = eval &quot;[#{obj_name1}, #{obj_name2}]&quot;
-    indexes1.length.times do |key_index|
-      assert_equal obj1[indexes1[key_index].to_s], 
-                   obj2[indexes2[key_index].to_s],
-                   &quot;#{obj_name1}[#{indexes1[key_index]}]=#{obj1[indexes1[key_index].to_s].inspect} != &quot; +
-                   &quot;#{obj_name2}[#{indexes2[key_index]}]=#{obj2[indexes2[key_index].to_s].inspect}; &quot; +
-                   &quot;#{obj_name2} = #{obj2.inspect}&quot;
-    end
-  end
+require 'abstract_unit'
+require 'fixtures/reference_type'
+require 'fixtures/reference_code'
+require 'fixtures/product'
+require 'fixtures/tariff'
+require 'fixtures/product_tariff'
+
+class TestAttributes &lt; Test::Unit::TestCase
+  fixtures :reference_types, :reference_codes, :products, :tariffs, :product_tariffs
+  
+  CLASSES = {
+    :single =&gt; {
+      :class =&gt; ReferenceType,
+      :primary_keys =&gt; :reference_type_id,
+    },
+    :dual   =&gt; { 
+      :class =&gt; ReferenceCode,
+      :primary_keys =&gt; [:reference_type_id, :reference_code],
+    },
+  }
+  
+  def setup
+    self.class.classes = CLASSES
+  end
+  
+  def test_brackets
+    testing_with do
+      @first.attributes.each_pair do |attr_name, value|
+        assert_equal value, @first[attr_name]
+      end
+    end
+  end
+    
+  def test_brackets_primary_key
+    testing_with do
+      assert_equal @first.id, @first[@primary_keys], &quot;[] failing for #{@klass}&quot;
+      assert_equal @first.id, @first[@first.class.primary_key]
+    end
+  end
+
+  def test_brackets_assignment
+    testing_with do
+      @first.attributes.each_pair do |attr_name, value|
+        @first[attr_name]= !value.nil? ? value * 2 : '1'
+        assert_equal !value.nil? ? value * 2 : '1', @first[attr_name]
+      end
+    end
+  end
+    
+  def test_brackets_foreign_key_assignment
+    @flat = Tariff.find(1, Date.today.to_s(:db))
+    @second_free = ProductTariff.find(2,2,Date.today.to_s(:db))
+    @second_free_fk = [:tariff_id, :tariff_start_date]
+    @second_free[key = @second_free_fk] = @flat.id
+      compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
+      assert_equal @flat.id, @second_free[key]
+    @second_free[key = @second_free_fk.to_composite_ids] = @flat.id
+      assert_equal @flat.id, @second_free[key]
+      compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
+    @second_free[key = @second_free_fk.to_composite_ids] = @flat.id.to_s
+      assert_equal @flat.id, @second_free[key]
+      compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
+    @second_free[key = @second_free_fk.to_composite_ids] = @flat.id.to_s
+      assert_equal @flat.id, @second_free[key]
+      compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
+    @second_free[key = @second_free_fk.to_composite_ids.to_s] = @flat.id
+      assert_equal @flat.id, @second_free[key]
+      compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
+    @second_free[key = @second_free_fk.to_composite_ids.to_s] = @flat.id.to_s
+      assert_equal @flat.id, @second_free[key]
+      compare_indexes('@flat', @flat.class.primary_key, '@second_free', @second_free_fk)
+  end
+private
+  def compare_indexes(obj_name1, indexes1, obj_name2, indexes2)
+    obj1, obj2 = eval &quot;[#{obj_name1}, #{obj_name2}]&quot;
+    indexes1.length.times do |key_index|
+      assert_equal obj1[indexes1[key_index].to_s], 
+                   obj2[indexes2[key_index].to_s],
+                   &quot;#{obj_name1}[#{indexes1[key_index]}]=#{obj1[indexes1[key_index].to_s].inspect} != &quot; +
+                   &quot;#{obj_name2}[#{indexes2[key_index]}]=#{obj2[indexes2[key_index].to_s].inspect}; &quot; +
+                   &quot;#{obj_name2} = #{obj2.inspect}&quot;
+    end
+  end
 end
\ No newline at end of file</diff>
      <filename>test/test_attributes.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>78729877bd77d0aef699a7b6373694990470d10d</id>
    </parent>
  </parents>
  <author>
    <name>Raimonds Simanovskis</name>
    <email>raymond@mbrs.local</email>
  </author>
  <url>http://github.com/drnic/composite_primary_keys/commit/4f33e8a2762a2a18fb72043c255382db0d1542dd</url>
  <id>4f33e8a2762a2a18fb72043c255382db0d1542dd</id>
  <committed-date>2008-07-14T14:11:27-07:00</committed-date>
  <authored-date>2008-07-14T14:11:27-07:00</authored-date>
  <message>created test for oracle_enhanced adapter</message>
  <tree>97045336ff4d6a7a6bab558d53f4718b1a1f13ea</tree>
  <committer>
    <name>Raimonds Simanovskis</name>
    <email>raymond@mbrs.local</email>
  </committer>
</commit>
