view ChangeLog-Archive @ 338:98018e38994b

Correct getNumericFunctions() which incorrectly returned functions 'code' and 'space' as numeric functions.
author Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
date Wed, 25 Sep 2019 19:16:07 +0200 (2019-09-25)
parents 55735963f605
children 71a79126a390
line wrap: on
line source
# ChangeLog-Archive file for monetdb-java
# This file contains all past monetdb-java ChangeLog entries
# For every new release the ChangeLog is prepended to this file.

* Thu Sep 26 2019 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new jar files: monetdb-jdbc-2.29.jre7.jar,
  monetdb-mcl-1.18.jre7.jar and jdbcclient.jre7.jar

* Wed Sep 25 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- The jar files are now named according to Java version compatibility.
  For example, the monetdb-jdbc-2.29.jre7.jar file should be used with
  Java 7 or higher.

* Wed Sep 18 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected method DatabaseMetaData.getBestRowIdentifier(). It used to
  return columns of both primary key and unique constraints. Now it only
  returns the columns of the primary key if it has one, else columns of
  a unique constraint.

* Wed Sep 11 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Optimized parse() method of TupleLineParser by creating less helper objects
  and replacing method calls by direct operations on variables.

* Wed Sep  4 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected JdbcClient program: the dumping of a view DDL was incorrect when
  the view creation statement was not starting with "create view ", such as
  when it was created using "create or replace view". It now shows the
  value as stored in sys.tables.query field, similar to mclient program.

* Thu Aug 22 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved JdbcClient program by including the schema prefix when dumping
  schema objects. It now behaves more similar to: mclient -D -N.
- Improved JdbcClient program. It now also dumps definitions of MERGE TABLE,
  REMOTE TABLE, REPLICA TABLE and STREAM TABLE when dumping (all) tables.

* Wed Aug 14 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved MonetDatabaseMetaData methods:
  - getNumericFunctions(): it now includes function: sys.alpha
  - getNumericFunctions(): it no longer lists functions: not_uniques and rotate_xor_hash
  - getStringFunctions(): it now includes functions: json.isarray, json.isobject,
      json.isvalid, sys.reverse which accept a string value as argument
  - getStringFunctions(): it no longer lists functions: copyfrom, get_value_for, next_value_for, restart.
  - getSystemFunctions(): it now includes system functions: get_value_for, hash,
      next_value_for, sys.columnsize, sys.debug, sys.hashsize, sys.heapsize,
      sys.imprintsize, sys.isauuid, sys.md5, sys.newurl, sys.password_hash, isaurl
  - getSystemFunctions(): it no longer lists function: getlimit.
  Also some functions require the prefix "sys." or "json." when used
  from another schema. This is now included in the names returned by
  methods getNumericFunctions(), getStringFunctions(), getSystemFunctions()
  and getTimeDateFunctions().

* Wed Jul 31 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected MonetDatabaseMetaData methods:
  - getNumericFunctions(): it now includes function: pi.
  - getSystemFunctions(): it no longer lists numeric functions: pi and rand.
  - supportsSchemasInIndexDefinitions(): changed from true to false
- Optimised MonetStatement memory resource usage by only creating an ArrayList
  and ReentrantLock object when the batch methods addBatch() or executeBatch()
  are called. In most Statement usages those methods are never called.
- Implemented method MonetClob.getAsciiStream().

* Thu Mar 21 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Added implementation of java.sql.CallableStatement interface. Some standard
  Java applications require this JDBC interface for executing SQL stored procedures.
  This implementation resolves request: https://www.monetdb.org/bugzilla/show_bug.cgi?id=6402

* Thu Mar  7 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved MonetDatabaseMetaData methods:
  - getNumericFunctions(): it now includes functions: degrees, fuse, ms_round, ms_str, ms_trunc and radians.
  - getStringFunctions(): it now includes function: position.
  - supportsIntegrityEnhancementFacility() now returns false, as we do not enforce CHECK constraints yet.

