Oracle je oblikoval novo vejo SGBD MySQL 9.3.0. Gradnje MySQL Community Server 9.3.0 so pripravljene za vse glavne distribucije Linux, FreeBSD, macOS in Windows. V skladu z novo metodo oblikovanja različic, uvedeno leta 2023, je MySQL 9.3 razvrščen v veje „Inovacija“. Inovacijske veje so priporočene za tiste, ki želijo prej dostopati do novih funkcionalnosti, izdajajo se vsakih 3 mesece in se podpirajo samo do izdaje naslednje pomembne različice (na primer, po izidu veje 9.3 se podpora veje 9.2 prekine). Poleti se načrtuje oblikovanje LTS-izdačke 9.4, priporočne za uvedbe, ki zahtevajo predvidljivost in dolgo ohranjanje nespremenjenega delovanja. Po LTS-veji bo oblikovana nova inovacijska veja — MySQL 10.0.
Glavne spremembe v MySQL 9.3:
- V orodje mysqldump je bila dodana možnost „—users“ za ustvarjanje logičnih dumpov z informacijami o vseh uporabniških računih, ki se izpisujejo preko SQL izrazov „CREATE USER“ in „GRANT“. Za vstavljanje izraza „DROP USER“ pred „CREATE USER“ je na voljo možnost „—add-drop-user“, za selektivno prikazovanje v dumpu posameznih uporabnikov pa možnosti „—include-user=user@host“ in „—exclude-user=user@host“, ki jo je mogoče navesti večkrat.
- V motorju MLE (Multilingual Engine Component), ki omogoča uporabo kode v jezikih, ki niso SQL, v shranjenih postopkih in funkcijah, je bila izboljšana podpora za JavaScript. Za shranjene postopke v jeziku JavaScript je bil implementiran tip „DECIMAL“, ki ga lahko uporabimo za vstopne in vrnjene argumente. Privzeto se za varnost tip DECIMAL MySQL pretvori v tip „String“ JavaScript, toda to vedenje je možno preklicati z ukazom ‘SELECT mle_set_session_state(‘{„decimal_type“:„Number“}’)’, po katerem bo uporabljen tip „Number“ JavaScript. Podprto je tudi pretvarjanje v tip DECIMAL vrednosti s tipi JavaScript Boolean, Number, String in BigInt.
- V shranjene postopke v JavaScript je bila dodana podpora za nastavitev parametrov lokalizacije, s pomočjo JavaScript API Intl. Na primer, za določitev trenutne lokalizacije lahko uporabimo lastnosti „Intl.DateTimeFormat().resolvedOptions().locale“, za preklic lokalizacije pa metodo „toLocaleString()“.
- Razširjene so možnosti upravljanja z JavaScript knjižnicami: za spremembo seznama uvoženih knjižnic lahko zdaj uporabljate izraze 'ALTER PROCEDURE' in 'ALTER FUNCTION'. Dodana je možnost uporabe izraza 'ALTER LIBRARY' za dodajanje, brisanje ali spreminjanje SQL komentarja na knjižnico. Za pridobivanje informacij o knjižnici je implementiran izraz 'SHOW LIBRARY STATUS'.
- Dodana je podpora za dinamično nalaganje JavaScript knjižnic. Za dinamični uvoz knjižnice je treba uporabiti ključno besedo 'await', na primer 'let module = await import('/db1/lib_${object_type}')'.
- Razširjene so optimizacije poizvedb, ki uporabljajo kvantificirane primerjalne operatorje. Poleg podpore operatorjem '=ANY' in 'ALL' je v novi različici dodana podpora operatorjem '>ANY', '>=ANY', '<ANY', 'ALL', '>=ALL', '<ALL' in '<=ALL'.
- Odstranjen je bil vtičnik 'version_tokens', ki je bil prej razglašen za zastarelo.
- Zavrnitev nastavitve vrednosti 0 v sistemski spremenljivki replica_parallel_workers.
- Odpravljeno je 28 ranljivosti, od katerih lahko 26 izkorišča na daljavo ob dostopu za pošiljanje poizvedb v SGBD. Šest najbolj resnih težav ima stopnjo nevarnosti 6.5 in je povezanih z ranljivostmi v motorju InnoDB, parserju in optimizatorju. Manj nevarne ranljivosti so povezane z mysqldump, InnoDB, optimizatorjem, DDL, UDF, parserjem in sistemom replikacije.
Izvor: opennet.ru
