August 2011

August 2011 sjoerd Thu, 01/26/2012 - 15:43

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 bugfix release

  • Added a fix for bug #2834, which caused weird (failing) behaviour with PreparedStatements.
  • 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 bugfix release

Client Package
  • ODBC: Implemented a workaround in SQLTables for bug 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.
  • Python DB API connect() function now supports PEP 249-style arguments user and host, bug #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).
  • Fixed bug 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
  • 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: 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 bugfix release

  • Fixed a bug when using default values for interval columns. Bug 2877.
  • A bug was fixed where deleted rows weren't properly accounted for in all operations. This was bug 2882.
  • A bug was fixed which caused an update to an internal table to happen too soon. The bug could be observed on a multicore system with a query INSERT INTO t (SELECT * FROM t) when the table t is "large enough". This was bug 2883.
Client Package
  • Fixed Perl DBD rowcount for larger results, bug #2889
  • Perl: We now distinguish properly between TABLE and GLOBAL TEMPORARY (the latter are recognized by being in the "tmp" schema).
  • Perl: fixed a bunch of syntax errors. This fixes bug 2884. With thanks to Rémy Chibois.
  • Perl: Fixed DBD::monetdb table_info and tabletype_info. This fixes bug 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
  • Fixed a problem where MAL variables weren't properly cleared before reuse of the data strucutre. This problem could cause the data flow scheduler to generate dependencies between instructions that didn't actually exist, which in turn could cause circular dependencies among instructions with deadlock as a result. Bugs 2865 and 2888.
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: and 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 feature release

Build Environment
  • Fixed Fedora 15 (and presumably later) configuration that uses a tmpfs file system for /var/run. This fixes bug 2850.
  • The default OID size for 64-bit Windows is now 64 bits. Databases with 32 bit OIDs are converted automatically.
Java Module
  • 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
  • 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, and made it the default MonetDB::CLI provider.
  • Made 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
  • Implemented NULL checks in the geom module. Now when given NULL as input, the module functions return NULL instead of an exception. This fixes bug 2814.
  • 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.
  • Fix incorrect (misleading) path for pidfile in pidfile error message, bug #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