# What's New

eXtremeDB/rt v2.0 is available.

## Release 8.4 - build 1805

> ### New Features & Enhancements

> Python

> - Added support for custom text encodings
> - Added a Python SQL sequence sample

> SQL

> - Implemented Length() for BLOBs
> - Disabled the dynamic dictionary when a static .mco schema-based dictionary is used

> C#

> - Added a warning indicating that the number of keys and order specifiers in a compound index must match

> ### Bug Fixes

> Core

> - Refactored MCO_HAVE_LOCALTIME_R and MCO_HAVE_STRERROR_R, and fixed strerror handling
> - Propagated error return codes in index insert operations
> - Prevented overflow in the allocation callback
> - Restored the hot update chain in vacuum() instead of triggering an assertion failure
> - Fixed statistics inconsistency in MURSIW disk databases
> - Added object count statistics in addition to version count for MVCC
> - Persisted objects_num statistics on disk
> - Fixed a misplaced break statement in mco_pattern_search
> - Fixed index field access in mco_pattern_next

> SQL

> - Correctly handled transaction closure inside loadClass
> - Introduced new transaction rollback rules
> - Disabled caching for functions used in GROUP BY
> - Switched to localtime_r on Unix platforms
> - Fixed filter DSID assignment
> - Skipped dropped classes when restoring the dictionary from a disk database
> - Disabled hash index usage for prefix matching
> - Fixed caching of function results
> - Fixed sort optimization issues
> - Fixed out-of-bounds access in ALTER TABLE statements

> .NET

> - Added the grab() method
> - Improved verification of closed SQL engine state in SQL connections

> JNI

> - Added the grab() method
> - Improved verification of closed SQL engine state in SQL connections

> C#

> - Reworked the Database instance creation algorithm to load database runtime libraries only once per process lifetime
> - Added additional dictionary validation checks (similar to mcocomp) to prevent invalid database schemas

## Previous Release Features (Release 8.4 - build 1804)

> In addition to bug fixes the eXtremeDB 8.4 (build 1804) adds new functionality and a number of performance optimizations to the database kernel, SQL optimizer and other eXtremeDB components. The most notable are:

> eXtremeSQL

> - SQL engine compliance with a number of industry standard SQL tests suites
> - Various measurable SQL JOIN optimizations (including optimize_joins)
> - Extended CSV file format support (multi-character delimits are now supported)
> - ODBC driver SSL support
> - ODBC driver authentication support
> - Limited support for GO language

> eXtremeDB Core

> - Support for WolfSSL TLS
> - Support for Mbed TLS
> - Multiple MVCC transaction manager performance optimizations

> Languages, development environments and tools

> - Support for Visual Studio 2022
> - Support for .NET 6.0 and 7.0 on Linux/ARM (SQL C API)
> - Support for Windows-based MCUXpresso for RT1176
> - Reinstated MinGW support
> - C++17 compatibility
> - Mitigated possible source-code conflicts with various third party software (Apache Arrow, etc.)

> Add-on modules and Frameworks

> - xPanel. Added the table view option to the Database Browser module
> - Added hardware-based license protection modules to enable licensing for multiple virtualization platforms including VirtualBox, QEMU, WindRiver vSphere hypervisor, etc.

## Previous Release Features (Release 8.3 - build 1803)

> In addition to a number of bug fixes and stability enhancements eXtremeDB 8.3 includes the following new features:

> - support for Visual Studio 2019
> - support for Python 3.9
> - support for the NXP's iMX8 asymmetric hardware running embedded distributions and a number of RTOS (FreeRTOS™, INTEGRITY OS™, VxWorks™, embOS)

> SQL:

> - eXtremeSQL C# API for .NET Core
> - authorization
> - support for upsampling of sequences
> - default values for columns in eXtremeSQL
> - improved time-to-live (TTL) functionality
> - class_id is added to the Metaschema
> - constant folding optimization
> - configurable session limit for SqlServer
> - trace log rotation in xsql
> - prompt option in xsql

> Java:

> - added the ability to bypass object unpacking while removing objects

> xPanel:

> - new design
> - added a NetViewer module - the eXtremeDB Cluster, High Availability and IoT architecture discovery and visualization application
> - added the xRun utility (GUI-based xSQL server process manager)

## Previous Release Features (Release 8.2 - build 1801)

> Here is the list of the most important enhancements in eXtremeDB 8.2

> eXtremeDB Embedded

> - Time precision is verified while connecting to the database locally or remotely. Among other things, this allows avoiding unintended time conflicts in distributed architectures (Cluster, IoT, HA)
> - Added the "bare minimum" core runtime configuration to support extremely restrictive execution environments
> - Support for Python 2.7, 3.5, 3.6, 3.7, 3.8, 3.9 on Linux and Windows, for 2.7, 3.7, 3.8. 3.9 on MacOS, except for AWS image that is configured with Python 3.9 only, for security reasons.
> - Added Active Replication Fabric support to JNI
> - Support for Android