* Thu Feb  7 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved MonetDatabaseMetaData methods:
  - getNumericFunctions(): it no longer lists aggregate functions: avg, prod and sum
  - getSystemFunctions(): it no longer lists timedate function: extract
  - getTimeDateFunctions(): it now also lists functions: date_trunc, epoch
- Corrected MonetDatabaseMetaData method getTypeInfo() for result column
  SEARCHABLE. It now returns DatabaseMetaData.typeSearchable for all
  string data types including 'inet','json','url','uuid' and 'blob'.

* Thu Sep 20 2018 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved example program SQLcopyinto.java and moved it to tests directory
  for automatic testing.

* Thu Jun 28 2018 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected return values of DatabaseMetaData methods
  allTablesAreSelectable() and allProceduresAreCallable().
  They used to return true but now return false.

* Wed May 23 2018 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new jars: monetdb-jdbc-2.28.jar, monetdb-mcl-1.17.jar
  and updated jdbcclient.jar

* Thu Apr 26 2018 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected and extended output of DatabaseMetaData methods
  getTimeDateFunctions() and getSystemFunctions().  The Date/Time functions
  (curdate, current_date, current_time, current_timestamp, curtime,
  local_timezone, localtime, localtimestamp) were returned by
  getSystemFunctions() but are now returned by getTimeDateFunctions().
  getTimeDateFunctions() now also lists functions: date_to_str, extract, now,
  str_to_date, str_to_time, str_to_timestamp, time_to_str and timestamp_to_str.
- Improved DatabaseMetaData methods getTablePrivileges() and
  getColumnPrivileges() by returning also any combination of privileges
  for the table or column in the PRIVILEGE result column. Previously only
  single privileges (SELECT or UPDATE or INSERT or DELETE or EXECUTE or
  GRANT) would be returned.

* Thu Apr 19 2018 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected method DatabaseMetaData.getFunctions() for result column
  FUNCTION_TYPE.  It used to return DatabaseMetaData.functionResultUnknown
  value for Analytic (functions.type 6) and Loader function (functions type 7).
  It now returns DatabaseMetaData.functionNoTable for Analytic functions and
  DatabaseMetaData.functionReturnsTable for Loader functions.
- DatabaseMetaData methods getTables(), getColumns(), getProcedures() and
  getFunctions() now return the comment in the REMARKS result column when a
  comment has been set for the table / view / column / procedure / function
  via the SQL command COMMENT ON <db-object type> <qname> IS 'comment-text'.

* Thu Dec 14 2017 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Fixed a problem with retrieving Dates and Timestamps which contained a
  year value less than 1000. It would throw an SQLDataException with message:
   Could not convert value to a Date. Expected JDBC date escape format
   yyyy-[m]m-[d]d.
  See also: https://www.monetdb.org/bugzilla/show_bug.cgi?id=6468

* Mon Oct 23 2017 Sjoerd Mullender <sjoerd@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.dinther@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.dinther@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.dinther@monetdbsolutions.com>
- Implemented PreparedStatement methods setNCharacterStream(int, Reader)
  and setNCharacterStream(int, Reader, long).

* Thu Aug 31 2017 Martin van Dinther <martin.van.dinther@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.dinther@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.dinther@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 <sjoerd@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.dinther@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

* Thu Mar 30 2017 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new jars: monetdb-jdbc-2.25.jar, monetdb-mcl-1.15.jar
  and updated jdbcclient.jar

* Thu Mar  9 2017 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected ResultSetMetaData methods getColumnLabel(int), getColomnName(int),
  getTableName(int) and getSchemaName(int) for names which contain special
  characters such as a space, a tab, a comma, a double quote, etc.
  See also: https://www.monetdb.org/bugzilla/show_bug.cgi?id=6183

* Wed Dec 21 2016 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new jars: monetdb-jdbc-2.24.jar, monetdb-mcl-1.14.jar
  and updated jdbcclient.jar

* Thu Nov 17 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- The MapiSocket object now supports getting and setting the
  socket timeout, even before the TCP socket is created.  To set
  the socket timeout specify it in the JDBC URL, for example:
    jdbc:monetdb://localhost:50000/demo?so_timeout=8000
  This enables the timeout and sets it to 8000 milliseconds (= 8 seconds).
  By default the timeout is not set, so wait infinitely.

