Opublikowano wydanie DBMS MariaDB 12.2.2, które jest pierwszym stabilnym wydaniem gałęzi 12.2. Gałąź MariaDB 12.2 została zaklasyfikowana jako wydanie pośrednie (rolling), które kontynuuje stopniowy rozwój funkcjonalności i zastępuje gałąź MariaDB 12.1. Jednocześnie opublikowano wydanie MariaDB 12.3.1 z nową implementacją binlog, mającą status kandydata na wydanie przyszłej gałęzi LTS. Gałąź MariaDB 12.2 będzie wspierana do momentu wydania 12.3.2.
Projekt MariaDB rozwija fork MySQL, zachowując zgodność wsteczną i różniąc się integracją dodatkowych silników przechowywania oraz rozszerzonymi możliwościami. Rozwój MariaDB nadzoruje niezależna organizacja MariaDB Foundation w ramach otwartego i przejrzystego procesu rozwoju, niezależnego od konkretnych producentów. MariaDB jest dostarczana zamiast MySQL w wielu dystrybucjach Linuxa (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) i wdrożona w takich dużych projektach jak Wikipedia, Google Cloud SQL i Nimbuzz.
Wśród zmian w gałęzi MariaDB 12.2:
- W trybie zgodności z DBMS Oracle zaimplementowano funkcje TO_NUMBER (konwersja ciągu na liczbę) oraz TRUNC (przycinanie daty, np. do godziny, dnia, miesiąca, roku).
- Przy wykonywaniu operacji łączenia tabel (JOIN) wprowadzono optymalizację, która uwzględnia unikalność wierszy w podzapytaniach z wyrażeniem „GROUP BY” dla dokładniejszego prognozowania liczby wynikowych wierszy (out_rows) i poprawnego stosowania indeksów.
- Dodano nowe opcje zarządzania optymalizatorem ROWID_FILTER/NO_ROWID_FILTER oraz INDEX_MERGE/NO_INDEX_MERGE, a także możliwość niejawnego wskazywania nazw bloków w zapytaniach (można punktowo stosować opcje optymalizacji do części zapytań, odnosząc się do nich po nazwach „select#N”, gdzie N to numer porządkowy bloku). Na przykład: „select /*+ JOIN_ORDER(@»select#2″ twenty,ten) */ ….”.
- Usunięto ograniczenia dotyczące głębokości zagnieżdżania struktur w funkcjach do pracy z JSON (usunięto limit JSON_DEPTH_LIMIT, który wcześniej wynosił 32).
- Dodano tabelę TRIGGERED_UPDATE_COLUMNS w schemacie INFORMATION_SCHEMA (INFORMATION_SCHEMA.TRIGGERED_UPDATE_COLUMNS), pokazującą kolumny modyfikowane podczas wyzwolenia triggera.
- W tabeli PARAMETERS w schemacie INFORMATION_SCHEMA zaimplementowano kolumnę PARAMETER_DEFAULT, zawierającą domyślne wartości parametrów procedur składowanych.
- Wprowadzono eksperymentalne wsparcie dla wyrażenia „CREATE GLOBAL TEMPORARY TABLE” do tworzenia globalnych tabel tymczasowych. Takie tabele tymczasowe są usuwane po zakończeniu sesji i są widoczne dla wszystkich użytkowników, ale zawierają dane indywidualne dla każdego użytkownika.
- W trybie testowym zaproponowano ulepszone wsparcie dla replikacji między tabelami o różnej strukturze.
Źródło: opennet.ru
