January 2014

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

Jan 2014-SP3##

Build Environment

  • Fix configure to continue without Python if the python binary is too old. This instead of always aborting configure if python happens to be too old.

Bug Fixes

  • 3487: dead link to “Professional services”
  • 3500: MonetDB driver wants an empty string for SQLTables and SQLColumns API calls, where other drivers expect NULL
  • 3514: mserver5 crash due (assertion failure in gdk_select.c)
  • 3515: mserver5 crash due (assertion failure in gdk_bat.c)
  • 3519: Uppercase TRUE/FALSE strings cannot be converted to boolean values

Jan 2014-SP2

Build Environment

  • Lots of minor fixes were made for potential defects found by Coverity Scan.
  • On Windows we now build the geom module against version 3.4.2 of the geos library.

Client Package

  • ODBC: Implemented {call procedure-name(…)} escape. The version {?=call …} is not implemented.

Bug Fixes

  • 3424: numeric values at the front of strings determines whether CAST works successfully
  • 3439: Python driver drops milliseconds from timestamps
  • 3446: SET READ ONLY forgets previous changes
  • 3455: String columns unusable from 64-bit .NET via ODBC
  • 3456: Insert fails
  • 3457: When kernel of remote client crashes, the connection remains established on server side
  • 3458: mserver5 crash on SQL: SELECT COUNT() FROM SYS.TABLES HAVING COUNT() > 0
  • 3461: mserver5 crash on SQL: SELECT * FROM SYS.ARGS WHERE FUNC_ID NOT IN (SELECT ID FROM SYS.FUNCTIONS) OR FUNC_ID NOT IN (SELECT * FROM SYS.FUNCTIONS)
  • 3462: Invalid SQL (IN with subquery which returns multiple columns) is accepted
  • 3463: Crash on SELECT with SERIAL aggregation and GROUP BY column alias’s
  • 3468: Local temporary table persists across sessions
  • 3469: Absolute network paths considered invalid for COPY INTO … FROM statement.
  • 3473: Various memory leaks in SQL compilation
  • 3477: ODBC driver raises “unexpected end of input” for prepared string parameter from .NET application
  • 3481: Cannot run multiple COPY INTO statements in one ’s’-command
  • 3482: Crossproduct error

Jan 2014-SP1

Build Environment

  • Configure now enables the SQL front end by default.

Merovingian

  • monetdb destroy -f now also works on running databases

Bug Fixes

  • 3442: COPY INTO … LOCKED reports incorrect count
  • 3443: DROP INDEX crashes server with BATsubselect: invalid argument: b must have a dense head
  • 3444: AND after ON () of LEFT OUTER JOIN with certain expressions will cause crash
  • 3452: ODBC driver build fails on Mac OS X due to a conflicting types for the SQLColAttribute with the unixODBC library

Jan 2014

Build Environment

  • Created development packages for RPM based systems and Debian/Ubuntu containing the files needed to create extensions to the SQL front end.
  • Removed Mx, the literate programming tool. All code for the server is now pure C.
  • Created packages for RPM based systems and Debian/Ubunty containing the MonetDB interface to the GNU Scientific Library (gsl).
  • We no longer install the .la files in our Fedora/Debian/Ubuntu packages.

Client Package

  • ODBC: Implemented {fn scalar()} and {interval …} escapes.

python2

  • Changed defaults for connecting (defaults to unix socket now).
  • Unix sockets partially working for control protocol.
  • Add support for unix socket.

python3

  • Changed defaults for connecting (defaults to unix socket now).
  • Unix sockets partially working for control protocol.
  • Add support for unix socket.

R

  • The R connector is now distributed in the source code packages.

MonetDB Common

  • The join code has been completely rewritten. It now optionally uses candidate lists, like the select code that was introduced in the previous release.
  • A new indexing structure for range selections on unsorted data has been added.
  • The vmtrim thread is no longer started by default on 64 bit architectures. The vmtrim thread monitors memory usage and drops BATs from memory when memory gets tight. However, in the age of large address spaces and virtual memory, the kernel does a good enough job. And in addition to dropping BATs, the thread also destroyed indexing structures which would have to be recreated the next time they were needed.
  • Cleaned up some of the parameters dealing with memory usage.
  • If available on the system, we now use atomic instructions for latching.
  • Removed some unused fields in the atomDesc structure. This change requires a complete recompilation of the whole suite.
  • Replaced the mutex implementation for both GNU C and Visual Studio with a home-grown implementation that uses atomic instructions (_sync() in gcc, _Interlocked() in VS).

SQL

  • Added support for quantiles (generalization of median). Usage: SELECT quantile(column_name,0.25) FROM table_name; The value should be in the range 0..1.

Bug Fixes

  • 3040: Wrong NULL behavior in EXCEPT and INTERSECT
  • 3092: ODBC client doesn’t support scalar function escape
  • 3198: SIGSEGV insert_string_bat (b=0x7fffe419d0a0, n=0x7fffc4006010, append=0) at gdk_batop.c:196
  • 3210: Unexpected concurrency conflict when inserting to 2 tables simultaneously and querying one of them
  • 3273: Add support to Python DBAPI package for timetz, inet and url types
  • 3285: no such table ‘queryHistory’
  • 3298: GDKmmap messages and monetdb start db takes very long
  • 3354: Introduce query time-out
  • 3371: (i)like generates batloop instead of algebra.likesubselect
  • 3372: Large group by queries never complete - server at 100% cpu(all cores) until MonetDB stopped
  • 3383: Bad performance with DISTINCT GROUP BY
  • 3391: Bad performance with GROUP BY and FK with out aggregate function
  • 3393: “COPY .. INTO …” - escape of string quotes
  • 3399: server crashed on simple (malformed) query
  • 3401: inconsistent/strange handling of invalid dates (e.g. 2013-02-29) in where clause
  • 3403: NOT NULL constraint can’t be applied after deleting rows with null values
  • 3404: Assertion `h->storage == STORE_MMAP’ failed.
  • 3408: nested concat query crashed server
  • 3411: (disguised) BETWEEN clause not recognised. Hence no rangejoin.
  • 3412: Boolean expressions in WHERE clause, result in incorrect resulsts
  • 3417: Nested Common Table Expressions Crash
  • 3418: Segmentation fault on a query from table expression
  • 3419: Database does not start after upgrade
  • 3420: Database does not start after upgrade
  • 3423: Group by alias with distinct count doesn’t work
  • 3425: Temporal extraction glitches
  • 3427: Consistent use of current_timestamp and now()
  • 3428: Aggregation over two columns is broken
  • 3429: SAMPLE on JOIN result crashes server
  • 3430: Wrong temporary handling
  • 3431: SQLGetInfo returns incorrect value for SQL_FN_NUM_TRUNCATE
  • 3432: MonetDB SQL syntax incompatible with SQL-92 syntax
  • 3435: INDEX prevents JOIN from discovering matches
  • 3436: COPY INTO from file containing leading Byte Order Mark (BOM) causes corruption