Выпущен MySQL 9.2

MySQL, широко распространенная СУБД с открытым исходным кодом, выпустила второе обновление серии 9.x, версию 9.2, в которой появилось несколько новых функций, а некоторые были упразднены или удалены.

Одной из главных особенностей релиза является новая привилегия CREATE_SPATIAL_REFERENCE_SYSTEM, которая дает пользователям возможность выполнять такие операторы, как CREATE SPATIAL REFERENCE SYSTEM, CREATE OR REPLACE SPATIAL REFERENCE SYSTEM и DROP SPATIAL REFERENCE SYSTEM.

Однако выполнение этих операторов без этой привилегии (или привилегии SUPER) приводит к ошибке. Хотя привилегия SUPER все еще может использоваться для этих операторов, разработчики должны считать это использование устаревшим и планировать переходы соответствующим образом.

Что касается библиотек JavaScript, то здесь произошло множество изменений, самым ярким из которых является MySQL Multilingual Engine Component (MLE), который теперь поддерживает многократно используемые библиотеки JavaScript, что упрощает совместное использование и управление функциями JavaScript в различных хранимых программах.

Другими словами, теперь вы можете эффективно организовать свой код в многократно используемые модули с помощью операторов CREATE LIBRARY и DROP LIBRARY.

Кроме того, библиотеки JavaScript могут быть включены в другие хранимые программы с помощью нового пункта USING в CREATE FUNCTION или CREATE PROCEDURE. Более того, MySQL 9.2.0 предоставляет удобный оператор SHOW CREATE LIBRARY для получения кода существующих библиотек, а также две новые таблицы Information Schema – LIBRARIES и ROUTINE_LIBRARIES – для отслеживания и управления этими ресурсами JavaScript.

Компонент MLE расширяет сферу своего действия, позволяя JavaScript-программам вызывать функции, процедуры и пользовательские переменные сессии, хранящиеся в MySQL. Теперь JavaScript может вызывать функции или процедуры MySQL с помощью таких методов, как getFunction() и getProcedure().

Стоит также отметить, что доступ к переменным сеанса теперь можно получить непосредственно через глобальный объект Session в JavaScript. В версии 9.2 также появился прямой доступ JavaScript к встроенным функциям MySQL, таким как rand(), sleep(), uuid() и isUUID(), через глобальный объект Mysql.

Поддержка транзакций – еще одно интересное дополнение: MySQL 9.2 предоставляет JavaScript Transactional API, который соответствует стандартным SQL-командам MySQL, таким как START TRANSACTION, COMMIT, ROLLBACK и SET AUTOCOMMIT. Также включены точки сохранения. Функциональность транзакций дополнена объектом SqlError, который обеспечивает надежную обработку ошибок в JavaScript-программах.

Кроме того, типы данных MySQL ENUM и SET теперь распознаются в хранимых процедурах JavaScript, что позволяет без проблем преобразовывать их туда и обратно. Таким образом, если ваше приложение использует эти типы, вы можете работать с ними непосредственно в JavaScript без неудобных преобразований.

MySQL 9.2 вводит информацию о версии формата в вывод EXPLAIN FORMAT=JSON, когда системная переменная explain_json_format_version имеет значение 2. Это дополнение помогает разработчикам различать различные форматы вывода JSON и соответствующим образом адаптировать инструментарий или скрипты. Если версия формата равна 1, результат EXPLAIN опускает эту информацию о версии, чтобы сохранить совместимость с более старыми процессами.

Помимо вышеупомянутых новых дополнений, MySQL 9.2 помечает несколько функций как устаревшие. Оператор FLUSH PRIVILEGES, долгое время использовавшийся для перезагрузки таблиц прав доступа, теперь устарел. Плагин Version Tokens также будет удален в будущем выпуске.

В то же время в новом выпуске полностью удалены некоторые элементы, ранее доступные в нем, поэтому разработчикам следует помнить об их отсутствии при обновлении или репликации. Например, ключевое слово BINLOG больше не доступно для использования без кавычек в хранимых процедурах.

Для получения более подробной информации ознакомьтесь со всеми изменениями, которые несет в себе MySQL 9.2.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

Комментарии (0)