Changeset: 452feb684692 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=452feb684692
Modified Files:
        java/ChangeLog.Dec2011
        java/src/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java
        java/tests/Test_Dobjects.java
        sql/jdbc/tests/Tests/Test_Dobjects.stable.out
Branch: Dec2011
Log Message:

jdbc: fix getSchemas() method when schema != null

We emitted incorrect SQL (or at least our server doesn't handle it well)
for the case where we did a selection on schema.  Don't use the alias,
but the real name instead, such that this query doesn't result in an SQL
error.


diffs (50 lines):

diff --git a/java/ChangeLog.Dec2011 b/java/ChangeLog.Dec2011
--- a/java/ChangeLog.Dec2011
+++ b/java/ChangeLog.Dec2011
@@ -1,6 +1,10 @@
 # ChangeLog file for java
 # This file is updated with Maddlog
 
+* Mon Feb 20 2012 Fabian Groffen <[email protected]>
+- Fixed bug in DatabaseMetaData.getSchemas() method that caused an SQL
+  error when called with catalog and schema argument.
+
 * Tue Feb 14 2012 Fabian Groffen <[email protected]>
 - Resolved a bug where JDBC and Control connections could terminate
   abruptly with 'Connection closed' messages
diff --git a/java/src/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java 
b/java/src/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java
--- a/java/src/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java
+++ b/java/src/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java
@@ -1551,7 +1551,7 @@ public class MonetDatabaseMetaData exten
                if (catalog != null)
                        query += "AND LOWER('" + cat + "') LIKE '" + 
escapeQuotes(catalog).toLowerCase() + "' ";
                if (schemaPattern != null)
-                       query += "AND LOWER(\"TABLE_SCHEM\") LIKE '" + 
escapeQuotes(schemaPattern).toLowerCase() + "' ";
+                       query += "AND LOWER(\"name\") LIKE '" + 
escapeQuotes(schemaPattern).toLowerCase() + "' ";
                query += "ORDER BY \"TABLE_SCHEM\"";
 
                return(getStmt().executeQuery(query));
diff --git a/java/tests/Test_Dobjects.java b/java/tests/Test_Dobjects.java
--- a/java/tests/Test_Dobjects.java
+++ b/java/tests/Test_Dobjects.java
@@ -47,6 +47,7 @@ public class Test_Dobjects {
                        // inspect the catalog by use of dbmd functions
                        dumpResultSet(dbmd.getCatalogs());
                        dumpResultSet(dbmd.getSchemas());
+                       dumpResultSet(dbmd.getSchemas(null, "sys"));
                        dumpResultSet(dbmd.getTables(null, null, null, null));
                } catch (SQLException e) {
                        System.out.println("FAILED :( "+ e.getMessage());
diff --git a/sql/jdbc/tests/Tests/Test_Dobjects.stable.out 
b/sql/jdbc/tests/Tests/Test_Dobjects.stable.out
--- a/sql/jdbc/tests/Tests/Test_Dobjects.stable.out
+++ b/sql/jdbc/tests/Tests/Test_Dobjects.stable.out
@@ -56,6 +56,9 @@ Resultset with 3 columns
 TABLE_SCHEM    TABLE_CATALOG   TABLE_CAT       
 sys    mTests_jdbc_tests       mTests_jdbc_tests       
 tmp    mTests_jdbc_tests       mTests_jdbc_tests       
+Resultset with 3 columns
+TABLE_SCHEM    TABLE_CATALOG   TABLE_CAT       
+sys    mTests_jdbc_tests       mTests_jdbc_tests       
 Resultset with 10 columns
 TABLE_CAT      TABLE_SCHEM     TABLE_NAME      TABLE_TYPE      REMARKS 
TYPE_CAT        TYPE_SCHEM      TYPE_NAME       SELF_REFERENCING_COL_NAME       
REF_GENERATION  
 mTests_jdbc_tests      sys     _columns        SYSTEM TABLE    null    null    
null    null    rowid   SYSTEM  
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to