Title: [470] trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc_derby.rb: Ok, last commit; kinda stupid.
Revision
470
Author
olabini
Date
2007-04-22 14:04:47 -0400 (Sun, 22 Apr 2007)

Log Message

Ok, last commit; kinda stupid. This one, sort of better...

Modified Paths


Diff

Modified: trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc_derby.rb (469 => 470)


--- trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc_derby.rb	2007-04-22 16:45:10 UTC (rev 469)
+++ trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc_derby.rb	2007-04-22 18:04:47 UTC (rev 470)
@@ -59,6 +59,10 @@
     ensure
       @limit = nil
     end
+    
+    def classes_for_table_name(table)
+      ActiveRecord::Base.send(:subclasses).select {|klass| klass.table_name == table}
+    end
 
     # Set the sequence to the max value of the table's column.
     def reset_sequence!(table, column, sequence = nil)
@@ -67,8 +71,12 @@
     end
       
     def reset_pk_sequence!(table, pk = nil, sequence = nil)
-      pk = :id unless pk
-      reset_sequence!(table, pk, sequence)
+      klasses = classes_for_table_name(table)
+      klass   = klasses.nil? ? nil : klasses.first
+      pk      = klass.primary_key unless klass.nil?
+      if pk && klass.columns_hash[pk].type == :integer
+        reset_sequence!(klass.table_name, pk)
+      end
     end
     
     def execute(sql, name = nil)
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel

Reply via email to