* Thu Nov 10 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Implemented Connection methods: getClientInfo(name) and getClientInfo().
  They used to return null and empty Properties object.
  Corrected implementation of Connection methods: setClientInfo(name, value)
  and setClientInfo(properties). They are now processed as expected.
  Corrected implementation of Connection.setHoldability(holdability). It now
  throws an SQLFeatureNotSupportedException when holdability is not
  ResultSet.HOLD_CURSORS_OVER_COMMIT (which is the only supported holdability).

* Thu Oct 13 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected implementation of java.sql.Wrapper methods isWrapperFor()
  and unwrap().  They now properly return expected results instead of
  always return false or throw an SQLException.

* Thu Oct  6 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected return values of DatabaseMetaData methods nullsAreSortedHigh(),
  nullsAreSortedLow(), getMaxCursorNameLength(), getMaxProcedureNameLength(),
  getMaxStatementLength() and getMaxUserNameLength().
  Improved return values of DatabaseMetaData methods getMaxBinaryLiteralLength(),
  getMaxCharLiteralLength() and getMaxColumnsInTable().
- Implemented Statement methods: getQueryTimeout() and setQueryTimeout(int
  seconds).  getQueryTimeout() used to always return 0, now it returns the
  query timeout retrieved from the server.  setQueryTimeout(int seconds)
  used to always throw SQLException: query time outs not supported.
  Now it sets the query timeout for the current connection/session on
  the server.

* Thu Sep 29 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected ResultSet methods: getByte(), getBigDecimal(), getShort(),
  getInt(), getLong(), getFloat() and getDouble() in case the conversion
  to the native type failed due to a Number Format conversion error.
  It used to silently ignore the conversion error and return 0 instead,
  which is not correct.  Now it throws an SQLException with message
  "Could not convert value to a number." and SQLstate "22003" meaning:
  Numeric value out of range.

* Thu Sep 22 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved JdbcClient program when doing dump of table definition.  It now
  outputs CREATE TABLE definition more similar to mclient program.

* Thu Sep 15 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved performance of following JDBC ResultSet and ResultSetMetaData
  methods:
  - ResultSet.getBoolean(column)
  - ResultSet.getBinaryStream(column)
  - ResultSet.getBytes(column)
  - ResultSet.getObject(column)
  - ResultSet.getObject(column, map)
  - ResultSet.getDate(column)
  - ResultSet.getTime(column)
  - ResultSet.getTimestamp(column)
  - ResultSet.getDate(column, calendar)
  - ResultSet.getTime(column, calendar)
  - ResultSet.getTimestamp(column, calendar)
  - ResultSetMetaData.getColumnClassName(column)
  - ResultSetMetaData.getColumnType(column)
  - ResultSetMetaData.isCaseSensitive(column)
  - ResultSetMetaData.isSigned(column)
  - ResultSetMetaData.getPrecision(column)

* Thu Sep  8 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved JdbcClient program by fixing some resource leaks.
- Extended JdbcClient program by showing elapsed time information for each
  query or command when started in interactive mode (no -f was used at startup).

* Thu Sep  1 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved fetching and output speed of JdbcClient program for query results.

* Thu Aug 11 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved performance of method ResultSet.getObject(column_ID) significantly.

* Wed Jul 13 2016 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new JDBC driver jar: monetdb-jdbc-2.23.jar

* Thu Jul  7 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.7-20160713
- Corrected PROCEDURE_TYPE output value of method DatabaseMetaData.getProcedures().
  It used to return procedureReturnsResult. Now it returns procedureNoResult.
  Corrected ORDINAL_POSITION output value of method DatabaseMetaData.getProcedureColumns().
  It used to start with 0, but as procedures do not return a result value it now
  starts with 1 for all the procedure arguments, as defined by the JDBC API.
