Oracle has established a new branch of the MySQL DBMS 9.2.0. Builds of MySQL Community Server 9.2.0 are prepared for all major Linux distributions, FreeBSD, macOS, and Windows. Under the new release model implemented in 2023, MySQL 9.2 is classified under the 'Innovation' branches, which will also include the next significant release, MySQL 9.3. Innovation branches are recommended for those who want early access to new features, release every 3 months, and are supported only until the next major release is published (for example, support for branch 9.1 ceases after the introduction of branch 9.2). An LTS release is planned for summer, recommended for deployments needing predictability and long-term maintenance of unchanged behavior. Following the LTS branch, a new Innovation branch will be formed — MySQL 10.0.
Key changes in MySQL 9.2:
- The MLE (Multilingual Engine Component) engine, which allows the use of code in languages other than SQL within stored procedures and functions, has added support for reusable libraries in JavaScript. Functions from such libraries can be invoked from stored procedures written in JavaScript but must be explicitly marked as importable using the 'export' keyword. New SQL statements 'CREATE LIBRARY' and 'DROP LIBRARY' have been added for managing the connection of JavaScript libraries. The expression 'SHOW CREATE LIBRARY' has been introduced to view the list of available JavaScript libraries. Information about JavaScript libraries is reflected in the system table 'LIBRARIES', while information about stored procedures using such libraries is found in the table 'ROUTINE_LIBRARIES'. A library is connected in a stored procedure by specifying a list of libraries in the 'USING' expression.
- An API has been added to access stored procedures, functions, and session variables from JavaScript code. The method getFunction() has been introduced for accessing MySQL functions, and getProcedure() for stored procedures, returning a JavaScript Function object that can be executed with arguments. Access to variables is done directly as properties of the JavaScript Session object. Additionally, direct access to built-in functions rand(), sleep(), uuid(), and isUUID(), which are similar to the SQL functions of the same names, has been added.
- An API has been added for transaction handling in JavaScript, allowing for the execution of most SQL expressions for transaction management, such as "START TRANSACTION," "COMMIT," "ROLLBACK," and "SET AUTOCOMMIT."
- The ability to use MySQL ENUM and SET types in the arguments of stored procedures written in JavaScript has been added.
- The CREATE_SPATIAL_REFERENCE_SYSTEM privilege has been added, enabling control over the creation and deletion of spatial reference definitions in geographic information systems. This privilege or the SUPER privilege is now required to execute the expressions "CREATE SPATIAL REFERENCE SYSTEM," "CREATE OR REPLACE SPATIAL REFERENCE SYSTEM," and "DROP SPATIAL REFERENCE SYSTEM."
- The output of "EXPLAIN FORMAT=JSON" now includes information about the JSON format version. To set the JSON format version, use the variable explain_json_format_version ("SET explain_json_format_version=1|2").
- The following have been deprecated: the "FLUSH PRIVILEGES" statement, the "mysqladmin flush-privileges" and "mysqladmin reload" commands, and the "version_tokens" plugin.
- Support for the keyword BINLOG has been discontinued.
- Thirty-two vulnerabilities have been addressed, of which three can be exploited remotely. The two most serious issues have a severity level of 9.1 and are related to vulnerabilities in the Kerberos and Curl components. Less severe vulnerabilities affect InnoDB, Thread Pooling, DDL, the optimizer, the parser, and the authentication system.
Source: opennet.ru
