Oracle har etablert en ny grenen av databasesystemet MySQL 9.3.0. Byggene av MySQL Community Server 9.3.0 er gjort tilgjengelig for alle de viktigste distribusjonene av Linux, FreeBSD, macOS og Windows. I henhold til den nye utgivelsesmodellen som ble innfĂžrt i 2023, er MySQL 9.3 klassifisert som en «Innovation»-gren. Innovation-grenene anbefales for de som Ăžnsker tidlig tilgang til ny funksjonalitet, publiseres hvert 3. mĂ„ned og stĂžttes bare fram til publisering av neste betydelig utgivelse (for eksempel, etter at grenen 9.3 er utgitt, opphĂžrer stĂžtten for grenen 9.2). I sommer planlegges det Ă„ lage en LTS-utgivelse 9.4, som anbefales for implementeringer som trenger forutsigbarhet og langvarig opprettholdelse av uendret atferd. Etter LTS-grenen vil det bli opprettet en ny Innovation-gren â MySQL 10.0.
Hovedendringene i MySQL 9.3:
- Utilsyn til mysqldump har fĂ„tt et nytt alternativ «âusers» for Ă„ lage logiske dumps med informasjon om alle brukerkontoer, som vises gjennom SQL-uttrykkene «CREATE USER» og «GRANT». For Ă„ sette inn uttrykket «DROP USER» fĂžr «CREATE USER» finnes alternativet «âadd-drop-user», mens alternativer «âinclude-user=user@host» og «âexclude-user=user@host» gir mulighet for selektiv gjenspeiling i dumpen for spesifikke brukere, som kan angis flere ganger.
- I MLE-motoren (Multilingual Engine Component), som muliggjĂžr bruk av kode pĂ„ sprĂ„k som er forskjellige fra SQL i lagrede prosedyrer og funksjoner, er stĂžtte for JavaScript forbedret. For lagrede prosedyrer som bruker JavaScript er typen «DECIMAL» implementert, som kan brukes for inndata- og utdata-argumenter. Som standard vil MySQL-typen DECIMAL bli konvertert til JavaScript-typen «String» for sikkerhets skyld, men denne oppfĂžrselen kan overstyres med kommandoen âSELECT mle_set_session_state(â{«decimal_type»:»Number»}â)â, etter hvilken JavaScript-typen «Number» vil bli brukt. Det stĂžttes konvertering til DECIMAL-type fra JavaScript-typene Boolean, Number, String og BigInt.
- For lagrede prosedyrer i JavaScript er stÞtte for innstilling av lokaliseringsparametere lagt til, ved hjelp av JavaScript API Intl. For eksempel kan nÄvÊrende lokalitet bestemmes med egenskapene «Intl.DateTimeFormat().resolvedOptions().locale», og lokaliteten kan overstyres med metoden «toLocaleString()».
- Mulighetene for Ä administrere JavaScript-biblioteker har blitt utvidet: for Ä endre listen over importerte biblioteker kan man nÄ bruke uttrykkene «ALTER PROCEDURE» og «ALTER FUNCTION». Muligheten for Ä bruke uttrykket «ALTER LIBRARY» for Ä legge til, fjerne eller endre SQL-kommentarer til biblioteket er lagt til. For Ä fÄ informasjon om biblioteket, er uttrykket «SHOW LIBRARY STATUS» implementert.
- StĂžtte for dynamisk lasting av JavaScript-biblioteker er lagt til. For dynamisk import av biblioteket bĂžr man bruke nĂžkkelordet «await», for eksempel «let module = await import(â/db1/lib_${object_type}â)».
- Optimaliseringene av forespÞrslene som bruker kvantifiserte sammenligningsoperatorer, er utvidet. I tillegg til stÞtten for operatorene «=ANY» og «ALL», er det i den nye versjonen lagt til stÞtte for operatorene «>ANY», «>=ANY», «<ANY», «ALL», «>=ALL», «<ALL» og «<=ALL» ved optimalisering av underforespÞrsel.
- Pluginnen «version_tokens» er fjernet, som tidligere ble erklÊrt utdatert.
- Det er forbudt Ă„ sette verdien 0 i systemvariabelen replica_parallel_workers.
- 28 sÄrbarheter er rettet, hvorav 26 kan utnyttes eksternt med tilgang til Ä sende forespÞrsel til DBMS. Seks av de mest alvorlige problemene har en faregrad pÄ 6.5 og er relatert til sÄrbarheter i InnoDB-motoren, parseren og optimalisatoren. Mindre alvorlige sÄrbarheter pÄvirker mysqldump, InnoDB, optimalisator, DDL, UDF, parser og replikasjonssystemet.
Kilde: opennet.ru