- Improved output of method DatabaseMetaData.getProcedures(). The REMARKS
  column now contains the procedure definition as stored in sys.functions.func.
  The SPECIFIC_NAME column now contains the procedure unique identifier as
  stored in sys.functions.id. This allows the caller to retrieve the specific
  overloaded procedure which has the same name, but different arguments.
  Also improved output of method DatabaseMetaData.getProcedureColumns().
  The SPECIFIC_NAME column now contains the procedure unique identifier as
  stored in sys.functions.id. This allows the caller to retrieve the proper
  arguments of the specific overloaded procedure by matching the SPECIFIC_NAME
  value.
- Improved output of method DatabaseMetaData.getFunctions(). The REMARKS
  column now contains the function definition as stored in sys.functions.func.
  The SPECIFIC_NAME column now contains the function unique identifier as
  stored in sys.functions.id. This allows the caller to retrieve the specific
  overloaded function which has the same name, but different arguments.
  Also improved output of method DatabaseMetaData.getFunctionColumns().
  The SPECIFIC_NAME column now contains the function unique identifier as
  stored in sys.functions.id. This allows the caller to retrieve the proper
  arguments of the specific overloaded function by matching the SPECIFIC_NAME
  value.

* Fri Jun 10 2016 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new JDBC driver jar: monetdb-jdbc-2.21.jar

* Thu May 26 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- 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.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Implemented MonetDatabaseMetaData.supportsConvert() and
  MonetDatabaseMetaData.supportsConvert(int fromType, int toType) methods.
  It used to always return false. Now it returns true for the supported conversions.
  This fixes Bug 3460.

* Thu May 12 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Improved JdbcClient program when presenting query data to console.
  It used to send an SQL catalog query for each query result column
  which slowed down the interactive response considerably.
  These additional SQL catalog queries have been eliminated.

* Thu May 12 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Corrected MonetResultSet.getObject(String columnName). It no longer
  throws a NullPointerException in cases where internally a
  MonetVirtualResultSet is used.

* Sun May  8 2016 Jennie Zhang <y.zhang@cwi.nl> - 11.23.1-20160601
- Fixed Connection.isValid(): this method should never attempt to
  close the connection, even if an error has occurred.

* Sun May  8 2016 Jennie Zhang <y.zhang@cwi.nl> - 11.23.1-20160601
- ResultSet.setFetchSize(): added a dummy implementation to get rid
  of the SQLFeatureNotSupportedException. In MonetDB, it does not
  make sense to set the fetch size of a result set. If one really
  wants to set the fetch size, one should use Statement.setFetchSize()
  instead.

* Thu Apr 21 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Fixed resource leak in ResultSetMetaData. It created and cached a ResultSet
  object for each column but never closed the ResultSet objects.

* Thu Mar 31 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Corrected DatabaseMetaData methods which accept a catalog filter argument.
  Those methods will now filter the results on the specified catalog name,
  whereas previously the catalog filter argument was ignored.
- Corrected output of column KEY_SEQ of DatabaseMetaData methods:
  getPrimaryKeys(), getImportedKeys(), getExportedKeys() and
  getCrossReference(). It now starts at 1 instead of 0 previously.

* Thu Mar 24 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Corrected DatabaseMetaData.getSchemas() by returning 2 instead of 3 columns.
- Improved DatabaseMetaData.getColumns() by returning two additional
  columns: IS_AUTOINCREMENT and IS_GENERATEDCOLUMN.

* Thu Mar 17 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Improved DatabaseMetaData.getTypeInfo(). It now returns better information
  on LITERAL_PREFIX, LITERAL_SUFFIX, CREATE_PARAMS, CASE_SENSITIVE,
  FIXED_PREC_SCALE and MAXIMUM_SCALE for some data types. Also the returned rows
  are now ordered by DATA_TYPE, TYPE_NAME, PRECISION as required by the specs.
  Also corrected output column names "searchable" into "SEARCHABLE" and
  "MAXIMUM SCALE" into "MAXIMUM_SCALE" to match the JDBC specification.
- Corrected DatabaseMetaData.getPseudoColumns(). It used to return 12 empty rows.
  Now it returns no rows as MonetDB does not have pseudo columns.

