Title: [552] trunk/activerecord-jdbc: No NPE's in database_name.
Revision
552
Author
olabini
Date
2007-05-07 13:15:03 -0400 (Mon, 07 May 2007)

Log Message

No NPE's in database_name. Also include a working version of it for Derby

Modified Paths

Diff

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


--- trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc_derby.rb	2007-05-07 15:57:04 UTC (rev 551)
+++ trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc_derby.rb	2007-05-07 17:15:03 UTC (rev 552)
@@ -184,6 +184,12 @@
     def primary_keys(table_name)
       @connection.primary_keys table_name.to_s.upcase
     end
+
+    def recreate_database(db_name)
+      tables.each do |t|
+        drop_table t
+      end
+    end    
     
     # For migrations, exclude the primary key index as recommended
     # by the HSQLDB docs.  This is not a great test for primary key

Modified: trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc_oracle.rb (551 => 552)


--- trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc_oracle.rb	2007-05-07 15:57:04 UTC (rev 551)
+++ trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc_oracle.rb	2007-05-07 17:15:03 UTC (rev 552)
@@ -111,31 +111,6 @@
       select_one("select sys_context('userenv','db_name') db from dual")["db"]
     end
 
-    def indexes(table_name, name = nil) #:nodoc:
-      result = select_all(<<-SQL, name)
-      SELECT lower(i.index_name) as index_name, i.uniqueness, lower(c.column_name) as column_name
-      FROM user_indexes i, user_ind_columns c
-      WHERE i.table_name = '#{table_name.to_s.upcase}'
-      AND c.index_name = i.index_name
-      AND i.index_name NOT IN (SELECT index_name FROM user_constraints WHERE constraint_type = 'P')
-      ORDER BY i.index_name, c.column_position
-      SQL
-
-      current_index = nil
-      indexes = []
-
-      result.each do |row|
-        if current_index != row['index_name']
-          indexes << IndexDefinition.new(table_name, row['index_name'], row['uniqueness'] == "UNIQUE", [])
-          current_index = row['index_name']
-        end
-
-        indexes.last.columns << row['column_name']
-      end
-
-      indexes
-    end
-
     def remove_index(table_name, options = {}) #:nodoc:
       execute "DROP INDEX #{index_name(table_name, options)}"
     end

Modified: trunk/activerecord-jdbc/src/java/JdbcAdapterInternalService.java (551 => 552)


--- trunk/activerecord-jdbc/src/java/JdbcAdapterInternalService.java	2007-05-07 15:57:04 UTC (rev 551)
+++ trunk/activerecord-jdbc/src/java/JdbcAdapterInternalService.java	2007-05-07 17:15:03 UTC (rev 552)
@@ -170,7 +170,14 @@
     }
 
     public static IRubyObject database_name(IRubyObject recv) throws SQLException {
-        return recv.getRuntime().newString(((Connection)recv.dataGetStruct()).getCatalog());
+        String name = ((Connection)recv.dataGetStruct()).getCatalog();
+        if(null == name) {
+            name = ((Connection)recv.dataGetStruct()).getMetaData().getUserName();
+            if(null == name) {
+                name = "db1";
+            }
+        }
+        return recv.getRuntime().newString(name);
     }
 
     public static IRubyObject begin(IRubyObject recv) throws SQLException {
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel

Reply via email to