Changeset: 34ce4afa0244 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=34ce4afa0244 Modified Files: java/ChangeLog.Jun2016 java/src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java java/tests/Test_Dobjects.java sql/jdbc/tests/Tests/Test_Dobjects.stable.out Branch: Jun2016 Log Message:
Fixed problem in DatabaseMetaData.getUDTs() when it was called with types parameter filled. It used to throw SQException with message: SELECT: identifier 'DATA_TYPE' unknown. Now it returns the UDTs which match the provided array of data types. diffs (74 lines): diff --git a/java/ChangeLog.Jun2016 b/java/ChangeLog.Jun2016 --- a/java/ChangeLog.Jun2016 +++ b/java/ChangeLog.Jun2016 @@ -1,6 +1,12 @@ # ChangeLog file for java # This file is updated with Maddlog +* Thu May 26 2016 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> +- Fixed problem in DatabaseMetaData.getUDTs() when it was called with + types parameter filled. It used to throw SQException with message: + SELECT: identifier 'DATA_TYPE' unknown. Now it returns the UDTs which + match the provided array of data types. + * Thu May 19 2016 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> - Implemented MonetDatabaseMetaData.supportsConvert() and MonetDatabaseMetaData.supportsConvert(int fromType, int toType) methods. diff --git a/java/src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java b/java/src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java --- a/java/src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java +++ b/java/src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java @@ -3239,6 +3239,9 @@ public class MonetDatabaseMetaData exten ) throws SQLException { StringBuilder query = new StringBuilder(990); + if (types != null && types.length > 0) { + query.append("SELECT * FROM ("); + } query.append("SELECT cast(null as char(1)) AS \"TYPE_CAT\", " + "\"schemas\".\"name\" AS \"TYPE_SCHEM\", " + "\"types\".\"sqlname\" AS \"TYPE_NAME\", " + @@ -3269,7 +3272,7 @@ public class MonetDatabaseMetaData exten query.append(" AND \"types\".\"sqlname\" ").append(composeMatchPart(typeNamePattern)); } if (types != null && types.length > 0) { - query.append(" AND \"DATA_TYPE\" IN ("); + query.append(") AS getUDTs WHERE \"DATA_TYPE\" IN ("); for (int i = 0; i < types.length; i++) { if (i > 0) { query.append(", "); 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 @@ -38,6 +38,9 @@ public class Test_Dobjects { // dumpResultSet(dbmd.getSchemas()); // this produces different outputs on different platforms due to dependency on SAMTOOLS and NETCDF. so exclude it dumpResultSet(dbmd.getSchemas(null, "sys")); dumpResultSet(dbmd.getTables(null, "sys", null, null)); + dumpResultSet(dbmd.getUDTs(null, "sys", null, null)); + int[] UDTtypes = { Types.STRUCT, Types.DISTINCT }; + dumpResultSet(dbmd.getUDTs(null, "sys", null, UDTtypes)); } catch (SQLException e) { System.out.println("FAILED :( "+ e.getMessage()); System.out.println("ABORTING TEST!!!"); 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 @@ -107,8 +107,16 @@ as select "schema","table",max(count) as from sys.storagemodel() group by "schema","table"; null null null null null null sys tracelog SYSTEM VIEW create view sys.tracelog as select * from sys.tracelog(); null null null null null null sys users SYSTEM VIEW SELECT u."name" AS "name", ui."fullname", ui."default_schema" FROM db_users() AS u LEFT JOIN "sys"."db_user_info" AS ui ON u."name" = ui."name" ; null null null null null +Resultset with 7 columns +TYPE_CAT TYPE_SCHEM TYPE_NAME CLASS_NAME DATA_TYPE REMARKS BASE_TYPE +null sys inet nl.cwi.monetdb.jdbc.types.INET 2000 inet null +null sys json java.lang.String 2000 json null +null sys url nl.cwi.monetdb.jdbc.types.URL 2000 url null +null sys uuid java.lang.String 2000 uuid null +Resultset with 7 columns +TYPE_CAT TYPE_SCHEM TYPE_NAME CLASS_NAME DATA_TYPE REMARKS BASE_TYPE -# 18:29:26 > -# 18:29:26 > "Done." -# 18:29:26 > +# 17:19:03 > +# 17:19:03 > "Done." +# 17:19:03 > _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list