March 2011

These release notes are replicated for historical purposes only. The release is not supported anymore.

MonetDB Mar2011 release

This is the last planned release for MonetDB4 and MonetDB/XQuery. MonetDB4 has served us well, but we need to move on. MonetDB/XQuery, being implemented on top of MonetDB4, is a casualty of this decision. The work on the Pathfinder compiler, which forms the basis of MonetDB/XQuery, continues at The University of Tübingen.

As of this “Mar2011” release (version 11.1.1), all components of MonetDB have been gathered into one single package, mainly to simplify the compilation process. If you’re using the Mercurial clone, use the Mar2011 branch and the Mar2011_1 tag.

Packaging

The packaging of MonetDB has been completely overhauled. In the past, there were various subpackages that had to be configured and built individually, but that had to be done in the correct order. From this release onward, the process of building MonetDB has been greatly simplified. There is only a single configuration/build/install cycle for the whole suite. On Linux/Unix systems this means one call to ‘configure’ (when building from the Mercurial sources this has to be preceded by one call to the ‘bootstrap’ script), one call to ‘make’, and one call to ‘make install’. On Windows, the ‘bootstrap’ and ‘configure’ stages can be skipped (and you need to use ’nmake’ instead of ‘make’).

The directory structure of the source tree was also completely overhauled. The ‘MonetDB4’ and ‘MonetDB5’ directories were renamed ‘monetdb4’ and ‘monetdb5’ respectively, the ‘MonetDB’ directory was renamed ‘gdk’, ‘src’ subdirectories were removed, and several subsystems were moved to the new ‘common’ directory.

The version numbers have changed since we now have a single package. The version number of this release is 11.1.1.

Linux We now package for Fedora 13 and 14, for Debian 5.0 (Lenny) and 6.0 (Squeeze), and for Ubuntu 9.10 (Karmic Koala), 10.04 (Lucid Lynx), and 10.10 (Maverick Meerkat).

On Debian and Ubuntu, updating to this release is a bit more involved than simply using ‘apt-get upgrade’ or the “Mark All Upgrades” button in the Synaptic Package Manager. When using these commands, they will “keep back” the monetdb packages, so in order to actually update them you will need to give the ‘apt-get install’ command and specify the relevant monetdb packages, or in Synaptic first select the relevant monetdb packages and then select Package->Mark for Upgrade.

Windows Binaries are available.

Mac OS X Binaries are available.

Solaris Binaries are available.

GDK

  • Fixed memory detection on Darwin (Mac OS X) systems not to return bogus values
  • MonetDB/src/gdk was moved to gdk

MonetDB Server 5

  • sphinx module: update, adding limit/max_results support
  • Improve the performance of remote.put for BAT arguments. The put speed is now roughly equal to the speed of get on a BAT.

SQL

  • Fix bug #2648, do not allow restarting a sequence with NULL via the result of a sub-query.
  • Allow clients to release prepared handles using Xrelease commands

Clients

  • Fixed bug 2677: SQL_DESC_OCTET_LENGTH should give the size in bytes required to copy the data.
  • Disable timer functionality for non-XQuery languages since it is incorrect, bug #2705
  • Added mapi_get_uri function to retrieve mapi URI for the connection
  • Allow to dump table data using INSERT INTO statements, rather than COPY INTO + CSV data using the -N/–inserts flag of mclient and msqldump. Bug #2727
  • Added support for \dn to list schemas or describe a specific one
  • Added support for \df to list functions or describe a specific one
  • Added support for \ds to list sequences or describe a specific one
  • Added support for wildcards * and ? in object names given to \d commands, such that pattern matching is possible, e.g. \d my*
  • Added support for \dS that lists also system tables
  • object names given to \d are now lowercased, unless quoted by either single or double quotes
  • Strip any trailing whitespace with the \d command

Geom

  • Set endianness for wkb en/decoding.

Java

  • PreparedStatements now free the server-side resources attached to them when closed. This implements bug #2720

Bug fixes

  • 104: SQL: extremely long and complex query causes SEGFAULT
  • 2351: SQL: transaction aborts on prepared statements in autocommit
  • 2358: Unrelevant error message when copying bad length field
  • 2586: times.sql: procedure times() crashes the server
  • 2593: test sql/src/test/Tests/load_dec_as_int.sql.src fails a file sql/src/test/load_dec_as_int.sql is missing
  • 2609: insert into large number of columns
  • 2634: !ERROR: CTrefine: both BATs must have the same cardinality …
  • 2640: VOC test fails multi-threaded
  • 2647: M5 breaks with huge SQL query.
  • 2648: ALTER SEQUENCE … RESTART WITH (SELECT NULL) NO CYCLE is accepted
  • 2673: select a string column from a view over a table with primary key crashes
  • 2677: SQLColAttribute using SQL_DESC_OCTET_LENGTH doesn’t return the maximum length
  • 2679: timestamp selection based on now() takes too long
  • 2680: make clean too eager
  • 2698: test sql/src/test/bugs/Tests/except-union-intersect-bug-sf-1146079.SQL.sh produces wrong result with multi-threaded execution
  • 2704: temporary tables on readonly mode
  • 2705: Timer information problems
  • 2708: function with different value for arguments crashes mserver
  • 2710: implement \d{t,v,s,S,…} to describe other (or only) objects in the database
  • 2713: wrong error message when dropping an un-existing view with the same as an existent table.
  • 2715: Join with 2 AND-ed conditions where one is LIKE/ILIKE returns too many results
  • 2717: function call in readonly mode.
  • 2720: Allow a client to close a prepared handle
  • 2725: mclient/mapilib aborts during connect
  • 2726: join on two literal tables leads to
  • 2727: allow dumping database with INSERT INTO statements
  • 2729: mserver5: ../../../src/server/rel_bin.mx:537: exp_bin: Assertion `0’ failed.
  • 2730: select * from sequence crashes mserver5
  • 2733: MAL parser accepts 1 + 1 + 1, MAL interpreter only computes 1 + 1
  • 2735: complex SQL query leads to multiple TypeExceptions
  • 2737: Sphinx module update, adding limit/max_results support
  • 2738: MonetDB ‘allows’ binding and connecting to ports above 65535 (has patch)
  • 2743: mapi_next_result skips over results (losing output)
  • 2744: UNLOCKED causes mserver to work indefinitely
  • 2745: foreign key type mismatch causes MAL stacktrace
  • 2748: COPY INTO does not work correctly with backslashes in VARCHARs
  • 2750: Function arguments of type string described not completely in SQL catalog
  • 2752: CALL function without warning
  • 2753: check existence of external names for SQL functions/procedures at creation time
  • 2757: ORDER BY DESC + LIMIT incorrectly yields empty result
  • 2768: “no such column ‘u.name’” in users system view
  • 2773: starting database ’test’… FAILED
  • 2786: crash when first connection is with another user than monetdb
  • 2788: stop -a complains about already stopped databases
  • 2790: View returns erroneous result for squared average function as compared to query

The detailed list of changes can be found in the source code Mercurial logs.