Опубликован выпуск СУБД MariaDB 12.0.2, который отмечен как первый стабильный релиз ветки 12.0. Ветка MariaDB 12.0 отнесена к промежуточным выпускам (rolling), продолжает постепенное развитие функциональности и пришла на смену ветке MariaDB 11.8. Одновременно опубликован выпуск MariaDB 12.1.1, имеющий статус кандидата в релизы. Ветка MariaDB 12.0 будет сопровождаться до формирования выпуска 12.1.2.
Проектом MariaDB развивается ответвление от MySQL, сохраняющее обратную совместимость и отличающееся интеграцией дополнительных движков хранения и расширенных возможностей. Развитие MariaDB курирует независимая организация MariaDB Foundation в соответствии с открытым и прозрачным процессом разработки, не зависящим от отдельных производителей. MariaDB поставляется вместо MySQL во многих дистрибутивах Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) и внедрён в таких крупных проектах, как Wikipedia, Google Cloud SQL и Nimbuzz.
Среди изменений в ветке MariaDB 12.0:
- Добавлена поддержка SSL-ключей, защищённых паролем. Пароль для разблокирования SSL-сертификатов может быть задан через переменную ssl_passphrase или вручную при запуске сервера.
- Добавлено выражение “SET SESSION AUTHORIZATION” для выполнения действия под другим пользователем при выставлении соответствующих привилегий (выражение можно рассматривать как аналог “sudo” для СУБД).
- В плагин file_key_management.so добавлена поддержка хэшей SHA-2.
- Добавлена поддержка слабых курсорных переменных (weak cursor variable) предопределенного типа SYS_REFCURSOR, позволяющих возвращать курсор из хранимых процедур (в параметре OUT) или из функций (в выражении RETURN). Для ограничения максимального числа одновременно открытых курсоров добавлена системная переменная “max_open_cursors”.
- В тип TO_CHAR добавлена поддержка формата FM (Fill Mode) для исключения добавочного заполнения. Например, запрос
“SELECT CONCAT(‘/’, TO_CHAR(‘2020-01-06 10:11:12’, ‘FMDAY’), ‘/’);” вернёт “/Monday/” вместо “/Monday /”. - В утилиту mariadb-check и выражение CHECK TABLE добавлена поддержка таблиц от движка SEQUENCE.
- В оптимизатор добавлена поддержка опций (hint), влияющих на построения плана оптимизаций: QB_NAME, NO_RANGE_OPTIMIZATION, NO_ICP, MRR, NO_MRR, BKA, NO_BKA, BNL, NO_BNL, SEMIJOIN, SUBQUERY, JOIN_FIXED_ORDER, JOIN_ORDER, JOIN_PREFIX, JOIN_SUFFIX и MAX_EXECUTION_TIME. Опции подставляются в запрос в формате, совместимом с MySQL, например: SELECT /*+ BKA(t1) NO_BKA(t2) */ * FROM t1 INNER JOIN t2 WHERE …; SELECT /*+ MAX_EXECUTION_TIME(1000) */ * FROM t1 INNER JOIN t2 WHERE …;
- Добавлена поддержка новых функций GIS (Geographic Information System):
ST_Validate, MBRCoveredBy, ST_Simplif, ST_GeoHash, ST_LatFromGeoHash, ST_LongFromGeoHash, ST_PointFromGeoHash, ST_IsValid, ST_Collect. - Добавлена поддержка триггеров, срабатывающих для нескольких событий. В выражении CREATE TRIGGER теперь можно перечислять подпадающие под него события, используя синтаксис “{ event [ OR … ] }”.
- В плагине Audit реализовано сохранение в логе аудита информации о сетевых портах для входящих соединений (ранее отражался только хост).
- В утилиту mariadb добавлена опция “–script-dir” для задания альтернативного каталога поиска скриптов, запускаемых командой SOURCE.
- Удалены переменные big_tables, large_page_size и storage_engine, ранее объявленные устаревшими.