Changeset: 88bb87122485 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=88bb87122485 Added Files: java/tests/BugDatabaseMetaData_Bug_3356.java sql/jdbc/tests/Tests/BugDatabaseMetaData_Bug_3356.SQL.bat sql/jdbc/tests/Tests/BugDatabaseMetaData_Bug_3356.SQL.sh sql/jdbc/tests/Tests/BugDatabaseMetaData_Bug_3356.stable.err sql/jdbc/tests/Tests/BugDatabaseMetaData_Bug_3356.stable.out Modified Files: java/ChangeLog.Feb2013 java/Makefile.ag java/build.properties java/pom.xml java/release.txt java/src/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java java/tests/Makefile.ag java/tests/build.xml sql/jdbc/tests/Tests/All Branch: default Log Message:
Merge with Feb2013 branch. diffs (truncated from 332 to 300 lines): diff --git a/java/ChangeLog.Feb2013 b/java/ChangeLog.Feb2013 --- a/java/ChangeLog.Feb2013 +++ b/java/ChangeLog.Feb2013 @@ -1,3 +1,7 @@ # ChangeLog file for java # This file is updated with Maddlog +* Mon Oct 7 2013 Sjoerd Mullender <sjo...@acm.org> +- Rearranged order of returned columns of certain metadata functions to + comply with the JDBC documentation. See bug 3356. + diff --git a/java/Makefile.ag b/java/Makefile.ag --- a/java/Makefile.ag +++ b/java/Makefile.ag @@ -27,7 +27,7 @@ JAVA_HOME = @JAVA_HOME@ ant_distjdbc = { COND = HAVE_JAVAJDBC DIR = datadir/monetdb/lib - FILES = monetdb-mcl-1.9.jar monetdb-jdbc-2.9.jar jdbcclient.jar + FILES = monetdb-mcl-1.9.jar monetdb-jdbc-2.10.jar jdbcclient.jar } ant_distmerocontrol = { diff --git a/java/build.properties b/java/build.properties --- a/java/build.properties +++ b/java/build.properties @@ -19,7 +19,7 @@ MCL_MINOR=9 # major release number JDBC_MAJOR=2 # minor release number -JDBC_MINOR=9 +JDBC_MINOR=10 # an additional identifying string JDBC_VER_SUFFIX=Liberica # the default port to connect on, if no port given when using SQL diff --git a/java/pom.xml b/java/pom.xml --- a/java/pom.xml +++ b/java/pom.xml @@ -6,7 +6,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>monetdb</groupId> <artifactId>monetdb-jdbc</artifactId> - <version>2.9</version> + <version>2.10</version> <name>monetdb-jdbc</name> <description>MonetDB JDBC driver</description> <repositories> diff --git a/java/release.txt b/java/release.txt --- a/java/release.txt +++ b/java/release.txt @@ -1,8 +1,8 @@ RELEASE NOTES -MonetDB JDBC driver version 2.9 (Liberica/MCL-1.9) +MonetDB JDBC driver version 2.10 (Liberica/MCL-1.9) Fabian Groffen <fab...@monetdb.org> -Release date: 2013-05-23 +Release date: 2013-10-07 This JDBC driver is designed for use with MonetDB, a main-memory 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,16 +1708,13 @@ public class MonetDatabaseMetaData exten "AS smallint) AS \"DATA_TYPE\", " + "\"columns\".\"type\" AS \"TYPE_NAME\", " + "\"columns\".\"type_digits\" AS \"COLUMN_SIZE\", " + - "0 AS \"BUFFER_LENGTH\", " + - "\"columns\".\"type_scale\" AS \"DECIMAL_DIGITS\", " + + "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\" " + @@ -2105,7 +2102,7 @@ public class MonetDatabaseMetaData exten "\"schemas\".\"name\" AS \"TABLE_SCHEM\", " + "\"tables\".\"name\" AS \"TABLE_NAME\", " + "\"objects\".\"name\" AS \"COLUMN_NAME\", " + - "\"objects\".\"nr\" + 1 AS \"KEY_SEQ\", \"keys\".\"name\" AS \"PK_NAME\" " + + "\"objects\".\"nr\" AS \"KEY_SEQ\", \"keys\".\"name\" AS \"PK_NAME\" " + "FROM \"sys\".\"keys\" AS \"keys\", " + "\"sys\".\"objects\" AS \"objects\", " + "\"sys\".\"tables\" AS \"tables\", " + @@ -2127,20 +2124,17 @@ public class MonetDatabaseMetaData exten return getStmt().executeQuery(query); } - 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\" + 1 AS \"KEY_SEQ\", " + + final static String keyQuery1 = + "' AS \"PKTABLE_CAT\", \"pkschema\".\"name\" AS \"PKTABLE_SCHEM\", " + + "\"pktable\".\"name\" AS \"PKTABLE_NAME\", \"pkkeycol\".\"name\" AS \"PKCOLUMN_NAME\", '"; + final static String keyQuery2 = + "' AS \"FKTABLE_CAT\", \"fkschema\".\"name\" AS \"FKTABLE_SCHEM\", " + + "\"fktable\".\"name\" AS \"FKTABLE_NAME\", \"fkkeycol\".\"name\" AS \"FKCOLUMN_NAME\", " + + "\"pkkeycol\".\"nr\" 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\" " + @@ -2152,7 +2146,7 @@ public class MonetDatabaseMetaData exten static String keyQuery(String cat) { // FIXME: cat should probably be single-quote-escaped - return keyQuery.replaceAll("DBSCHEMA_TOKEN",cat); + return "SELECT '" + cat + keyQuery1 + cat + keyQuery2; } /** @@ -2546,7 +2540,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\" + 1 AS \"ORDINAL_POSITION\", " + + "\"objects\".\"nr\" 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\", " + diff --git a/java/tests/BugDatabaseMetaData_Bug_3356.java b/java/tests/BugDatabaseMetaData_Bug_3356.java new file mode 100644 --- /dev/null +++ b/java/tests/BugDatabaseMetaData_Bug_3356.java @@ -0,0 +1,40 @@ +/* + * The contents of this file are subject to the MonetDB Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.monetdb.org/Legal/MonetDBLicense + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + * License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is the MonetDB Database System. + * + * The Initial Developer of the Original Code is CWI. + * Portions created by CWI are Copyright (C) 1997-July 2008 CWI. + * Copyright August 2008-2013 MonetDB B.V. + * All Rights Reserved. + */ + +import java.sql.*; + +public class BugDatabaseMetaData_Bug_3356 { + public static void main(String[] args) throws Exception { + Class.forName("nl.cwi.monetdb.jdbc.MonetDriver"); + Connection con = DriverManager.getConnection(args[0]); + DatabaseMetaData dbmd = con.getMetaData(); + ResultSet rs = dbmd.getColumns("mTests_sql_jdbc_tests", "sys", "_tables", "id"); + rs.next(); + String tableName1 = rs.getString("TABLE_NAME"); + String tableName2 = rs.getString(3); + String isNullable1 = rs.getString("IS_NULLABLE"); + String isNullable2 = rs.getString(18); + System.out.println(tableName1); + System.out.println(tableName2); + System.out.println(isNullable1); + System.out.println(isNullable2); + rs.close(); + con.close(); + } +} diff --git a/java/tests/Makefile.ag b/java/tests/Makefile.ag --- a/java/tests/Makefile.ag +++ b/java/tests/Makefile.ag @@ -35,6 +35,7 @@ EXTRA_DIST = \ Test_Rtimedate.java \ Test_Sbatching.java \ BugConcurrent_clients_SF_1504657.java \ + BugDatabaseMetaData_Bug_3356.java \ build.xml build.properties ant_jar_jdbctests = { diff --git a/java/tests/build.xml b/java/tests/build.xml --- a/java/tests/build.xml +++ b/java/tests/build.xml @@ -132,6 +132,7 @@ All Rights Reserved. <antcall target="Test_Smoreresults" /> <antcall target="BugConcurrent_clients_SF_1504657" /> <antcall target="BugConcurrent_sequences" /> + <antcall target="BugDatabaseMetaData_Bug_3356" /> </target> <target name="test_class" depends="compile,jdbc"> @@ -322,4 +323,10 @@ All Rights Reserved. </antcall> </target> + <target name="BugDatabaseMetaData_Bug_3356"> + <antcall target="test_class"> + <param name="test.class" value="BugDatabaseMetaData_Bug_3356" /> + </antcall> + </target> + </project> diff --git a/sql/jdbc/tests/Tests/All b/sql/jdbc/tests/Tests/All --- a/sql/jdbc/tests/Tests/All +++ b/sql/jdbc/tests/Tests/All @@ -24,3 +24,4 @@ HAVE_JDBCTESTS?Test_Sbatching HAVE_JDBCCLIENT_JAR?Test_JdbcClient HAVE_JDBCTESTS?BugConcurrent_clients_SF_1504657 HAVE_JDBCTESTS?BugConcurrent_sequences +HAVE_JDBCTESTS?BugDatabaseMetaData_Bug_3356 diff --git a/sql/jdbc/tests/Tests/BugDatabaseMetaData_Bug_3356.SQL.bat b/sql/jdbc/tests/Tests/BugDatabaseMetaData_Bug_3356.SQL.bat new file mode 100755 --- /dev/null +++ b/sql/jdbc/tests/Tests/BugDatabaseMetaData_Bug_3356.SQL.bat @@ -0,0 +1,1 @@ +@call "%TSTSRCDIR%\Test.SQL.bat" %* diff --git a/sql/jdbc/tests/Tests/BugDatabaseMetaData_Bug_3356.SQL.sh b/sql/jdbc/tests/Tests/BugDatabaseMetaData_Bug_3356.SQL.sh new file mode 100755 --- /dev/null +++ b/sql/jdbc/tests/Tests/BugDatabaseMetaData_Bug_3356.SQL.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +$TSTSRCDIR/Test.SQL.sh $* diff --git a/sql/jdbc/tests/Tests/BugDatabaseMetaData_Bug_3356.stable.err b/sql/jdbc/tests/Tests/BugDatabaseMetaData_Bug_3356.stable.err new file mode 100644 --- /dev/null +++ b/sql/jdbc/tests/Tests/BugDatabaseMetaData_Bug_3356.stable.err @@ -0,0 +1,40 @@ +stderr of test 'BugDatabaseMetaData_Bug_3356` in directory 'sql/jdbc/tests` itself: + + +# 17:27:28 > +# 17:27:28 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=34631" "--set" "mapi_usock=/var/tmp/mtest-23634/.s.monetdb.34631" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/ufs/sjoerd/Monet-stable/var/MonetDB/mTests_sql_jdbc_tests" "--set" "mal_listing=0" +# 17:27:28 > + +# builtin opt gdk_dbpath = /ufs/sjoerd/Monet-stable/var/monetdb5/dbfarm/demo +# builtin opt gdk_debug = 0 +# builtin opt gdk_vmtrim = yes +# builtin opt monet_prompt = > +# builtin opt monet_daemon = no +# builtin opt mapi_port = 50000 +# builtin opt mapi_open = false +# builtin opt mapi_autosense = false +# builtin opt sql_optimizer = default_pipe +# builtin opt sql_debug = 0 +# cmdline opt gdk_nr_threads = 0 +# cmdline opt mapi_open = true +# cmdline opt mapi_port = 34631 +# cmdline opt mapi_usock = /var/tmp/mtest-23634/.s.monetdb.34631 +# cmdline opt monet_prompt = +# cmdline opt mal_listing = 2 +# cmdline opt gdk_dbpath = /ufs/sjoerd/Monet-stable/var/MonetDB/mTests_sql_jdbc_tests +# cmdline opt mal_listing = 0 + +# 17:27:28 > +# 17:27:28 > "./BugDatabaseMetaData_Bug_3356.SQL.sh" "BugDatabaseMetaData_Bug_3356" +# 17:27:28 > + + +# 17:27:28 > +# 17:27:28 > java BugDatabaseMetaData_Bug_3356 "jdbc:monetdb://madrid:34631/mTests_sql_jdbc_tests?user=monetdb&password=monetdb" +# 17:27:28 > + + +# 17:27:28 > +# 17:27:28 > "Done." +# 17:27:28 > + diff --git a/sql/jdbc/tests/Tests/BugDatabaseMetaData_Bug_3356.stable.out b/sql/jdbc/tests/Tests/BugDatabaseMetaData_Bug_3356.stable.out new file mode 100644 --- /dev/null +++ b/sql/jdbc/tests/Tests/BugDatabaseMetaData_Bug_3356.stable.out @@ -0,0 +1,41 @@ +stdout of test 'BugDatabaseMetaData_Bug_3356` in directory 'sql/jdbc/tests` itself: + + +# 17:27:28 > +# 17:27:28 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=34631" "--set" "mapi_usock=/var/tmp/mtest-23634/.s.monetdb.34631" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/ufs/sjoerd/Monet-stable/var/MonetDB/mTests_sql_jdbc_tests" "--set" "mal_listing=0" +# 17:27:28 > + +# MonetDB 5 server v11.15.16 (hg id: 4e1be37a5d65+) +# This is an unreleased version _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list