* Thu Mar  3 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Implemented method DatabaseMetaData.getClientProperties(). It used to always
  return a resultset with 4 completely empty rows.  It now returns a
  resultset with the possible connection properties.
- Implemented method DatabaseMetaData.getUDTs(). It used to return an empty
  resultset. Now it returns the User Defined Types such as inet, json, url and uuid.

* Thu Feb 18 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Corrected the returned table types in DatabaseMetaData.getTableTypes().
  It now returns all 10 table types (as stored in sys.table_types) instead
  of the previously 8 hardcoded table types.
  For old MonetDB servers which do not have the sys.table_types table,
  the old behavior is retained.

* Thu Feb 11 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Implemented methods DatabaseMetadata.getProcedures() and
  DatabaseMetadata.getProcedureColumns(). They used to return an empty resultset.
  Now they return the expected Procedures and ProcedureColumns.
  Also getProcedureColumns() now returns a resultset with all 20 columns
  instead of 13 columns previously.

* Thu Feb  4 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Method getFunctionColumns() in DatabaseMetadata used to throw an
  SQLException:  getFunctionColumns(String, String, String, String) is
  not implemented.
  This method is now implemented and returns a resultset.

* Thu Jan 28 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Method getFunctions() in DatabaseMetadata used to throw an SQLException:
   SELECT: no such column 'functions.sql'
  This has been corrected. It now returns a resultset as requested.
- The resultsets of DatabaseMetadata methods now no longer return a
  value for the *_CAT columns as MonetDB does not support Catalogs.

* Thu Jan  7 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Fixed a memory leak in MonetDatabaseMetaData.java for a static cache
  which kept references to closed Connection objects.

* Tue Jan  5 2016 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new JDBC driver jar: monetdb-jdbc-2.19.jar

* Fri Oct 30 2015 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new jars: monetdb-jdbc-2.18.jar, monetdb-mcl-1.13.jar
  and updated jdbcclient.jar

* Thu Aug  6 2015 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.21.1-20150807
- Improved JDBC driver to not throw NullPointerException anymore
  when calling isNullable() or getPrecision() or getScale() or
  getColumnDisplaySize() or getSchemaName() or getTableName() or
  getColumnClassName() on a ResultSetMetaData object.

* Thu Jul 16 2015 Sjoerd Mullender <sjoerd@acm.org> - 11.21.1-20150807
- We now compile the Java classes using the latest Java 1.8 version, and
  we tell it to compile for Java 1.7.

* Mon Oct  7 2013 Sjoerd Mullender <sjoerd@acm.org> - 11.15.17-20131008
- Rearranged order of returned columns of certain metadata functions to
  comply with the JDBC documentation.  See bug 3356.

* Sun Jun  9 2013 Fabian Groffen <fabian@monetdb.org> - 11.15.9-20130619
- Further improved setBigDecimal() method, based on patch by Ben Reilly
  in bug #3290

* Thu May 23 2013 Fabian Groffen <fabian@monetdb.org> - 11.15.9-20130619
- Fixed bug where PreparedStatement.setBigDecimal() wouldn't format its
  input well enough for the server causing odd errors.
- Allow PreparedStatement.setXXX() methods to be called with null
  arguments, bug #3288

* Thu Apr 11 2013 Sjoerd Mullender <sjoerd@acm.org> - 11.15.5-20130412
- The pre-compiled .jar files are now created using Java 7 instead of
  Java 6.

* Sat Dec  1 2012 Fabian Groffen <fabian@monetdb.org> - 11.15.1-20130212
- merocontrol was changed to return server URIs, and lastStop time.
  Connections and dbpath were removed.
- Mapi protocol v8 support was removed from MapiSocket.  Protocol
  v8 has not been used by the servers any more since Apr2012 release

* Fri Nov 23 2012 Fabian Groffen <fabian@monetdb.org> - 11.13.7-20121212
- Implemented type map support of Connection to allow custom mapping
  of UDTs to Java classes.  By default the INET and URL UDTs are
  now mapped to nl.cwi.monetdb.jdbc.types.{INET,URL}.  Most notably,
  ResultSet.getObject() and PreparedStatement.setObject() deal with the
  type map.

