Changeset: 89c285fc0a49 for monetdb-java URL: https://dev.monetdb.org/hg/monetdb-java?cmd=changeset;node=89c285fc0a49 Modified Files: .hgtags ChangeLog ChangeLog-Archive Makefile build.properties build.xml pom.xml release.txt src/main/java/nl/cwi/monetdb/client/JdbcClient.java src/main/java/nl/cwi/monetdb/jdbc/MonetConnection.java src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in src/main/java/nl/cwi/monetdb/jdbc/MonetPreparedStatement.java src/main/java/nl/cwi/monetdb/jdbc/MonetResultSet.java src/main/java/nl/cwi/monetdb/jdbc/MonetStatement.java src/main/java/nl/cwi/monetdb/mcl/responses/ResultSetResponse.java src/main/java/nl/cwi/monetdb/merovingian/Control.java src/main/java/nl/cwi/monetdb/merovingian/MerovingianException.java src/main/java/nl/cwi/monetdb/merovingian/SabaothDB.java src/main/java/nl/cwi/monetdb/util/Extract.java src/main/java/nl/cwi/monetdb/util/SQLExporter.java src/main/java/nl/cwi/monetdb/util/SQLRestore.java tests/Test_Cmanycon.java tests/Test_PSmanycon.java tests/build.xml Branch: embedded Log Message:
Merged with default diffs (truncated from 3875 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -1,3 +1,4 @@ 80de05f07508fec938845b4a6e05f600bf0b48c0 v2.24 c43c293f3d5841517cbe0d858108c4da5fb1ec0c v2.26 a6a2f4ee2d42d7e192f9d8d37f79ea99178d7f2c v2.25 +fe8170e2b549c22ceb2d96301022b9304f62424d v2.27 diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,37 @@ # ChangeLog file for monetdb-java # This file is updated with Maddlog +* Mon Oct 23 2017 Sjoerd Mullender <sjo...@acm.org> +- Compiled and released new jars: monetdb-jdbc-2.27.jar, monetdb-mcl-1.16.jar + and updated jdbcclient.jar + +* Thu Oct 5 2017 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> +- Corrected method Connection.prepareCall(). It used to return null. + Now it throws an SQLFeatureNotSupportedException to comply with the + JDBC specification. + +* Thu Sep 28 2017 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> +- Added possibility to let the JDBC driver return columnType value + Types.VARCHAR instead of Types.CLOB in case the result column of a + ResultSet or parameter in a PreparedStatement is of data type 'clob'. + To enable this behavior provide it as JDBC connection URL property: + treat_clob_as_varchar=true + For example: jdbc:monetdb://localhost:50000/demo?treat_clob_as_varchar=true + See also: + https://www.monetdb.org/Documentation/Manuals/SQLreference/Programming/JDBC + This custom clob mapping informs generic JDBC programs to fetch clob + column values via method ResultSet.getString() instead of getClob() + and Clob.getCharacterStream() and next fetching from the stream. + As MonetDB server MAPI communication protocol does not support + streaming of parts of a CLOB value, the current implementation is to + send over the whole CLOB value as a string. Therefore there is no + performance gain when fetching those Clob values via getClob() and + getCharacterStream(). In fact it creates a lot of overhead (additional + objects and method calls) and triples the amount of needed Java Heap memory + for each Clob value! + With this connection property set, you can reduce this overhead when + working with clob column data from generic JDBC programs. + * Thu Sep 7 2017 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> - Implemented PreparedStatement methods setNCharacterStream(int, Reader) and setNCharacterStream(int, Reader, long). @@ -15,8 +46,8 @@ - Implemented PreparedStatement method setURL(int, URL). - Implemented PreparedStatement method setNString(int, String). - The MonetDB JDBC driver code and jdbcclient program are now compiled - without debug info and with optimise flag enabled. The new jar files are - now smaller in size. + without debug info and with optimise flag enabled. + The new jar files are now some 20% smaller in size. * Thu Aug 17 2017 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> - Implemented ResultSet method getNCharacterStream(). @@ -24,16 +55,7 @@ and getCharacterStream(long pos, long length). Method getCharacterStream() is called by DBeaver to fetch the Clob value. It used to throw a SQLFeatureNotSupportedException with message: - "Method getCharacterStream() currently not supported". This caused + "Operation getCharacterStream() currently not supported". This caused DBeaver to log the exception and show NULL as the value on screen, which is incorrect. This has been fixed. -* Fri Jul 28 2017 Sjoerd Mullender <sjo...@acm.org> -- Compiled and released new jars: monetdb-jdbc-2.26.jar and updated jdbcclient.jar - -* Thu Jul 13 2017 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> -- Corrected implementation of PreparedStatement method - setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength) - for the case the targetSqlType is Types.CLOB. - See also: https://www.monetdb.org/bugzilla/show_bug.cgi?id=6349 - diff --git a/ChangeLog-Archive b/ChangeLog-Archive --- a/ChangeLog-Archive +++ b/ChangeLog-Archive @@ -1,6 +1,64 @@ # DO NOT EDIT THIS FILE -- MAINTAINED AUTOMATICALLY # This file contains past monetdb-java ChangeLog entries +* Mon Oct 23 2017 Sjoerd Mullender <sjo...@acm.org> +- Compiled and released new jars: monetdb-jdbc-2.27.jar, monetdb-mcl-1.16.jar + and updated jdbcclient.jar + +* Thu Oct 5 2017 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> +- Corrected method Connection.prepareCall(). It used to return null. + Now it throws an SQLFeatureNotSupportedException to comply with the + JDBC specification. + +* Thu Sep 28 2017 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> +- Added possibility to let the JDBC driver return columnType value + Types.VARCHAR instead of Types.CLOB in case the result column of a + ResultSet or parameter in a PreparedStatement is of data type 'clob'. + To enable this behavior provide it as JDBC connection URL property: + treat_clob_as_varchar=true + For example: jdbc:monetdb://localhost:50000/demo?treat_clob_as_varchar=true + See also: + https://www.monetdb.org/Documentation/Manuals/SQLreference/Programming/JDBC + This custom clob mapping informs generic JDBC programs to fetch clob + column values via method ResultSet.getString() instead of getClob() + and Clob.getCharacterStream() and next fetching from the stream. + As MonetDB server MAPI communication protocol does not support + streaming of parts of a CLOB value, the current implementation is to + send over the whole CLOB value as a string. Therefore there is no + performance gain when fetching those Clob values via getClob() and + getCharacterStream(). In fact it creates a lot of overhead (additional + objects and method calls) and triples the amount of needed Java Heap memory + for each Clob value! + With this connection property set, you can reduce this overhead when + working with clob column data from generic JDBC programs. + +* Thu Sep 7 2017 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> +- Implemented PreparedStatement methods setNCharacterStream(int, Reader) + and setNCharacterStream(int, Reader, long). + +* Thu Aug 31 2017 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> +- Corrected PreparedStatement methods setString(int, String) + and setObject(int, Object, ...) in case the target parameter + data type was json or inet or url or uuid. See also + https://www.monetdb.org/bugzilla/show_bug.cgi?id=6382 + +* Thu Aug 24 2017 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> +- Implemented PreparedStatement method setURL(int, URL). +- Implemented PreparedStatement method setNString(int, String). +- The MonetDB JDBC driver code and jdbcclient program are now compiled + without debug info and with optimise flag enabled. + The new jar files are now some 20% smaller in size. + +* Thu Aug 17 2017 Martin van Dinther <martin.van.dint...@monetdbsolutions.com> +- Implemented ResultSet method getNCharacterStream(). +- In class MonetClob implemented methods getCharacterStream() + and getCharacterStream(long pos, long length). Method + getCharacterStream() is called by DBeaver to fetch the Clob value. + It used to throw a SQLFeatureNotSupportedException with message: + "Operation getCharacterStream() currently not supported". This caused + DBeaver to log the exception and show NULL as the value on screen, + which is incorrect. This has been fixed. + * Fri Jul 28 2017 Sjoerd Mullender <sjo...@acm.org> - Compiled and released new jars: monetdb-jdbc-2.26.jar and updated jdbcclient.jar diff --git a/Makefile b/Makefile --- a/Makefile +++ b/Makefile @@ -5,6 +5,9 @@ all: src/main/java/nl/cwi/monetdb/jdbc/M src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java: build.properties src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in . ./build.properties; sed -e "s/@MCL_MAJOR@/$$MCL_MAJOR/g;s/@MCL_MINOR@/$$MCL_MINOR/g;s/@JDBC_MAJOR@/$$JDBC_MAJOR/g;s/@JDBC_MINOR@/$$JDBC_MINOR/g;s/@JDBC_VER_SUFFIX@/$$JDBC_VER_SUFFIX $$buildno/g;s/@JDBC_DEF_PORT@/$$JDBC_DEF_PORT/g" src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java.in > src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java +doc: + ant -f build.xml doc + clean: rm -f src/main/java/nl/cwi/monetdb/jdbc/MonetDriver.java - rm -rf build tests/build jars + rm -rf build tests/build jars doc diff --git a/build.xml b/build.xml --- a/build.xml +++ b/build.xml @@ -11,8 +11,7 @@ Copyright 1997 - July 2008 CWI, August 2 <!-- Build file to allow ant (http://jakarta.apache.org/ant/) to be used - to build the MonetDB Java libraries, such as the JDBC and XML:DB - drivers. + to build the MonetDB Java packages, such as the JDBC driver. --> @@ -32,12 +31,16 @@ Copyright 1997 - July 2008 CWI, August 2 <property file="build.properties" /> - <property name="jdbc-jar" value="${jardir}/monetdb-jdbc-new-${JDBC_MAJOR}.${JDBC_MINOR}.jar" /> - <property name="jdbcclient-jar" value="${jardir}/jdbcclient.jar" /> - <property name="jmonetdb-jar" value="${jardir}/jmonetdb.jar" /> - <property name="mcl-jar" value="${jardir}/monetdb-mcl-${MCL_MAJOR}.${MCL_MINOR}.jar" /> - - <property name="mero-control-jar" value="${jardir}/merocontrol.jar" /> + <property name="jdbc-jar" + value="${jardir}/monetdb-jdbc-new-${JDBC_MAJOR}.${JDBC_MINOR}.jar" /> + <property name="jdbcclient-jar" + value="${jardir}/jdbcclient.jar" /> + <property name="jmonetdb-jar" + value="${jardir}/jmonetdb.jar" /> + <property name="mcl-jar" + value="${jardir}/monetdb-mcl-${MCL_MAJOR}.${MCL_MINOR}.jar" /> + <property name="mero-control-jar" + value="${jardir}/merocontrol.jar" /> <!-- @@ -57,9 +60,7 @@ Copyright 1997 - July 2008 CWI, August 2 <!-- full target --> <target name="all"> <antcall target="distjdbc" /> - <antcall target="distmerocontrol" /> - <antcall target="doc" /> </target> @@ -113,11 +114,11 @@ Copyright 1997 - July 2008 CWI, August 2 </jar> </target> - <!-- a convenience jar of JDBC plus the JdbcClient utililty --> + <!-- a convenience jar of jdbcclient command line program plus JDBC driver --> <target name="jar_jdbcclient" depends="compile_mcl,compile_jdbc,compile_util,compile_client" unless="uptodate.jdbcclient-jar"> - <echo message="Building JDBC + JdbcClient convenience jar" /> + <echo message="Building jdbcclient + JDBC driver convenience jar" /> <jar jarfile="${jdbcclient-jar}"> <fileset dir="${builddir}"> <include name="${jdbc-package}/**/*.class" /> @@ -251,8 +252,8 @@ Copyright 1997 - July 2008 CWI, August 2 </target> <!-- - This generates MonetDriver.java.in from its ".java.in" equivalents. It's - required for importing the driver version properties. + This generates MonetDriver.java from its ".java.in" equivalent. + It's required for importing the driver version properties. --> <target name="driver" depends="prepare" unless="uptodate.drivers"> <tstamp> @@ -349,7 +350,7 @@ Copyright 1997 - July 2008 CWI, August 2 <!-- documentation target --> <target name="doc" - depends="compile_mcl,compile_jdbc,compile_util,compile_client,compile_mero_control"> + depends="driver"> <javadoc destdir="${docdir}" author="true" @@ -364,14 +365,6 @@ Copyright 1997 - July 2008 CWI, August 2 <include name="${util-package}/**/*.java" /> <include name="${mero-control-package}/**/*.java" /> </fileset> - - <fileset dir="${builddir}/src" defaultexcludes="yes"> - <include name="${jdbc-package}/**/*.java" /> - <include name="${mcl-package}/**/*.java" /> - <include name="${client-package}/**/*.java" /> - <include name="${util-package}/**/*.java" /> - <include name="${mero-control-package}/**/*.java" /> - </fileset> </javadoc> </target> diff --git a/pom.xml b/pom.xml --- a/pom.xml +++ b/pom.xml @@ -1,141 +1,141 @@ <?xml version="1.0" encoding="UTF-8"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <modelVersion>4.0.0</modelVersion> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> - <groupId>monetdb</groupId> - <artifactId>monetdb-jdbc-new</artifactId> - <version>2.32</version> - <name>MonetDB JDBC new</name> - <description>MonetDB Adapted JDBC driver for embedded connection</description> - <url>https://www.monetdb.org</url> + <groupId>monetdb</groupId> + <artifactId>monetdb-jdbc-new</artifactId> + <version>2.32</version> + <name>MonetDB JDBC new</name> + <description>MonetDB Adapted JDBC driver for embedded connection</description> + <url>https://www.monetdb.org</url> - <licenses> - <license> - <name>Mozilla Public License, Version 2.0</name> - <url>https://www.mozilla.org/MPL/2.0/</url> - </license> - </licenses> + <licenses> + <license> + <name>Mozilla Public License, Version 2.0</name> + <url>https://www.mozilla.org/MPL/2.0/</url> + </license> + </licenses> - <developers> - <developer> - <name>Pedro Ferreira</name> - <email>pedro.ferre...@monetdbsolutions.com</email> - <organization>MonetDB</organization> - <organizationUrl>https://www.monetdb.org</organizationUrl> - </developer> _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list