Changeset: 868919fa3005 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=868919fa3005
Modified Files:
        java/src/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java
Branch: Feb2013
Log Message:

Applied patch from bug 3356.
The patch looks good, applies cleanly, and the tests pass.


diffs (93 lines):

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
@@ -1708,23 +1708,26 @@ public class MonetDatabaseMetaData exten
                        "AS smallint) AS \"DATA_TYPE\", " +
                        "\"columns\".\"type\" AS \"TYPE_NAME\", " +
                        "\"columns\".\"type_digits\" AS \"COLUMN_SIZE\", " +
-                       "\"columns\".\"type_scale\" AS \"DECIMAL_DIGITS\", 0 AS 
\"BUFFER_LENGTH\", " +
+                       "0 AS \"BUFFER_LENGTH\", " +
+                       "\"columns\".\"type_scale\" AS \"DECIMAL_DIGITS\", " +
                        "10 AS \"NUM_PREC_RADIX\", " +
                        "cast(CASE \"null\" " +
                                "WHEN true THEN " + 
ResultSetMetaData.columnNullable + " " +
                                "WHEN false THEN " + 
ResultSetMetaData.columnNoNulls + " " +
-                       "END AS int) AS \"NULLABLE\", cast(null AS varchar(1)) 
AS \"REMARKS\", " +
-                       "\"columns\".\"default\" AS \"COLUMN_DEF\", 0 AS 
\"SQL_DATA_TYPE\", " +
+                       "END AS int) AS \"NULLABLE\", " +
+                       "cast(null AS varchar(1)) AS \"REMARKS\", " +
+                       "\"columns\".\"default\" AS \"COLUMN_DEF\", " +
+                       "0 AS \"SQL_DATA_TYPE\", " +
                        "0 AS \"SQL_DATETIME_SUB\", 0 AS \"CHAR_OCTET_LENGTH\", 
" +
                        "\"columns\".\"number\" + 1 AS \"ORDINAL_POSITION\", " +
+                       "CASE \"null\" " +
+                               "WHEN true THEN CAST ('YES' AS varchar(3)) " +
+                               "WHEN false THEN CAST ('NO' AS varchar(3)) " +
+                       "END AS \"IS_NULLABLE\", " +
                        "cast(null AS varchar(1)) AS \"SCOPE_CATALOG\", " +
                        "cast(null AS varchar(1)) AS \"SCOPE_SCHEMA\", " +
                        "cast(null AS varchar(1)) AS \"SCOPE_TABLE\", " +
-                       "cast(" + MonetDriver.getJavaType("other") + " AS 
smallint) AS \"SOURCE_DATA_TYPE\", " +
-                       "CASE \"null\" " +
-                               "WHEN true THEN CAST ('YES' AS varchar(3)) " +
-                               "WHEN false THEN CAST ('NO' AS varchar(3)) " +
-                       "END AS \"IS_NULLABLE\" " +
+                       "cast(" + MonetDriver.getJavaType("other") + " AS 
smallint) AS \"SOURCE_DATA_TYPE\" " +
                                "FROM \"sys\".\"columns\" AS \"columns\", " +
                                        "\"sys\".\"tables\" AS \"tables\", " +
                                        "\"sys\".\"schemas\" AS \"schemas\" " +
@@ -2102,7 +2105,7 @@ public class MonetDatabaseMetaData exten
                        "\"schemas\".\"name\" AS \"TABLE_SCHEM\", " +
                        "\"tables\".\"name\" AS \"TABLE_NAME\", " +
                        "\"objects\".\"name\" AS \"COLUMN_NAME\", " +
-                       "\"objects\".\"nr\" AS \"KEY_SEQ\", \"keys\".\"name\" 
AS \"PK_NAME\" " +
+                       "\"objects\".\"nr\" + 1 AS \"KEY_SEQ\", 
\"keys\".\"name\" AS \"PK_NAME\" " +
                "FROM \"sys\".\"keys\" AS \"keys\", " +
                        "\"sys\".\"objects\" AS \"objects\", " +
                        "\"sys\".\"tables\" AS \"tables\", " +
@@ -2124,16 +2127,20 @@ public class MonetDatabaseMetaData exten
                return getStmt().executeQuery(query);
        }
 