> SQL

> - RSQL protocol implementation has changed (backwards compatibility provided via "protocol_compatibility")
> - Added remote xSQL control utility, xRun. This is a browser-based utility that is part of standard distributions. Allows to start (or connect to ), pause and stop xSQL servers
> - Rust bindings for eXtremeSQL
> - Added support for array and structure elements updates from SQL

> xPanel Graphic Dashboard

> - Added the ability to trace all SQL queries regardless of the origin - local connection, remote connection, REST
> - Added the ability to switch off/on modules in the xPanel dashboard

> Java/.NET Framework

> - Added the ability to remove objects with the Java API (JNI) without unpacking the objects

> Supplements and samples

> - Extended the Ticks demo to use Lua-, Python- and C++- based UDFs. Can be used to demonstrate the relative performance of stored procedures implemented in different languages.
> - Started supporting an official "toolbox" -- a set of utilities to work with offsite/onsite databases on the source code and/or binary level. Included a utility for dumping an in-memory database to file

> ### Known compiler bugs

> MSVS 2015, Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x86 has a bug in optimization that affected the REST server code.

> In "release" builds RESTful web services silently failed to register themselves leading to "404 - not found" responses to valid requests. The bug did not manifest itself in "debug" builds.

> ## Previous Release Features (Release 8.1 - build 1800)

> Here is the list of the most important enhancements in the eXtremeDB 8.1 (Release 8.1 - build 1800):

> eXtremeDB Embedded

> - Added low-overhead tracing capabilities to the core (and other database runtime components)
> - Extended REST API to support network discovery, incremental and file backup and a number of other services. Support for basic HTTP authentication and REST over HTTPS
> - AUTOSAR architecture database runtime configurations
> - Added official support for multiple platforms including WindRiver Linux 7 and WindRiver Linux 8, several ARM64-based toolchains and Infineon TriCore architecture

> Networking / distributed environment

> - Added support for the Active Replication Fabric multi-layer topology (routers)
> - Added the ability to combine Active Replication Fabric and High Availability
> - Added the network "discovery mode" -- the ability to find other nodes and their databases that are connected through any eXtremeDB network protocol (High Availability/Cluster Active Replication Fabric)
> - Support compression for all network communications (including Active Replication Fabric, Cluster and High Availability, RSQL)
> - Finalized support for IPV6 for all communications
> - OpenSSL 1.1 (vs OpenSSL 1.0)

> SQL

> - Multiple SQL optimizer improvements, including limited support for parallel query execution (PARALLEL keyword)
> - Support for Python for SQL stored procedures (UDFs)
> - Enhanced Lua UDF support, debugging, tracing

> xPanel Graphic Dashboard

> - Database browser
> - Tracer module
> - SQL Query console
> - HTTPS and basic authentication for the xPanel Connectors

> Miscellaneous

> - Amazon Web Services availability
> - Feedhandler modifications -- support for Refinitiv EMA API
> - Scala is officially supported
> - JDBC support for distributed engine, batch processing, array types
> - Database export in JSON format
> - Extended support of the ODBC driver on Unix platforms and support for PHP PDO API
> - "Sniffer" (shared memory recovery) support for Java and C# APIs

> ## Previous Release Features (Interim Service Release - build 1799)

> Following is the list of most important new features of the previous release of eXtremeDB 8.0 (Interim Service Release - build 1799).

> eXtremeDB Embedded

> The following enhancements have been added:

> - Provide support for huge memory pages which can improve database performance on Linux systems
> - Provide support for compression for data transmitted over the network in the Active Replication Fabric infrastructure
> - Provide Web Services REST APIs for database access
> - Discover REST endpoints over other network services (High Availability, Cluster, Active Replication Fabric and RSQL)
> - Provide Web Service REST API for debug tracing
> - The last two parameters are removed from the `mco_uda_db_open()`and the structure `mco_uda_dict_class_storage_t` and constants `MCO_UDA_CLASS_DEFAULT`, `MCO_UDA_CLASS_TRANSIENT` and `MCO_UDA_CLASS_PERSISTENT` were also removed (as they are no longer in use)
> - Changes affecting `string` fields in persistent databases using mode flag `MCO_DB_DISABLE_SMART_ALLOC`
> - Backwards incompatibility of persistent database files from Windows 32 bit to Windows 64 bit and other platforms. (There was a bug in composing the internal data structures which broke backward compatibility with persistent database files saved by previous versions of eXtremeDB. The bug has been fixed except in the single case of Windows x32 databases.)

> eXtremeSQL

> The following enhancements have been added:

> - Distributed shuffle join

> Related Topics