August 2011

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

The Aug2011 release is the first release where the default size of OIDs on 64-bit WIndows systems is 64 bits.  Before, the default on Windows was 32 bits.  On all other 64-bit platforms, the default size of OIDs was also 64 bits.  This means that, on 64-bit Windows systems, the database needs to be converted.  This is done automatically when the database is first opened, but as always with automatic conversions, it is a good idea to make a backup first.

The Aug2011 uses a slightly different catalog from earlier releases.  The database is automatically updated when first opened. This release is the last release that comes with a JDBC driver that can be used with Java 1.4 and 1.5, also known as JDBCv3.

Aug 2011-SP3

SQL

  • 2834, which caused weird (failing) behaviour with PreparedStatements.

Merovingian

  • Fixed a bug where monetdbd’s socket files from /tmp were removed when a second monetdbd was attempted to be started using the same port.

Bug Fixes

  • 2875: incomplete database initialization
  • 2912: Function body disappears after loading data - error message: SQLException:sql.resultSet:Cannot access descriptor
  • 2919: Add column and select in same transaction
  • 2920: Updated database from Aug2011 to Dec2011 make queries fail with “Subquery result missing”.
  • 2921: complex where clause broken
  • 2923: Multiplication and cast from decimal to integer leads to 0 value
  • 2924: use LIKE with ESCAPE ignores OR operator
  • 2928: Cannot update a field with a count query based on an other table

Aug 2011-SP2

Client Package

  • 2908.
  • Small improvement to mclient’s table rendering for tables without any rows. Previously, the column names in the header could be squeezed to very small widths, degrading readability.
  • 2901
  • mclient now checks the result of encoding conversions using the iconv library.
  • Fixed a source of crashes in mclient when a query on the command line using the -s option is combined with input on standard input (e.g. in the construct mclient -s ‘COPY INTO t FROM STDIN …’ < file.csv).
  • 2897 where slow (network) reads could cause blocks to not be fully read in one go, causing errors in the subsequent use of those blocks. With thanks to Rémy Chibois.
  • Fixed a bug in mclient where processing queries from files could result in ghost empty results to be reported in the output

Merovingian

  • Resolved problem where monetdbd would terminate abnormally when databases named ‘control’, ‘discovery’ or ‘merovingian’ were stopped.
  • monetdbd get status now also reports the version of the running monetdbd
  • Improved response time of ‘monetdb start’ when the database fails to start.
  • Fixed a bug in monetdbd where starting a failing database could incorrectly be reported as a ‘running but dead’ database.
  • To avoid confusion, all occurrences of merovingian were changed into monetdbd for error messages sent to a client.

Bug Fixes

  • 2346: mkey.bulk_rotate_xor_hash MAL exception
  • 2712: un-rolled-back savepoints cause crash upon scenario exit
  • 2774: COPY INTO of double (~1.0e-310) cannot be imported.
  • 2890: Slow execution of COUNT in combination with DISTINCT
  • 2894: No consistent behavior of implicit cast of integer to double
  • 2897: Mapi.pm: short reads not handled when reading blocks from server
  • 2898: order by for multiple (two) columns fails for large tables when second ordering is ‘desc’: “mat.refine_reverse’ undefined”
  • 2900: rand(int) should not return NULL
  • 2901: Make keyword arguments in Python DB API connect() function more standard
  • 2904: TypeException after calling UDF in other than sys schema (when it is initialised)
  • 2906: “ALTER TABLE mytable SET READ ONLY” results in server segfault
  • 2908: SQL query produces error with MAL statements
  • 2909: query result is not displayed when history = true

Aug 2011-SP1

SQL

Client Package

  • 2889
  • Perl: We now distinguish properly between TABLE and GLOBAL TEMPORARY (the latter are recognized by being in the “tmp” schema).
  • 2884. With thanks to Rémy Chibois.
  • 2885. With thanks to Rémy Chibois.
  • mclient: fix display of varchar columns with only NULL values.
  • Fixed a bug in mclient/msqldump where an internal error occurred during dump when there are GLOBAL TEMPORARY tables.

MonetDB5 Server

Bug Fixes

  • 2865: mserver5 –set gdk_nr_threads=2 –forcemito: deadlock during first SQL client connect on virgin (empty) DB
  • 2877: assertion failed when creating table with default interval
  • 2879: A SELECT query fails to produce some results
  • 2882: Delete of some records don’t work on Monetdb
  • 2883: insert into t (select * from t) bogus in multithreaded execution
  • 2884: Mapi.pm and GetInfo.pm syntax fixes for array usage
  • 2885: DBD::monetdb table_info error
  • 2887: Division by zero error, when should not divide at 0
  • 2888: test/null/null_in_case.sql hangs server
  • 2889: Mapi::getBlock is erasing query count on second call

