February 2013

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

Feb 2013

Testing Environment

  • enabled “top-level” Mtest.py So far, while Mtest.py could be called in any subdirectory of the MonetDB source tree (and could then run all tests in the entire sub-tree), it was not possible to call Mtest.py in the top-level MonetDB source directory to run all tests. Instead, to run all tests, Mtest.py had to be called at least 4 times, once in each of these directories: “clients”, “monetdb5”, “sql”, “geom”. Now, it is possible to call Mtest.py once in the top-level MonetDB source directory to run all tests in one go. The behaviour of calling Mtest.py in any subdirectory, including the four mentioned above, did not changed, other than that now obsolete command line options “-p / –package ” and “-5 / –monetdb5” have been removed.

Java Module

  • merocontrol was changed to return server URIs, and lastStop time. Connections and dbpath were removed.
  • Mapi protocol v8 support was removed from MapiSocket. Protocol v8 has not been used by the servers any more since Apr2012 release

Client Package

  • Mapi protocol v8 support was removed from all client drivers. Protocol v8 has not been used by the servers any more since Apr2012 release
  • The tool mnc was removed from installations
  • msqldump: Implmented an option (–table/-t) to dump a single table.
  • Changed msqdump’s trace option to be in line with mclient. In both cases, the long option is –Xdebug and the short option is -X.

MonetDB5 Server

  • mserver5: The –dbname and –dbfarm options have been replaced by the single –dbpath option.
  • The scheduler of mserver5 was changed to use a fixed set of workers to perform the work for all connected clients. Previously, each client connection had its own set of workers, easily causing resource problems upon multiple connections to the server.

Merovingian

  • Upgrade support for dbfarms from Mar2011 and Aug2011 was dropped
  • monetdb status now uses a more condensed output, to cater for the uris being shown, and prints how long a database is stopped, or how long ago it crashed
  • monetdb status now prints the connection uri for each database, when available. The connections and database path properties have been dropped.
  • monetdb status now prints last crash date only if the database has not been started since.

Bug Fixes

  • 2291: small doubles end up as NULL after arithmetic
  • 3215: Calculation Date function using interval and year
  • 3033: stethoscope needs better documentation
  • 3084: Timestamp arithmetic very slow (especially on Windows)
  • 3125: Python tests fail after recent Python API changes
  • 3172: assertion fails on table function with subselects as parameters
  • 3178: one scan is enough to implement ALGstdev_@1 in monetdb5/modules/kernel/algebra.mx
  • 3179: LIKE: batstr.like+algebra.uselect called instead of pcre.like_filter
  • 3193: Expressions not supported in the GROUP BY or ORDER BY clause.
  • 3216: “unknown property” error setting format and width in .monetdb file
  • 3217: gdk_posix fails to compile under NetBSD
  • 3221: can no execute large statements
  • 3222:  Monet DB giving wrong value from a table when a value is queried after insertion/ Data Loss
  • 3225: mserver segfault on select
  • 3227: MT_set_lock() call on an non-initialized lock

Feb 2013-SP1

Bug Fixes

  • 3228: Python client - mapi.Connection.__getbyes should throw exception when 0 bytes received from socket
  • 3229: GRANT does not work for UPDATE
  • 3230: GRANT SELECT priveleges not set in SQL FUNCTIONs
  • 3233: getting a crash of server with segmentation fault on SLES 11 64 SP2
  • 3235: MapiPP.pm unquote ‘0’ as ‘undef’
  • 3236: mclient \d produces no output
  • 3237: Assertion on BATgroup_internal
  • 3241: SEGFAULT on string processing when using optimizer.reduce()
  • In addition to these changes, we also fixed the database upgrade.  Due to internal changes in the Feb2013 release, some changes had to be made to the SQL catalog.  These changes were done incompletely in the Feb2013 release.  This has now been fixed in the Feb2013-SP1 release.  Both a direct upgrade from Oct2012 and from Feb2013 should work.

Feb 2013-SP2