* Thu Nov 22 2012 Fabian Groffen <fabian@monetdb.org> - 11.13.7-20121212
- Fixed a problem in PreparedStatement where the prepared statement's
  ResultSetMetaData (on its columns to be produced) incorrectly threw
  exceptions about non existing columns.  Bug #3192

* Wed Oct 10 2012 Fabian Groffen <fabian@cwi.nl> - 11.13.3-20121016
- Fixed problem with PreparedStatements and setXXX() methods using column
  numbers instead of names, bug #3158

* Tue Aug 14 2012 Fabian Groffen <fabian@cwi.nl> - 11.11.9-20120911
- Fixed a bug where DatabaseMetaData.getURL() did return null:0 for
  hostname:port.

* Fri Jul 20 2012 Fabian Groffen <fabian@cwi.nl> - 11.11.7-20120813
- Fixed adaptive cache size used when retrieving results, not to cause
  divide by zero errors when memory gets short, bug #3119.

* Fri Mar  2 2012 Wouter Alink <wouter@spinque.com> - 11.9.1-20120418
- Password reading by JdbcClient no longer results in strange artifacts
- JdbcClient now returns exit code 1 in case of failures

* Tue Feb 28 2012 Fabian Groffen <fabian@cwi.nl> - 11.7.9-20120312
- Implemented missing Number types support in
  PreparedStatement.setObject()

* Mon Feb 20 2012 Fabian Groffen <fabian@cwi.nl> - 11.7.7-20120224
- Fixed bug in DatabaseMetaData.getSchemas() method that caused an SQL
  error when called with catalog and schema argument.

* Tue Feb 14 2012 Fabian Groffen <fabian@cwi.nl> - 11.7.7-20120224
- Resolved a bug where JDBC and Control connections could terminate
  abruptly with 'Connection closed' messages

* Mon Jan  2 2012 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- Implemented getMetaData() method of PreparedStatement.

* Tue Dec 27 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- Fixed an AssertionError for special results from e.g. EXPLAIN queries.

* Wed Dec 21 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- Fixed overflow error when batching large statements, bug #2952

* Tue Dec 20 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- Resolved a concurrency problem where ResultSet's date-related getters
  could cause odd stack traces when used by multiple threads at the
  same time, bug #2950.

* Mon Dec 19 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- JDBC now implements JDBCv4.1 which makes it possible to be built with
  Java 7 and up.  JDBCv4.1 is a maintenance release of JDBCv4, and hence
  can be compiled with Java 6, although the added methods obviously are
  not part of the java.sql interfaces.

* Sun Dec 11 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- SQLExceptions thrown now carry a SQLSTATE.  Until the server starts
  sending correct SQLSTATEs for all errors, server originated errors
  without SQLSTATE are considered generic data exceptions (22000).

* Sat Dec 10 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- Fixed a bug where closing ResultSets and PreparedStatements could lead
  to errors on concurrent running queries using the same Connection due
  to a race condition.

* Thu Dec  8 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- Changed version scheme of JDBC driver and MCL jar to be more standard,
  from monetdb-X.Y-<thing>.jar to monetdb-<thing>-X.Y.jar, bug #2943

* Fri Oct 14 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- The embedded monet instance capability of MonetConnection was removed.
- Bump JDBC version to 2.0 (Liberica).  JDBC now implements JDBCv4 which
  makes it possible to be built with Java 6 and up.  Java 5 and before
  are no longer supported, and can use the 1.x releases of the driver.

* Thu Sep  1 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- INTERVAL columns are now treated as decimals, since they can have
  sub-second precision.

* Thu Jun 30 2011 Fabian Groffen <fabian@cwi.nl> - 11.5.1-20110907
- Add so_timeout Driver property to specify a SO_TIMEOUT value for the
  socket in use to the database.  Setting this property to a value in
  milliseconds defines the timeout for read calls, which may 'unlock'
  the driver if the server hangs, bug #2828

* Wed May 25 2011 Fabian Groffen <fabian@cwi.nl> - 11.5.1-20110907
- Added a naive implementation for PreparedStatement.setCharacterStream

