Oracle har oprettet en ny gren af MySQL DBMS 9.2.0. MySQL Community Server 9.2.0-versionerne er udarbejdet til alle større distributioner af Linux, FreeBSD, macOS og Windows. Som en del af den nye model til frigivelse, der blev implementeret i 2023, er MySQL 9.2 klassificeret under 'Innovation'-grenene, som også vil inkludere den næste betydelige frigivelse, MySQL 9.3. Innovation-grene anbefales til dem, der ønsker tidlig adgang til nye funktioner, og de offentliggøres hver tredje måned og understøttes kun indtil den næste betydelige frigivelse offentliggøres (for eksempel, efter offentliggørelsen af 9.2-grenen ophører støtten til 9.1-grenen). I sommeren planlægges en LTS-version, som anbefales til installationer, der har brug for forudsigelighed og langvarig bevarelse af uændret adfærd. Efter LTS-grenen vil der blive oprettet en ny Innovation-gren — MySQL 10.0.
Vigtige ændringer i MySQL 9.2:
- Den Multilingual Engine Component (MLE), der gør det muligt at bruge kode på sprog, der adskiller sig fra SQL, i gemte procedurer og funktioner, har fået tilføjet understøttelse af genanvendelige biblioteker skrevet i JavaScript. Funktioner fra sådanne biblioteker kan kaldes fra gemte procedurer skrevet i JavaScript, men de skal eksplicit markeres som importerede ved hjælp af nøgleordet «export». For at styre forbindelsen til JavaScript-biblioteker er der tilføjet nye SQL-udtryk «CREATE LIBRARY» og «DROP LIBRARY». For at se en liste over tilgængelige JavaScript-biblioteker er udtrykket «SHOW CREATE LIBRARY» blevet tilføjet. Oplysninger om JavaScript-biblioteker bliver vist i systemtabellen «LIBRARIES», og om gemte procedurer, der bruger sådanne biblioteker, i tabellen «ROUTINE_LIBRARIES». Tilslutning af et bibliotek i en gemt procedure sker ved at angive en liste over biblioteker i udtrykket «USING».
- Der er tilføjet et API til adgang til gemte procedurer, funktioner og sessionsvariabler fra JavaScript-kode. For at få adgang til MySQL-funktioner er metoden getFunction() blevet tilføjet, og for gemte procedurer er metoden getProcedure() tilføjet, som returnerer et JavaScript-objekt Function, der kan køre med argumenter. Adgang til variabler sker direkte som egenskaber i JavaScript-objektet Session. Derudover er muligheden for direkte adgang til de indbyggede funktioner rand(), sleep(), uuid() og isUUID() blevet tilføjet, som svarer til de tilsvarende SQL-funktioner.
- API til arbejde med transaktioner fra JavaScript er blevet tilføjet, hvilket muliggør udførelse af de fleste SQL-udtryk til håndtering af transaktioner, såsom "START TRANSACTION", "COMMIT", "ROLLBACK" og "SET AUTOCOMMIT".
- Muligheden for at bruge MySQL-typerne ENUM og SET i argumenterne for lagrede procedurer skrevet i JavaScript er blevet tilføjet.
- Privilegiet CREATE_SPATIAL_REFERENCE_SYSTEM er blevet erklæret, hvilket gør det muligt at styre oprettelse og sletning af definitioner af rumlig tilknytning til data for geografiske informationssystemer. Tilstedeværelsen af dette privilegium eller privilegiet SUPER er nu obligatorisk for at udføre udtryk som "CREATE SPATIAL REFERENCE SYSTEM", "CREATE OR REPLACE SPATIAL REFERENCE SYSTEM" og "DROP SPATIAL REFERENCE SYSTEM".
- Der er tilføjet information om versionsformatet JSON til output'et "EXPLAIN FORMAT=JSON". For at angive versionsformatet JSON skal variablen explain_json_format_version anvendes ("SET explain_json_format_version=1|2").
- "FLUSH PRIVILEGES"-udtrykket, kommandoerne "mysqladmin flush-privileges" og "mysqladmin reload", samt plugin'et "version_tokens" er blevet deklareret som forældet.
- Støtten til nøgleordet BINLOG er blevet stoppet.
- 32 sårbarheder er blevet rettet, hvoraf 3 kan udnyttes eksternt. De to mest alvorlige problemer har en faregrad på 9.1 og er relateret til sårbarheder i komponenterne Kerberos og Curl. Mindre farlige sårbarheder påvirker InnoDB, Thread Pooling, DDL, optimering, parser og autentificeringssystemet.
Kilde: opennet.ru