MonetDB5 Server

  • Fixed argument parsing of mapi.reconnect() with 5 arguments.

MonetDB Common

  • Fixed a bug in case the candidate list is dense and completely outside the range of the bat being worked upon.

Java Module

  • The pre-compiled .jar files are now created using Java 7 instead of Java 6.

SQL

  • Added TEMPORARY to the non-reserved keywords, ie no need for double quotes when used as identifier.

Bug Fixes

  • 3245: SELECT from a view of a view
  • 3250: SELECT fails with subquery result missing when adding condition
  • 3251: Name of coercions optimizer wrong in opt_wrapper.c
  • 3257: stddev_pop and stddev_samp break during a GROUP BY
  • 3259: BETWEEN clause not producing rangejoin
  • 3261: Incorrect empty string values in query results
  • 3264: select + group by expression alias from a view kills database by signal SIGSEGV
  • 3276: Problem with starting monetdb on debian sqeeze

Feb 2013-SP3

MonetDB Common

  • System calls to flush files to disks were added. This may cause some slowdown, but it should provide better durability, especially in the face of power failures.

Java Module

  • 3290
  • Fixed bug where PreparedStatement.setBigDecimal() wouldn’t format its input well enough for the server causing odd errors.
  • 3288

Bug Fixes

  • 3265: import decimal with copy into fails
  • 3269: copy into results into gdk_utils.c:728: GDKfree_: Assertion `(size & 2) == 0’ failed.
  • 3277: count( case when COL1 in ( NUM1 , NUM2 ) then COL2 end ) cause problems in functions
  • 3278: SQL order by only sorts on first call
  • 3279: column alias combined with ORDER BY returns wrong data
  • 3280: median function breaks when the column contains NULL values
  • 3281: pqueue.enqueue_max type mismatch error
  • 3282: bulk loaded data corrupted when restart monetdb
  • 3286: TypeException when creating table with data by selecting from sys.storagemodel()
  • 3287: lower(name) clause in query causing “BATsubselect: invalid argument..” error
  • 3288: PreparedStatements may throw NullPointerException when setting parameter
  • 3289: SELECT: no such binary operator ‘sql_add(boolean,boolean)’
  • 3290: Faulty type handling/casting in JDBC driver
  • 3295: mserver5 fails to start properly: “address JSONrenderobject not found”
  • 3296: Type checking in table functions
  • 3297: Data type changes when arithmetic in prepared statements.
  • 3300: explain select from storagemodel causes mserver5 to segfault
  • 3302: test exists-select.Bug-2933.sql fails after recent changes
  • 3303: Assertion on concurrent write

Feb 2013-SP4

Merovingian

Bug Fixes

  • 2781: SQL localtime() returns GMT time
  • 2962: client timezone information needs to be handled also for modifications to timestamp values
  • 3232: The function weekofyear returns results not according to the iso 8601 standard
  • 3255: M5 tests inlineFunction & ifthencst fail since changeset 207ed7d7e03a
  • 3292: monetdb status should print full line
  • 3307: distinct multicolumn performance and implementation suggestion for count distinct
  • 3310: Cast value to integer gives wrong result
  • 3311: strLength assertion on join and concat
  • 3313: Assertion in rel2bin_project
  • 3315: Incorrect behavior with subqueries in DELETE
  • 3317: correlated subselect does not work
  • 3318: UPDATE does not work with DECLEAREd TABLE in FUNCTION
  • 3319: UNIQUE column in DECLAREd TABLE in FUNCTION results in segfault
  • 3329: Function AVG fails during runtime in a procedure
  • 3330: Corrupt mitosis plan with group-by query
  • 3332: MEDIAN: no such operator ‘median(decimal)’
  • 3336: DB files not removed if all rows are deleted, even after restart
  • 3337: Monet ODBC gives wrong schema information
  • 3339: Segvault in complex function call
  • 3340: crash on seeming incorrect SQL query
  • 3341: segfault caused by select rank() on a newly-loaded table
  • 3342: incorrect automatic cast from decimal to tinyint
  • 3345: copy binary into fails with the wrong error message
  • 3346: Deadlock in mal_dataflow’s q_dequeue() (SciQL-2 branch)
  • 3348: SQL: LIKE incorrect with _
  • 3349: When selecting everything from a joined result, column contents are incorrect in one of my use cases.
  • 3351: gzip’ed files cannot be bulkloaded into DB
  • 3352: Median function with decimal type doesn’t work
  • 3353: Readonly tables call for UNSET
  • 3358: Remote client connection stays in CLOSE_WAIT state
  • 3360: uninitialized memory causing bad output in query plans
  • 3362: ALTER TABLE operations silently remove previously set READ ONLY property
  • 3363: a join causes SIGSEGV after creation of Unique Key
  • 3367: Fully qualified order by column gives “relational query without result”
  • 3369: \0 Byte appears in MAPI

Feb 2013-SP5

Client Package

MonetDB Common

  • 3376 made clear that it didn’t work very well. In addition, on Linux at least, the heap cache slows things down.

Java Module

Bug Fixes

  • 3323: Heapcache bugs/performance issues
  • 3331: SAMPLE will return same result every time.
  • 3356: DatabaseMetaData.getColumns() doesn’t work correctly when using index-based getters
  • 3367: Fully qualified order by column gives “relational query without result”
  • 3368: BAT sortedness info ignored on ORDER BY and TOPN
  • 3370: SQL environment settings are updated even when the set statement fails
  • 3373: Setting table to read-only (Bug 3362) fails on big-endian
  • 3375: LIKE join: BATfetchjoin does not hit always
  • 3376: COPY INTO fails with HEAPextend: failed to extend: MT_mremap() failed
  • 3377: Query interfering with next query in same transaction, after SP4
  • 3380: Python DBAPI driver throws exception when fetching EXPLAIN results
  • 3381: Windows ODBC driver hangs or crashes on simple queries

Feb 2013-SP6

MonetDB5 Server

  • Fixed a possible buffer overflow in the COPY INTO code.
  • 3258.

Merovingian

Client Package

  • mclient: Fixed a bug where the -H option only worked if the readline history file already existed. Now we properly create and use the history file.
  • ODBC: Fixed interpretation SQL_C_SLONG/SQL_C_ULONG/SQL_C_LONG to refer to a 32 bit integer always (i.e. “int” on 64 bit architectures despite the name and the Microsoft documentation). This seems to be the consensus.
  • ODBC: Fixed transaction level: MonetDB only supports the highest level (SQL_TXN_SERIALIZABLE), so setting the transaction level can be accepted and ignored.

MonetDB Common

  • Stopped using the deprecated sbrk() system call.
  • Fixed a problem when reverse sorting a sorted column.
  • 3243.
  • 3388.

SQL

  • Fixed a bug where the server at some point stopped saving compiled queries in the SQL query cache.

Bug Fixes

  • 3243: Segmentation fault (possible data corruption) after clean shutdown
  • 3258: Scheduling issues
  • 3368: BAT sortedness info ignored on ORDER BY and TOPN
  • 3374: UNIQUE constraint does not set tkey property on the corresponding BAT
  • 3382: Response to PREPARE emtpy if query contains a LIMIT
  • 3385: Simple query fails with ‘identifier not found’
  • 3387: mclient does not properly double quote schema names when using autofill tab
  • 3388: case statement in “order by” clause doesn’t work when used together with “group by”
  • 3389: median function with “group by” - SIGSEGV
  • 3392: ODBC datatype conversion for INTEGER not working properly
  • 3394: “Cannot find column type” error in temporary tables in functions
  • 3395: error occurred during a query: “‘CASE WHEN” sentence
  • 3396: Improper UDF expansion
  • 3397: Error in ODBC-Driver when using Prepared Statements
  • 3398: Cannot stop monetdbd after erroneously starting an uninitialized dbfarm