April 2011

April 2011 mk Sun, 06/26/2011 - 11:12
This is the first release of the MonetDB suite that does not contain MonetDB4 and MonetDB/XQuery. As already mentioned in the Mar2011 release notes, work on the Pathfinder compiler, which forms the basis of MonetDB/XQuery, continues at The University of Tübingen.

An upgrade from the Mar2011 release should be smooth, even if MonetDB/XQuery is installed. The Windows installers for MonetDB/SQL and MonetDB/XQuery have always been independent, and the Fedora, Debian, and Ubuntu versions have been made independent in the Mar2011 release.

The Apr2011 release uses a slightly changed SQL catalog than previous releases. The catalog will be updated automatically the first time an SQL database is opened. Note that because of the incompatibility, once updated, the database cannot be read by older versions. Also note that a database from the Feb2010 release or before cannot be read by this release. First update the database with the Mar2011 release.

This is also the first release where we have created FreeBSD binaries. These binaries are highly experimental. The software should run as well as on any other system, but the packaging is obviously different from other systems. As before, we also provide binaries for Windows, Fedora (13 and 14), Debian (5.0 and 6.0), Ubuntu (9.10, 10.04, and 10.10), Mac OS X, and Solaris.



Apr 2011-SP2 bugfix release

Build Environment
  • We can now build RPMs on CentOS 6.0. Since there is no geos library on CentOS, we do not support the geom modules there.
  • We can now also build on Fedora 15. This required some very minor changes.
  • Changed configure check for OpenSSL so that we can also build on CentOS 5.6. We now no longer demand that OpenSSL is at least version 0.9.8f, but instead we require that the hash functions we need are supported.
Client Package
  • Fix stethoscope's mod.fcn filter when using multiple targets, bug #2827
  • The separate Python distribution now uses the same version number as the main package.
MonetDB Common
  • Fixed a problem where appending string BATs could cause enormous growth of the string heap. This fixes bug 2820.
  • Fixes to memory detection on FreeBSD.
Java Module
  • Return false from Statement.getMoreResults() instead of a NullPointerException when no query has been performed on the Statement yet, bug #2833
  • 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
  • Fixed regression where the superuser password could no longer be changed, bug #2844
  • Fixed incorrect insert counts.
  • Fixed bug 2823: MAL exeption on SQL query with subquery in the where part.
  • Redirect error from create scripts back to the first client. This fixes bug 2813.
  • Added joinidx based semijoin; push join through union (using joinidx).
  • Fixed pushing select down.
Bug Fixes
  • 2058: scoping issue of functions and with
  • 2734: MALException:mkey.bulk_rotate_xor_hash on complex SQL query
  • 2767: `make uninstall` fails in clients/rubyadapter
  • 2797: mserver crashes at initialization when the disk is full
  • 2811: mserver crashes
  • 2812: Subqueries in FROM clause not accepted
  • 2813: SQL: catalog is built even error has occurred
  • 2818: JDBC: exception on calling Connection.setReadOnly
  • 2819: make text readable
  • 2820: SIGSEGV in BATins_kdiff triggered by a DELETE statement
  • 2821: segmentation fault when a select query (with group by) is run on server with "--single-user" option
  • 2822: A query with CASE and division results in ArithmeticException
  • 2823: MAL exeption on SQL query with subquery in the where part
  • 2825: "Insert into ... select distinct ..." fails with MALException:mkey.bulk_rotate_xor_hash:operation
  • 2826: sql function iterates instead of bulk processing
  • 2827: Incorrect filter setting when listening to several servers
  • 2829: logging issue
  • 2830: select 30.0 - 0.025; conversion to decimal type gives error
  • 2831: Crash in query analysis
  • 2832: Server terminates upon UPDATE
  • 2833: NullPointerException when calling getMoreResults() on Statement without a query executed
  • 2835: UNIQUE Constraint is not enforced
  • 2837: Server terminates after CREATE FUNCTION in multi-user scenario
  • 2844: ALTER USER SET PASSWORD doesn't recognise username


Apr 2011-SP1 bugfix release

MonetDB Common Fixed a bug where large files (> 2GB) didn't always get deleted on Windows.
Java Module 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.
MonetDB5 Server
Fixed a bug in conversion from string to the URL type.  The bug was an incorrect call to free().
Bug Fixes
  • 2784: configure does not (properly) check for yacc/bison
  • 2798: Query did not produce a result set
  • 2806: Wrong logic in predicates over views defined with an open-interval predicate
  • 2807: wrong results for group by queries in the presence of primary keys
  • 2808: wrong results for count()/count(distinct) on the same attribute
  • 2810: Copy into should rollback correctly (i.e. restore the files) on a failure


Apr 2011 feature release

Client Package

Plugged a small memory leak occurring upon redirects by the server (e.g. via monetdbd)
Remove XQuery related code from Ruby adapter, PHP driver and Perl Mapi library
Make SQL the default language for mclient, e.g. to use when --language= or -l is omitted

MonetDB Common Fixed bugs in antiselect which gave the incorrect result when upper and lower bound were equal. This bug could be triggered by the SQL query SELECT * FROM t WHERE x NOT BETWEEN y AND y
Java Module Clarify exception messages for unsupported methods
Removed XQuery related XRPC wrapper and XML:DB code, removed support for language=xquery and language=mil from JDBC.
MonetDB5 Server
Mserver5 no longer reads monetdb5.conf upon startup by default. Use --config=file to have mserver5 read a configuration on startup
SQL Some names in the SQL catalog were changed. This means that the database in the Apr2011 release is not compatible with pre-Apr2011 databases. The database is converted automatically when opened the first time. This database can then no longer be read by an older release.
Merovingian Fix monetdb return code upon failure to start/stop a database.
The forward property for databases has been removed. Instead, only a global proxy or redirect mode can be set using monetdbd.
Monetdbd can no longer log error and normal messages to separate logfiles, logging to stdout and stderr is no longer possible either.
The .merovingian_pass file is no longer in use, and replaced by the .merovingian_properties file. Use monetdbd (get|set) passphrase to view/edit the control passphrase. Existing .merovingian_pass files will automatically be migrated upon startup of monetdbd.
Monetdbd now understands commands that allow to create, start, stop, get and set properties on a given dbfarm. This behaviour is intended as primary way to start a MonetDB Database Server, on a given location of choice. monetdbd get and set are the replacement of editing the monetdb5.conf file (which is no longer in use as of the Apr2011 release). See monetdbd(1).
Bug Fixes
  • 1956: Geom: relation and spatial tests fail
  • 2547: create schema leads to sql_stmt symbol(x)->token = CREATE_SCHEMA
  • 2588: test sql/src/test/BugTracker/Tests/authorization.SF-1430616.SQL.sh shows different error message
  • 2590: test sql/src/test/BugTracker/Tests/mdb_starts_with_sql_debug_64.SF-1999354.py fails with "too many digits"
  • 2639: Readline auto-complete reads from 'tables' instead of 'sys.tables'
  • 2766: SQL: Compute modulo of rand() in an UPDATE stmt crashes mserver5
  • 2779: Make building GDK optional
  • 2793: EXTRACT(SECOND FROM timestamp) always returns 0 integer seconds part.
  • 2795: SQL: ALTER TABLE with incorrect syntax crashes mserver5
  • 2796: latest antiselect changes cause ~20 SQL tests to fail
  • 2800: Test_PStypes fails due to ambiguous identifier
  • 2801: Nested SELECT expression with JOIN causes outer WHERE to be disregarded sometimes