* Mon Apr 11 2011 Fabian Groffen <fabian@cwi.nl> - 11.5.1-20110907
- The obsolete Java-based implementation for PreparedStatements (formerly
  activated using the java_prepared_statements property) has been dropped

* Fri Jul  8 2011 Fabian Groffen <fabian@cwi.nl> - 11.3.5-20110720
- Return false from Statement.getMoreResults() instead of a
  NullPointerException when no query has been performed on the Statement
  yet, bug #2833

* Mon Jun  6 2011 Fabian Groffen <fabian@cwi.nl> - 11.3.5-20110720
- Fixed read-only interpretation.  Connection.isReadOnly now always
  returns false, setReadOnly now generates a warning when called with
  true.  Partly from bug #2818
- Allow readonly to be set when autocommit is disabled as well.  Bug #2818

* Wed May 11 2011 Fabian Groffen <fabian@cwi.nl> - 11.3.3-20110517
- Insertion via PreparedStatement and retrieval via ResultSet of timestamp
  and time fields with and without timezones was improved to better
  respect timezones, as partly indicated in bug #2781.

* Tue Apr  5 2011 Fabian Groffen <fabian@cwi.nl> - 11.3.1-20110414
- clarify exception messages for unsupported methods

* Mon Feb  7 2011 Fabian Groffen <fabian@cwi.nl> - 11.3.1-20110414
- Removed XQuery related XRPC wrapper and XML:DB code, removed support
  for language=xquery and language=mil from JDBC.

* Wed Dec 15 2010 Fabian Groffen <fabian@cwi.nl> - 11.1.1-20110317
- PreparedStatements now free the server-side resources attached to them
  when closed.  This implements bug #2720

* Tue Nov  9 2010 Fabian Groffen <fabian@cwi.nl> - 1.40.1-20101110
- Fix SQL syntax of inserting BLOB code, using setBytes()
- Added propery 'treat_blob_as_binary' to simulate BINARY types based on
  BLOBs for applications, (e.g. Hibernate-based) that rely on BINARY's
  byte array mapping
- Added code to handle BINARY types
- Fixed implementation of getBytes to match the specifications
- Implemented getBinaryStream according to the specifications

* Mon Nov  8 2010 Fabian Groffen <fabian@cwi.nl> - 1.40.1-20101109
- Java 1.6's subSequence() bug has changed into a slice() bug since
  1.6.0_22.  Revert workaround for subSequence breakage, since it breaks
  operating with the latest Java 1.6.

* Fri Oct 22 2010 Fabian Groffen <fabian@cwi.nl> - 1.40.1-20101029
- Fix for bug #2703, allow to have multiple metadata ResultSets open at
  the same time

* Wed Aug 11 2010 Fabian Groffen <fabian@cwi.nl> - 1.38.5-20100823
- Implemented ResultSet's getCharacterStream methods, since Hibernate seems to
  call this method for retrieving CLOB columns that we now do support.

* Fri Aug 06 2010 Fabian Groffen <fabian@cwi.nl> - 1.38.5-20100823
- Fix implementation of setBytes method of PreparedStatement, such that bytes
  are converted to MonetDB/SQL's BLOB notation.

* Wed Jul 21 2010 Fabian Groffen <fabian@cwi.nl> - 1.38.5-20100823
- merocontrol Java library requires Java 2 Platform 1.5 and up, due to enum
  and boxing/unboxing. Bug #2627

* Tue Jul 20 2010 Fabian Groffen <fabian@cwi.nl> - 1.38.5-20100823
- Implement missing Blob support (readonly), since getObject will blindly
  return a BLOB instance as String, which is causing applications to wrongly
  believe a BLOB instance is a string.

* Fri Jul 16 2010 Fabian Groffen <fabian@cwi.nl> - 1.38.5-20100823
- Fix problem when using the MAL language.  Any statement would return
  an error with a typo that was not typed in by the user, such as
  ioo.printf when io.printf was typed.