-       final static String keyQuery =
-               ", \"pkschema\".\"name\" AS \"PKTABLE_SCHEM\", " +
-               "\"pktable\".\"name\" AS \"PKTABLE_NAME\", 
\"pkkeycol\".\"name\" AS \"PKCOLUMN_NAME\", " +
+       final static String keyQuery = "SELECT 'DBSCHEMA_TOKEN' AS 
\"PKTABLE_CAT\", " +
+               "\"pkschema\".\"name\" AS \"PKTABLE_SCHEM\", " +
+               "\"pktable\".\"name\" AS \"PKTABLE_NAME\", " +
+               "\"pkkeycol\".\"name\" AS \"PKCOLUMN_NAME\", " +
+               "'DBSCHEMA_TOKEN'  AS \"FKTABLE_CAT\", " +
                "\"fkschema\".\"name\" AS \"FKTABLE_SCHEM\", " +
-               "\"fktable\".\"name\" AS \"FKTABLE_NAME\", 
\"fkkeycol\".\"name\" AS \"FKCOLUMN_NAME\", " +
-               "\"pkkeycol\".\"nr\" AS \"KEY_SEQ\", " +
+               "\"fktable\".\"name\" AS \"FKTABLE_NAME\", " +
+               "\"fkkeycol\".\"name\" AS \"FKCOLUMN_NAME\", " +
+               "\"pkkeycol\".\"nr\" + 1 AS \"KEY_SEQ\", " +
                DatabaseMetaData.importedKeyNoAction + " AS \"UPDATE_RULE\", " +
                "" + DatabaseMetaData.importedKeyNoAction + " AS 
\"DELETE_RULE\", " +
-               "\"fkkey\".\"name\" AS \"FK_NAME\", \"pkkey\".\"name\" AS 
\"PK_NAME\", " +
-               "" + DatabaseMetaData.importedKeyNotDeferrable + " AS 
\"DEFERRABILITY\" " +
+               "\"fkkey\".\"name\" AS \"FK_NAME\", " +
+               "\"pkkey\".\"name\" AS \"PK_NAME\", " +
+               DatabaseMetaData.importedKeyNotDeferrable + " AS 
\"DEFERRABILITY\" " +
                        "FROM \"sys\".\"keys\" AS \"fkkey\", \"sys\".\"keys\" 
AS \"pkkey\", \"sys\".\"objects\" AS \"fkkeycol\", " +
                        "\"sys\".\"objects\" AS \"pkkeycol\", 
\"sys\".\"tables\" AS \"fktable\", \"sys\".\"tables\" AS \"pktable\", " +
                        "\"sys\".\"schemas\" AS \"fkschema\", 
\"sys\".\"schemas\" AS \"pkschema\" " +
@@ -2145,7 +2152,7 @@ public class MonetDatabaseMetaData exten
 
        static String keyQuery(String cat) {
                // FIXME: cat should probably be single-quote-escaped
-               return "SELECT '" + cat + "' AS \"PKTABLE_CAT\", '" + cat + "' 
AS \"FKTABLE_CAT\"" + keyQuery;
+               return keyQuery.replaceAll("DBSCHEMA_TOKEN",cat);
        }
 
        /**
@@ -2539,7 +2546,7 @@ public class MonetDatabaseMetaData exten
                                "\"schemas\".\"name\" AS \"TABLE_SCHEM\", " +
                                "CASE WHEN \"keys\".\"name\" IS NULL THEN true 
ELSE false END AS \"NON_UNIQUE\", " +
                                "CASE \"idxs\".\"type\" WHEN 0 THEN " + 
DatabaseMetaData.tableIndexHashed + " ELSE " + DatabaseMetaData.tableIndexOther 
+ " END AS \"TYPE\", " +
-                               "\"objects\".\"nr\" AS \"ORDINAL_POSITION\", " +
+                               "\"objects\".\"nr\" + 1 AS 
\"ORDINAL_POSITION\", " +
                                "\"columns\".\"name\" as \"COLUMN_NAME\", " +
                                "cast(null AS varchar(1)) AS 
\"INDEX_QUALIFIER\", " +
                                "cast(null AS varchar(1)) AS \"ASC_OR_DESC\", " 
+
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to