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

Reply via email to