Title: [667] trunk/activerecord-jdbc: Fix problem when postgres returns columns from tables not in the public schema
- Revision
- 667
- Author
- olabini
- Date
- 2007-07-19 05:56:54 -0400 (Thu, 19 Jul 2007)
Log Message
Fix problem when postgres returns columns from tables not in the public schema
Modified Paths
Diff
Modified: trunk/activerecord-jdbc/lib/active_record/connection_adapters/jdbc_adapter.rb (666 => 667)
--- trunk/activerecord-jdbc/lib/active_record/connection_adapters/jdbc_adapter.rb 2007-07-16 21:50:24 UTC (rev 666)
+++ trunk/activerecord-jdbc/lib/active_record/connection_adapters/jdbc_adapter.rb 2007-07-19 09:56:54 UTC (rev 667)
@@ -307,6 +307,8 @@
# one index, one row per column in the index), so a simple block-based
# filter like that used for tables doesn't really work here. Callers
# should filter the return from this method instead.
+ #
+ # TODO: fix to use reconnect correctly
def indexes(table_name, name = nil)
metadata = @connection.getMetaData
unless String === table_name
Modified: trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc_postgre.rb (666 => 667)
--- trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc_postgre.rb 2007-07-16 21:50:24 UTC (rev 666)
+++ trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc_postgre.rb 2007-07-19 09:56:54 UTC (rev 667)
@@ -148,7 +148,7 @@
end
def columns(table_name, name=nil)
- super(table_name, name, "public")
+ @connection.columns_internal(table_name, name, "public")
end
def last_insert_id(table, sequence_name)
Modified: trunk/activerecord-jdbc/src/java/JdbcAdapterInternalService.java (666 => 667)
--- trunk/activerecord-jdbc/src/java/JdbcAdapterInternalService.java 2007-07-16 21:50:24 UTC (rev 666)
+++ trunk/activerecord-jdbc/src/java/JdbcAdapterInternalService.java 2007-07-19 09:56:54 UTC (rev 667)
@@ -89,7 +89,8 @@
cJdbcConn.defineFastMethod("commit",cf.getFastSingletonMethod("commit"));
cJdbcConn.defineFastMethod("rollback",cf.getFastSingletonMethod("rollback"));
cJdbcConn.defineFastMethod("database_name",cf.getFastSingletonMethod("database_name"));
- cJdbcConn.defineFastMethod("columns",cf.getFastOptSingletonMethod("columns"));
+ cJdbcConn.defineFastMethod("columns",cf.getFastOptSingletonMethod("columns_internal"));
+ cJdbcConn.defineFastMethod("columns_internal",cf.getFastOptSingletonMethod("columns_internal"));
cJdbcConn.defineFastMethod("tables",cf.getFastOptSingletonMethod("tables"));
cJdbcConn.defineFastMethod("insert_bind",cf.getFastOptSingletonMethod("insert_bind"));
@@ -222,7 +223,7 @@
}
}
- public static IRubyObject columns(IRubyObject recv, IRubyObject[] args) throws SQLException, IOException {
+ public static IRubyObject columns_internal(IRubyObject recv, IRubyObject[] args) throws SQLException, IOException {
String table_name = args[0].convertToString().getUnicodeValue();
while(true) {
Connection c = (Connection)recv.dataGetStruct();
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel