Announcement: New Jun2016 Feature release of MonetDB suite
sjoerd at acm.org
Thu Jun 23 09:59:44 CEST 2016
The MonetDB team at CWI/MonetDB BV is pleased to announce the
Jun2016 feature release of the MonetDB suite of programs.
More information about MonetDB can be found on our website at
For details on this release, please see the release notes at
As usual, the download location is <http://dev.monetdb.org/downloads/>.
Jun 2016 feature release
* Extended the storage() table producing function to also accept
storage([schemaname [, tablename [, columnname]]])
* The :bat[:oid,:any] type descriptor has been turned into its
columnar version :bat[:any]
* Converted the *.mal scripts into *.malC versions to prepare for
removal of the mserver console.
* Removed functions mat.hasMoreElements, mat.info, mat.mergepack,
mat. newIterator, mat.project, mat.pack2, mat.sortReverse,
mat.sort, and mat.slice.
* Removed grouped aggregate functions from the aggr module in which
the groups were indicated by the head column of the bat to be
aggregated. Use the interface with a separate group bat instead.
* The server now stops executing a query when the client disconnects.
* Removed algebra.join. Use algebra.subjoin instead.
* Removed algebra.antijoin. Use algebra.subantijoin or
* The MAL function 'leftfetchjoin' is renamed to its relational
algebra version 'projection'
* The generic property handling scheme has been removed. It was used
in just a few places, for widely different purposes and contained
* Removed functions str.iconv and str.codeset. Internally, strings
are always in UTF-8 encoding, so we can't allow code set
* Removed algebra.like with a BAT argument. Use algebra.likesubselect
* Removed algebra.leftjoin. Use algebra.subleftjoin or
* Removed algebra.tdiff and algebra.tinter.
* Removed algebra.sample. Use sample.subuniform instead.
* Removed algebra.select. Use algebra.subselect instead.
* Removed algebra.revert.
* Removed bat.order and bat.orderReverse functions.
* Changed client.getUsers to return two bats, one with the user id
and one with the user name.
* Implemented algebra.subdiff and algebra.subinter.
* Removed algebra.tdifference and algebra.tintersect.
* Removed algebra.tunion.
* A new package MonetDB-lidar (Fedora) or libmonetdb5-server-lidar
(Debian/Ubuntu) has been created to work with LiDAR data.
* Implemented a systemd configuration file for a monetdbd.service on
systems that support it (Fedora, newer Ubuntu).
* The Ruby client is now in a separate repository
(http://dev.monetdb.org/hg/monetdb-ruby) and released
* The geom module has been completely overhauled. Types are now
specified as GEOMETRY(POINT) instead of POINT, old functions have
been removed, new ones introduced. However, even with all the
changes, a database upgrade should still be possible (as always,
make a backup first).
* Removed BATconst. Use BATconstant instead.
* Changed BATconstant. It now has a new first argument with the
seqbase for the head column.
* Removed BATmmap. It was no longer used.
* BUNdelete and BATdel don't accept a foce argument and only allow
deleting values that have not yet been committed. BUNdelete
exchanges the deleted value with the last value (if the deleted
value isn't the last value). BATdel compacts the BAT by shifting
values after the deleted values up. The list of to-be-deleted
values in BATdel must be sorted and unique.
* Removed BUNreplace from list of exported functions. It wasn't used,
and there is still BUNinplace and void_inplace that do more-or-less
the same thing.
* Changed BATderiveHeadProps to BATderiveTailProps (and it now works
on the tail column).
* Removed unused functions BATalpha, BATdelta, and BATprev.
* Removed function VIEWcombine. Use BATdense instead.
* Removed "left" parameter from BUNinplace. It wasn't used since the
BAT it works on is dense headed.
* Created function BATdense to easily create a [void,void] BAT with
specified seqbases for head and tail and a count.
* Removed function BATmark. When all head columns are dense, BATmark
basically only created a new [void,void] BAT.
* Renamed BATsubsort to BATsort.
* Removed "sub" from the names of the function BATsubselect,
BATthetasubselect, BATsubcross, BATsubleftjoin, BATsubouterjoin,
BATsubthetajoin, BATsubsemijoin, BATsubdiff, BATsubjoin,
BATsubbandjoin, BATsubrangejoin, and BATsubunique.
* Removed BATsubleftfetchjoin: it was not used.
* Removed BATcross1. Use BATsubcross instead.
* Removed all versions of the SORTloop macro.
* Removed Batkdiff. Use BATsubdiff instead.
* Removed BATselect. Use BATsubselect instead.
* Removed BATsemijoin. Use BATsubsemijoin instead.
* Removed BATjoin. Use BATsubjoin instead.
* Removed BATleftjoin. Use BATsubleftjoin or BATproject instead.
* Removed BATleftfetchjoin. Use BATproject instead.
* Removed BUNins from the list of exported functions.
* Removed legacy functions BATuselect and BATuselect_.
* Removed legacy functions BATantijoin, BATbandjoin, BATouterjoin,
BATrangejoin, and BATthetajoin.
* Removed function BATrevert.
* BATordered now works on the TAIL column.
* Removed obsolete functions BATorder() and BATorder_rev().
* Implemented BATsubdiff which returns a list of OIDs (sorted, i.e.
usable as candidate list) of tuples in the left input whose value
does not occur in the right input.
* Removed function BATkintersect. It wasn't used anymore. It's
functionality can be obtained by using BATsubsemijoin.
* Removed the function BATkunion.
* Fixed problem in DatabaseMetaData.getUDTs() when it was called with
types parameter filled. It used to throw SQException with message:
SELECT: identifier 'DATA_TYPE' unknown. Now it returns the UDTs
which match the provided array of data types.
* Implemented MonetDatabaseMetaData.supportsConvert() and
MonetDatabaseMetaData.supportsConvert(int fromType, int toType)
methods. It used to always return false. Now it returns true for
the supported conversions. This fixes Bug 3460.
* ResultSet.setFetchSize(): added a dummy implementation to get rid
of the SQLFeatureNotSupportedException. In MonetDB, it does not
make sense to set the fetch size of a result set. If one really
wants to set the fetch size, one should use
* Fixed resource leak in ResultSetMetaData. It created and cached a
ResultSet object for each column but never closed the ResultSet
* Corrected DatabaseMetaData methods which accept a catalog filter
argument. Those methods will now filter the results on the
specified catalog name, whereas previously the catalog filter
argument was ignored.
* Corrected output of column KEY_SEQ of DatabaseMetaData methods:
getPrimaryKeys(), getImportedKeys(), getExportedKeys() and
getCrossReference(). It now starts at 1 instead of 0 previously.
* Corrected DatabaseMetaData.getSchemas() by returning 2 instead of 3
* Improved DatabaseMetaData.getColumns() by returning two additional
columns: IS_AUTOINCREMENT and IS_GENERATEDCOLUMN.
* Improved DatabaseMetaData.getTypeInfo(). It now returns better
information on LITERAL_PREFIX, LITERAL_SUFFIX, CREATE_PARAMS,
CASE_SENSITIVE, FIXED_PREC_SCALE and MAXIMUM_SCALE for some data
types. Also the returned rows are now ordered by DATA_TYPE,
TYPE_NAME, PRECISION as required by the specs. Also corrected
output column names "searchable" into "SEARCHABLE" and "MAXIMUM
SCALE" into "MAXIMUM_SCALE" to match the JDBC specification.
* Corrected DatabaseMetaData.getPseudoColumns(). It used to return 12
empty rows. Now it returns no rows as MonetDB does not have pseudo
* Implemented method DatabaseMetaData.getClientProperties(). It used
to always return a resultset with 4 completely empty rows. It now
returns a resultset with the possible connection properties.
* Implemented method DatabaseMetaData.getUDTs(). It used to return an
empty resultset. Now it returns the User Defined Types such as
inet, json, url and uuid.
* Corrected the returned table types in
DatabaseMetaData.getTableTypes(). It now returns all 10 table types
(as stored in sys.table_types) instead of the previously 8
hardcoded table types. For old MonetDB servers which do not have
the sys.table_types table, the old behavior is retained.
* Implemented methods DatabaseMetadata.getProcedures() and
DatabaseMetadata.getProcedureColumns(). They used to return an
empty resultset. Now they return the expected Procedures and
ProcedureColumns. Also getProcedureColumns() now returns a
resultset with all 20 columns instead of 13 columns previously.
* Method getFunctionColumns() in DatabaseMetadata used to throw an
SQLException: getFunctionColumns(String, String, String, String) is
not implemented. This method is now implemented and returns a
* Method getFunctions() in DatabaseMetadata used to throw an
SQLException: SELECT: no such column 'functions.sql' This has been
corrected. It now returns a resultset as requested.
* The resultsets of DatabaseMetadata methods now no longer return a
value for the *_CAT columns as MonetDB does not support Catalogs.
* Fixed a memory leak in MonetDatabaseMetaData.java for a static
cache which kept references to closed Connection objects.
* Improved JdbcClient program when presenting query data to console.
It used to send an SQL catalog query for each query result column
which slowed down the interactive response considerably. These
additional SQL catalog queries have been eliminated.
* Corrected MonetResultSet.getObject(String columnName). It no longer
throws a NullPointerException in cases where internally a
MonetVirtualResultSet is used.
* Fixed Connection.isValid(): this method should never attempt to
close the connection, even if an error has occurred.
* Disallow GRANT <some-user> TO <role-or-use>. Only explicitly
created roles can be granted.
* Extended grantable schema privileges: when a user is granted the
"sysadmin" role, the user now hcan not only create schemas, but
also drop schemas.
* Introduced COPY INTO/ COPY FROM global privileges. These privileges
allows other users than 'monetdb' to be granted the privileges to
use the MonetDB bulk data loading/exporting features, i.e., COPY
FROM <file> and COPY INTO <file>.
* 2407: Merovingian: allow binds to given ip/interface
* 2815: No SRID support
* 3361: constants as MAL function parameters prevent intermediate
* 3374: UNIQUE constraint does not set tkey property on the
* 3460: incomplete implementation of JDBC driver supportsConvert(),
supportsConvert(int fromType, int toType) methods in
* 3711: JDBC connection using jdbcclient.jar is very slow
* 3877: MonetDBLite should allow close then re-open databases?
without restarting R
* 3911: Invalid connect() call in 'redirect' mode
* 3920: query with DISTINCT and correlated scalar subquery in SELECT
list causes Assertion failure and crash of mserver5
* 3927: COUNT( distinct my_clob ) , QUANTILE( my_double , number )
fails in dev build
* 3956: MonetDBLite unable to execute LIMIT 1 statement
* 3972: Drastic Memory leak of 600GBs while generating plan for Query
with 25 joins
* 3974: Prepared statement rel_bin.c:2378: rel2bin_project: Assertion
* 3975: Suspicious code in store_manager() on exit path
* 3978: SQL returns TypeException 'aggr.subcorr' undefined for
* 3980: JOIN with references on both sides crashes mserver
* 3981: Incorrect LEFT JOIN when FROM clause contains nested
* 3983: Creation of a Foreign Key which partially maps to a primary
key is accepted without a warning
* 3984: Multiple paths in the .profile
* 3985: ruby-monetdb-sql gem fails for negative timezone offset (USA,
* 3987: Segfault on malformed csv import
* 3991: MonetDBLite feature request: default monetdb.sequential to
FALSE on windows
* 3994: MonetDBLite dbDisconnect with shutdown=TRUE freezes the
console on windows
* 3995: NullPointerException when calling getObject()
* 3997: calling scalar functions sys.isaUUID(str) or
* 3999: length() returns wrong length for strings which have spaces
at the end of the string
* 4010: RELEASE SAVEPOINT after ALTER TABLE crashes mserver5
* 4011: sys.sessions.user column always shows 'monetdb'
* 4013: GDKextendf does not free up memory when it fails due to
* 4015: Daemon crashes on database release command
More information about the developers-list