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