MonetDB 4.6.0 & MonetDB/SQL 2.6.0 was released on February 14th, 2005, (the Valentijn release). Since the previous release, many improvements have been made. A detailed list of changes can be found in the change log of the CVS repository. A summary with the highlights is given below.
SQL front end MonetDB/SQL now survives the famous 'crashme' program used by MySQL to analyze the features of a DBMS implementation.
Several improvements with regard to the SQL integrity and compliance with the standard were made, as well as new supporting features:
- The LIKE operator has been overhauled for better support for search expressions
- Closer conformance to the SQL standard for types
- INT(x) is no longer allowed/supported
- SMALLINT, INT and BIGINT are now supported 'native' types
- convenience aliases for TINYINT (mapped on SMALLINT) and MEDIUMINT & INTEGER (mapped on INT)
- CHARACTER VARYING and VARCHAR now need a mandatory length specification, ie. VARCHAR(x)
- added support for CHARACTER LARGE OBJECT next to CLOB
- Constraints that are not given a name explicitly now get an explanatory name, ie. mytable_mycolumn_pkey instead of c102773
- Improved dumping support for MapiClient: now constraints and indexes are also dumped
- Various fixes and optimizations in JDBC and JdbcClient
- resolved a bug where the JDBC driver would hang if the server would stop sending results prematurely
- improved support for types, ie. better and more consistent mapping from server to JDBC types
- Newly implemented java.sql.ResultSet methods: getCatalogName(), isCaseSensitive(), isSearchable(), isCurrency(), isSigned() and getColumnClassName()
- JdbcClient now correctly escapes identifier names in database dumps and describe actions
- added -e of --echo flag to JdbcClient to echo input while reading from a file: results in a clear dialog, instead of answers only
- small optimizations in the socket code, amongst others: avoidance of unnecessary memory copy, skipping of empty blocks.
- SQLWarnings are now added to the warning lists of the Connection, Statement, and ResultSet objects for various problems or inconsistencies encountered by the driver, that are not fatal.
- INTERVAL works with TIME and TIMESTAMP
- Improvement of SQL parser errors: can lead to exact specification of what is expected in certain cases
Mbedded The code base has been reduced and the configuration parameterized to allow MonetDB to be linked with your application. The smallest system we have been able to run MonetDB was a single-board Linux computer, called the Gumstixs.
Application interfaces The MapiClient command line tool has been extended to enable automatic timing. Reading scripts as part of the interaction is now supported.
Steffen Goeldner joined our team and completely revamped the Perl DBI library interface.
JDBC: see above (section "SQL front end").
MIL cleanup The MIL syntax cleanup, started in version 4.4, was finished. The parse now denies all "legacy" (i.e., pre 4.4.0_rc0) syntax alternatives.
Kernel improvements MonetDB was known to crash on for example large cross-product calculations. This has been prevented by better boundary checking code at several places.
Documentation improvements The MonetDB source code has been largely moved to texi as a preparation step to improve documentation generation.
Code base improvements
Source code indentation has been normalized throughout the code base.