* Fri Apr 16 2010 Fabian Groffen <fabian@cwi.nl> - Jun2010-SP1
- Enable the merovingian control library for default distribution as it
  has been in use for some time without problems now.

* Wed Mar 31 2010 Stefan Manegold <manegold@cwi.nl> - Jun2010-SP1
- Made compilation of "testing" (and "java") independent of MonetDB.
  This is mainly for Windows, but also on other systems, "testing" can now be
  built independently of (and hence before) "MonetDB".
  Files that mimic configure functionality on Windows were moved from
  "MonetDB" to "buildtools"; hence, this affects all packages on Windows,
  requiring a complete rebuild from scratch on Windows.
  getopt() support in testing has changed; hence, (most probably) requiring a
  rebuild from scratch of testing on other systems.

* Wed Mar 31 2010 Fabian Groffen <fabian@cwi.nl> - Feb2010-SP2
- Do not to throw an SQLException, but generate a warning and try to
  perform as much as requested in an optimistic manner, as not to break
  clients that rely on the called method, but don't really use its
  functionality (such as high-level generic programs that call any
  driver and try to put it in a mode that it does what they expect).
  The following functions no longer throw an SQLException but now
  generate a warning and perform actions as far as possible:
  - Statement.execute(sql, columnIndexes/columnNames)
  - Statement.executeUpdate(sql, columnIndexes/columnNames)
  - Statement.getMaxFieldSize()
  - Statement.setCursorName(name)
  - Statement.setEscapeProcessing(enable)
  - Statement.setMaxFieldSize(max)
  - Statement.setQueryTimeout(seconds)
  - PreparedStatement.getMetaData()
  - PreparedStatement.setNull(paramIndex, sqlType, typeName)

* Wed Mar 24 2010 Stefan Manegold <manegold@cwi.nl> - Jun2010-SP1
- Implemented build directory support for Windows,
  i.e., like on Unix/Linux also on Windows we can now build in a separate
  build directory as alternative to ...\<package>\NT, and thus keep the
  latter clean from files generated during the build.
  On Windows, the build directory must be a sibling of ...\<package>\NT .

* Tue Mar 09 2010 Fabian Groffen <fabian@cwi.nl> - Feb2010-SP1
- Set JAVA_HOME to the configure derived value, such that ant will use
  the javac compiler as found by configure, and not the one it was built
  with itself.  This solves the problem that the JDBC driver still fails
  to compile on e.g. Fedora systems even though configure
  --with-java=/path/to/sun/jdk-5 was given, because ant still uses
  gjc/icedtea by itself.

* Mon Oct 12 2009 Wouter Alink <w.alink@cwi.nl> - Aug2009-SP2
- Bump MCL version to 1.6 for fix.

* Fri Oct 09 2009 Fabian Groffen <fabian@cwi.nl> - Feb2010
- Bump Java source version to 1.5.  Java 1.5 is the current J2EE, and code
  from nl.cwi.monetdb.merovingian relies on Java 1.5 features.  It seems
  like a good time to deprecate 1.4 now 1.6 is about to become the new
  J2EE version.

* Fri Oct 09 2009 Wouter Alink <w.alink@cwi.nl> - Aug2009-SP2
- applied workaround for bug in Sun JRE 1.6.

* Thu Oct 01 2009 Fabian Groffen <fabian@cwi.nl> - Aug2009-SP2
- Bump JDBC version to 1.14 for fix.

* Thu Oct 01 2009 Fabian Groffen <fabian@cwi.nl> - Aug2009-SP2
- Fix warning messages to disappear when a connection to merovingian is
  made.

* Sun Aug 23 2009 Fabian Groffen <fabian@cwi.nl> - Aug2009-SP1
- Bump JDBC version to 1.13 for fix.

* Sun Aug 23 2009 Fabian Groffen <fabian@cwi.nl> - Aug2009-SP1
- Avoid "ResultSet is closed" messages by disabling the use of
  finalizers, bug #2844202

* Thu Mar 26 2009 Fabian Groffen <fabian@cwi.nl> - Feb2010
- Fix configure handling for --enable-{jdbc,xrpc}, by Yue Sheng on
  Monetdb-developers ML