Oracle har etablert en ny gren av DBMS MySQL 9.2.0. Byggene av MySQL Community Server 9.2.0 er tilrettelagt for alle viktige distribusjoner av Linux, FreeBSD, macOS og Windows. I henhold til den nye modellen for utgivelse som ble innført i 2023, er MySQL 9.2 klassifisert som en 'Innovation'-gren, som også vil inkludere den neste betydelige utgivelsen MySQL 9.3. Innovation-grener anbefales for dem som ønsker tidlig tilgang til ny funksjonalitet, utgis hver tredje måned og støttes kun frem til publisering av neste betydelige utgivelse (for eksempel, etter at grenen 9.2 er blitt utgitt, avsluttes støtten for grenen 9.1). Om sommeren planlegges det å lage en LTS-utgivelse, som anbefales for implementeringer som krever forutsigbarhet og langvarig opprettholdelse av stabil atferd. Etter LTS-grenen vil det bli opprettet en ny Innovation-gren — MySQL 10.0.
Hovedendringer i MySQL 9.2:
- I MLE-motoren (Multilingual Engine Component), som lar deg bruke kode på språk annet enn SQL i lagrede prosedyrer og funksjoner, er det lagt til støtte for gjenbrukbare biblioteker i JavaScript. Funksjoner fra slike biblioteker kan kalles fra lagrede prosedyrer på JavaScript, men må tydelig merkes som importert med nøkkelordet «export». For å håndtere tilkoblingen av JavaScript-biblioteker er det lagt til nye SQL-uttrykk «CREATE LIBRARY» og «DROP LIBRARY». For å vise listen over tilgjengelige JavaScript-biblioteker er det lagt til uttrykket «SHOW CREATE LIBRARY». Informasjonen om JavaScript-biblioteker reflekteres i systemtabellen «LIBRARIES», og om lagrede prosedyrer som bruker slike biblioteker i tabellen «ROUTINE_LIBRARIES». Tilkoblingen av biblioteket i en lagret prosedyre utføres ved å spesifisere listen over biblioteker i uttrykket «USING».
- API for tilgang til lagrede prosedyrer, funksjoner og sesjonsvariabler fra JavaScript-kode er lagt til. For å få tilgang til MySQL-funksjoner er det lagt til en metode getFunction(), og for lagrede prosedyrer — en metode getProcedure(), som returnerer et JavaScript-objekt Function, som kan kjøres med argumenter. Tilgang til variabler skjer direkte som egenskaper av JavaScript-objektet Session. I tillegg er det mulig med direkte tilgang til innebygde funksjoner rand(), sleep(), uuid() og isUUID(), som er identiske med de tilsvarende SQL-funksjonene.
- API for working with transactions from JavaScript has been added, allowing the execution of most SQL expressions for transaction management, such as "START TRANSACTION", "COMMIT", "ROLLBACK", and "SET AUTOCOMMIT".
- The ability to use MySQL types ENUM and SET in the arguments of stored procedures written in JavaScript has been added.
- The CREATE_SPATIAL_REFERENCE_SYSTEM privilege has been introduced, which allows controlling the ability to create and delete spatial data bindings in geographical information systems. Having this privilege or the SUPER privilege is now mandatory for executing the expressions "CREATE SPATIAL REFERENCE SYSTEM", "CREATE OR REPLACE SPATIAL REFERENCE SYSTEM", and "DROP SPATIAL REFERENCE SYSTEM".
- Output for "EXPLAIN FORMAT=JSON" now includes information about the version of the JSON format. To set the JSON format version, the variable explain_json_format_version should be used ("SET explain_json_format_version=1|2").
- The following have been deprecated: the "FLUSH PRIVILEGES" statement, the "mysqladmin flush-privileges" and "mysqladmin reload" commands, and the "version_tokens" plugin.
- Support for the BINLOG keyword has been discontinued.
- Thirty-two vulnerabilities have been eliminated, of which three can be exploited remotely. The two most severe issues have a danger level of 9.1 and are related to vulnerabilities in the Kerberos and Curl components. Less dangerous vulnerabilities affect InnoDB, Thread Pooling, DDL, the optimizer, the parser, and the authentication system.
Kilde: opennet.ru