Aug 2011

Build Environment

  • 2850.
  • The default OID size for 64-bit Windows is now 64 bits. Databases with 32 bit OIDs are converted automatically.

Java Module

  • 2828
  • Added a naive implementation for PreparedStatement.setCharacterStream
  • The obsolete Java-based implementation for PreparedStatements (formerly activated using the java_prepared_statements property) has been dropped

Client Package

  • msqldump now also accepts the database name as last argument on the command line (i.e. without -d).
  • Made error messages from the server in mclient go to stderr, instead of stdout.
  • Implemented SQL_ATTR_METADATA_ID attribute. The attribute is used in SQLColumns, SQLProcedures, and SQLTablePrivileges.
  • Implemented SQLTablePrivileges in the ODBC driver.
  • mclient now automatically sets the SQL `TIME ZONE’ variable to its (the client’s) time zone.
  • Removed perl/Cimpl, MonetDB-CLI-MapiLib and MonetDB-CLI-MapiXS
  • Switched implementation of MonetDB::CLI::MapiPP to Mapi.pm, and made it the default MonetDB::CLI provider.
  • Made Mapi.pm usable with current versions of MonetDB again
  • When the first non-option argument of mclient does not refer to an exising file, it now is taken as database name. This allows to simply do mclient mydb.

MonetDB5 Server

  • Make crackers optional and disable by default, since it wasn’t used normally
  • Authorisation no longer takes scenarios into account. Access for only sql or mal is no longer possible. Any credentials now mean access to all scenarios that the server has available.

Geom Module

Merovingian

  • Fixed confusing ‘Success’ error message for monetdb commands where an invalid hostname was given
  • The path to the mserver5 binary is no longer returned for the mserver property with monetdbd get for a dbfarm which is currently served by a monetdbd. Since the called monetdbd needs not to be the same as the running monetdbd, the reported mserver5 binary may be incorrect, and obviously lead to confusing situations. Refer to the running monetdbd’s logfile to determine the mserver5 binary location instead.
  • Added -n option to monetdbd start command, which prevents monetdbd from forking into the background.
  • 2851
  • added status property to get command

MonetDB Common

  • Removed conversion code for databases that still used the (more than two year) old format of “string heaps”.
  • On Windows and Linux/Unix we can now read databases built on the other O/S, as long as the hardware-related architecture (bit size, floating point format, etc.) is identical.
  • Implemented automatic conversion of a 64-bit database with 32-bit OIDs to one with 64-bit OIDs.

Bug Fixes

  • 2336: ANSI Client clobbered data ::SQLTables
  • 2579: SQL: incorrect cast from double to int
  • 2701: Divide by zero in OPTmitosis with select name from tables
  • 2814: Throws exception if a SQL/GIS takes argument null
  • 2817: Failed to find a table producing function
  • 2828: No Socket Timeout: MonetDB Java client hangs forever on reads and consume threads when the database is crashed
  • 2836: compilation fails when –with-valgrind in effect
  • 2838: Nested case results in message: “Predicate CASE 42: time to implement some more”
  • 2839: test monetdb5/optimizer/Tests/inlineFunction2 fails
  • 2840: Test monetdb5/optimizer/Tests/reorder01 fails
  • 2841: Tests monetdb5/optimizer/Tests/inline0{2,3,6} fail
  • 2842: Tests monetdb5/optimizer/Tests/dataflow{,3,4} lack stable output
  • 2845: INSERT INTO fails (hangs) when values are derived from SELECT, in combination with a FOREIGN KEY constraint
  • 2847: SELECT statement throws str_cast exception
  • 2848: Problem when reusing column name as CASE… WHEN alias in subquery
  • 2849: Multi-column constraints cause data corruption
  • 2850: monetdbd cannot open pidfile on Fedora 15
  • 2851: Incorrect error message when pidfile cannot be opened
  • 2852: Query with CASE and nested functions results in very long execution
  • 2855: test monetdb5/modules/mal/Tests/inspect00 fails
  • 2856: test monetdb5/optimizer/Tests/dataflow fails
  • 2857: obsolete conditional HAVE_LIBXML2 still used on Windows
  • 2859: prepare statement tests fail with number of arguments mismatch
  • 2860: /etc/init.d/monetdb5-sql uses incorrect PIDFILE to test if monetdb is running
  • 2862: foreign key self references cause violation upon alter table add constraint…
  • 2866: test monetdb5/optimizer/Tests/dataflow.mal fails on all Windows & Solaris (only)
  • 2868: tests tst285 & pithole fail on some Windows platforms
  • 2869: SQL tests with “LIKE” crash on Windows2008 & WindowsXP while working fine on Windows7