Tvrtka Oracle je stvorila novu granu SGBD MySQL 9.2.0. Izdanja MySQL Community Server 9.2.0 pripremljena su za sve glavne distribucije Linuxa, FreeBSD-a, macOS-a i Windows-a. U okviru nove vrste izrade izdanja koja je uvedena 2023. godine, MySQL 9.2 je svrstan u grane „Inovacija“, u koje će se također svrstati sljedeće značajno izdanje MySQL 9.3. Grane inovacija su preporučene za one koji žele ranije pristupiti novim funkcionalnostima, objavljuju se svaka 3 mjeseca i podržavaju se samo do objave sljedećeg značajnog izdanja (na primjer, nakon objave grane 9.2 prestaje se s podrškom za granu 9.1). Ljeti se planira formirati LTS-izdanje, preporučeno za implementacije kojima je potrebna predvidljivost i dugotrajno očuvanje nepromijenjenog ponašanja. Nakon LTS-grane bit će formirana nova grana inovacija — MySQL 10.0.
Glavne promjene u MySQL 9.2:
- U MLE motor (Component Multilingual Engine), koji omogućuje korištenje kodova na jezicima različitim od SQL-a u pohranjenim procedurama i funkcijama, dodana je podrška za ponovno upotrebljive biblioteke na jeziku JavaScript. Funkcije iz sličnih biblioteka mogu se pozivati iz pohranjenih procedura na jeziku JavaScript, ali moraju biti eksplicitno označene kao uvezene pomoću ključne riječi „export“. Za upravljanje povezivanjem JavaScript-biblioteka dodani su novi SQL izrazi „CREATE LIBRARY“ i „DROP LIBRARY“. Za pregled popisa dostupnih JavaScript-biblioteka dodan je izraz „SHOW CREATE LIBRARY“. Informacije o JavaScript-bibliotekama odražavaju se u sustavnoj tablici „LIBRARIES“, a o pohranjenim procedurama koje koriste slične biblioteke u tablici „ROUTINE_LIBRARIES“. Povezivanje biblioteke u pohranjenoj proceduri vrši se kroz navođenje popisa biblioteka u izrazu „USING“.
- Dodan je API za pristup pohranjenim procedurama, funkcijama i sesijskim varijablama iz koda na jeziku JavaScript. Da bi se obratili funkcijama MySQL, dodana je metoda getFunction(), a za pohranjene procedure — metoda getProcedure(), koje vraćaju JavaScript-objekt Function, koji se može pokrenuti s argumentima. Pristup varijablama vrši se izravno kao svojstvima JavaScript-objekta Session. Dodatno je dodana mogućnost izravnog pristupa ugrađenim funkcijama rand(), sleep(), uuid() i isUUID(), koje su ekvivalentne istoimenim SQL-funkcijama.
- Dodana je API za rad sa transakcijama iz JavaScript-a, omogućavajući izvršavanje većine SQL izraza za upravljanje transakcijama, kao što su „START TRANSACTION“, „COMMIT“, „ROLLBACK“ i „SET AUTOCOMMIT“.
- Dodana je mogućnost korišćenja MySQL tipova ENUM i SET u argumentima čuvanih procedura, napisanih u JavaScript-u.
- Dodana je privilegija CREATE_SPATIAL_REFERENCE_SYSTEM, pomoću koje se može upravljati mogućnošću kreiranja i brisanja definicija prostorne vezanosti podataka geoinformacionih sistema. Imajući ovu privilegiju ili privilegiju SUPER sada je obavezno za izvršavanje izraza „CREATE SPATIAL REFERENCE SYSTEM“, „CREATE OR REPLACE SPATIAL REFERENCE SYSTEM“ i „DROP SPATIAL REFERENCE SYSTEM“.
- U izlaz „EXPLAIN FORMAT=JSON“ dodate su informacije o verziji JSON formata. Za postavljanje verzije JSON formata treba koristiti promenljivu explain_json_format_version („SET explain_json_format_version=1|2“).
- Oglasili su se zastare: izraz „FLUSH PRIVILEGES“, komande „mysqladmin flush-privileges“ i „mysqladmin reload“, dodatak „version_tokens“.
- Prekida podrška za ključnu reč BINLOG.
- Ispravljeno je 32 ranjivosti, od kojih 3 mogu biti korišćene na daljinu. Dve najozbiljnije probleme imaju nivo opasnosti 9.1 i povezane su sa ranjivostima u komponentama Kerberos i Curl. Manje opasne ranjivosti se odnose na InnoDB, Thread Pooling, DDL, optimizator, parser i sistem autentifikacije.
Izvor: opennet.ru
