The MonetDB team at MonetDB Solutions BV is pleased to announce the Jun2023 feature release of the MonetDB suite of programs. More information about MonetDB can be found on our website at https://www.monetdb.org/. For details on this release, please see the release notes at https://www.monetdb.org/release-notes/jun2023/. As usual, the download location is https://www.monetdb.org/downloads/. The Jun2023 documentation can be found [here](https://www.monetdb.org/documentation-Jun2023/). ## Jun2023 Feature Release (11.47.3) ### Client Package - The COPY INTO from file ON CLIENT was extended to also look for a relative path name relative to the file from which the query was read. This is only possible if the name of the query file is known, so when it is specified on the command line or read using the interactive \< command. ### Mapi Library - Deprecate mapi_setfilecallback() in favor of mapi_setfilecallback2() which can handle binary downloads. For the time being, the old callback still works. ### ODBC Driver - Extended Windows MonetDB ODBC Data Source setup program with option to specify a logfile to enable tracing of ODBC Driver API calls. On other platforms users can edit the odbc.ini file and add a line: logfile=/home/username/odbctrace.log When a logfile is specified it will start logging the ODBC Driver API calls to the logfile after a new connection is made via SQLConnect() or SQLDriverConnect() or SQLBrowseConnect(). Note that enabling ODBC logging will slow down the performance of ODBC applications, so enable it only for analysing ODBC Driver problems. - Enhanced SQLTables() by adding support for table type names: 'BASE TABLE', 'GLOBAL TEMPORARY' and 'LOCAL TEMPORARY' in parameter TableType. These are synonyms of: 'TABLE', 'GLOBAL TEMPORARY TABLE' and 'LOCAL TEMPORARY TABLE'. ### MonetDB5 Server - The MAL debugger code has been removed. ### SQL Frontend - Add MAX_MEMORY and MAX_WORKERS options to the ALTER USER statement - Function 'similarity(x string, y string)' marked as deprecated and will be removed in the next release. - New functionality for string matching and similarity: startswith, endswith, contains, Levenshtein distance and Jaro-Winkler similarity. The functions startswith, endswith and contains have a version where a case insentive flag can be used. Also, there are new custom join functionality for startswith, endswith, contains, Levenshtein distance and Jaro-Winkler similarity. - Renamed previous Levenshtein distance to Damerau-Levenshtein distance. - New string function that transform from UTF-8 encoding to Ascii called asciify. - Session timeout feature improvement to start evaluating from the moment the procedure is called, instead of beginning of the session. - Queries stopped with the stop procedure are now marked as 'aborted' 'finished'. - The DEBUG statement has been removed. - SQL function sys.queue() overloaded with sys.queue(username string), SYSADMIN only, allowing to filter the global queue by username or use 'ALL' to retrieve the global queue. Calling the function without arguments returns the queue for the current user. - SQL procedures sys.pause(tag bigint), sys.resume(tag bigint), sys.stop(tag bigint) overloaded with sys.pause(tag bigint, username string), sys.resume(tag bigint, username string) and sys.stop(tag bigint, username string), SYSADMIN only, allowing to pause, resume and stop query executions by TAG, USERNAME. The call without arguments is a public procedure giving access to users to pause, resume and stop their own query executions. - Added support of ODBC escape sequences syntax to SQL layer. Now all clients (including ODBC/JDBC/pymonetdb) can use them without further processing. For details on ODBC escape sequences syntax see: https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/odbc-escape-... - It is no longer allowed to create a merge table or remote table or replica table or unlogged table in schema "tmp". The tmp schema is reserved for temporary objects only, such as local/global temp tables. - System views sys.dependency_tables_on_functions and dependency_views_on_functions have been extended with column: function_id. - When loading data using COPY BINARY INTO, apply default values instead of just inserting NULLs. - When loading data using COPY BINARY INTO, validate DECIMAL(prec,scale) and VARCHAR(n) column width. - When loading data using COPY BINARY INTO, string used to have their line endings converted from CR LF to LF. Do not do this, it is the responsibility of the client. - Implemented dumping binary data using COPY SELECT ... INTO BINARY <file(s)>. - Removed code for Workload Capture and Replace, including system schemas "wlc" and "wlr" and the objects in those schemas. The code was experimental, and it didn't work out. A different approach will be taken. ### Merovingian - The monetdb get, inherit, lock and release commands are extended with ‘apply-to-all’ syntax similar to related functionality: Usage: monetdb set property=value [database ...] sets property to value for the given database(s), or all Usage: monetdb inherit property [database ...] unsets property, reverting to its inherited value from the default configuration for the given database(s), or all Usage: monetdb lock [-a] database [database...] Puts the given database in maintenance mode. Options: -a locks all known databases Usage: monetdb release [-a] database [database ...] Brings back a database from maintenance mode. Options: -a releases all known databases ### Bug Fixes - [7311](https://github.com/MonetDB/MonetDB/issues/7311): Missing `REGEXP_REPLACE` function. - [7344](https://github.com/MonetDB/MonetDB/issues/7344): Database upgrade failure due to user object dependency on system procedure - [7348](https://github.com/MonetDB/MonetDB/issues/7348): Subquery inside case always evaluated - [7378](https://github.com/MonetDB/MonetDB/issues/7378): MonetDB server crashes at sql_trans_copy_key - [7379](https://github.com/MonetDB/MonetDB/issues/7379): MonetDB server 11.46.0 crashes at cs_bind_ubat - [7380](https://github.com/MonetDB/MonetDB/issues/7380): MonetDB server 11.46.0 crashes at `BLOBcmp` - [7381](https://github.com/MonetDB/MonetDB/issues/7381): MonetDB server 11.46.0 crashes at `log_create_delta` - [7382](https://github.com/MonetDB/MonetDB/issues/7382): MonetDB server 11.46.0 crashes at `gc_col` - [7383](https://github.com/MonetDB/MonetDB/issues/7383): MonetDB server 11.46.0 crashes at `list_append` - [7384](https://github.com/MonetDB/MonetDB/issues/7384): MonetDB server 11.46.0 crashes at `__nss_database_lookup` - [7386](https://github.com/MonetDB/MonetDB/issues/7386): MonetDB server 11.46.0 crashes in `rel_deps` - [7387](https://github.com/MonetDB/MonetDB/issues/7387): MonetDB server 11.46.0 crashes in `rel_sequences`