Oracle hat einen neuen Branch der Datenbank MySQL 9.3.0 erstellt. Die Builds des MySQL Community Server 9.3.0 sind fĂŒr alle gĂ€ngigen Linux-Distributionen, FreeBSD, macOS und Windows vorbereitet. Entsprechend dem neuen Release-Modell, das 2023 eingefĂŒhrt wurde, gehört MySQL 9.3 zu den "Innovation"-Branches. Die Innovation-Branches sind fĂŒr diejenigen empfohlen, die frĂŒheren Zugang zu neuen Funktionen wĂŒnschen. Sie werden alle drei Monate veröffentlicht und nur bis zur Veröffentlichung des nĂ€chsten bedeutenden Releases unterstĂŒtzt (zum Beispiel wird die UnterstĂŒtzung fĂŒr die Version 9.2 eingestellt, nachdem der Branch 9.3 erschienen ist). Im Sommer ist die Veröffentlichung eines LTS-Releases 9.4 geplant, das fĂŒr Implementierungen empfohlen wird, die Vorhersehbarkeit und langfristige StabilitĂ€t erfordern. Nach dem LTS-Branch wird ein neuer Innovation-Branch â MySQL 10.0 â erstellt.
Die wichtigsten Ănderungen in MySQL 9.3:
- Im Tool mysqldump wurde die Option ââusersâ hinzugefĂŒgt, um logische Dumps mit Informationen zu allen Konten zu erstellen, die durch die SQL-Anweisungen âCREATE USERâ und âGRANTâ ausgegeben werden. Um die Anweisung âDROP USERâ vor âCREATE USERâ einzufĂŒgen, gibt es die Option ââadd-drop-userâ. FĂŒr die selektive Aufnahme einzelner Benutzer im Dump stehen die Optionen ââinclude-user=user@hostâ und ââexclude-user=user@hostâ zur VerfĂŒgung, die mehrfach angegeben werden können.
- Im MLE-Engine (Multilingual Engine Component), die die Verwendung von Code in Programmiersprachen, die von SQL abweichen, in gespeicherten Prozeduren und Funktionen ermöglicht, wurde die UnterstĂŒtzung fĂŒr JavaScript verbessert. FĂŒr gespeicherte Prozeduren in JavaScript wurde der Typ âDECIMALâ implementiert, der fĂŒr Eingabe- und RĂŒckgabeargumente verwendet werden kann. StandardmĂ€Ăig wird der MySQL-Typ DECIMAL zur Sicherheit in den JavaScript-Typ âStringâ umgewandelt, dieses Verhalten kann jedoch mit dem Befehl âSELECT mle_set_session_state(â{âdecimal_typeâ:âNumberâ}â)â ĂŒberschrieben werden, nach dem der JavaScript-Typ âNumberâ verwendet wird. Die Umwandlung von Werten mit den JavaScript-Typen Boolean, Number, String und BigInt in den DECIMAL-Typ wird unterstĂŒtzt.
- In gespeicherten Prozeduren fĂŒr JavaScript wurde die UnterstĂŒtzung fĂŒr die Einstellung von Lokalisierungsparametern ĂŒber die JavaScript API Intl hinzugefĂŒgt. Zum Beispiel kann zur Bestimmung der aktuellen Locale die Eigenschaft âIntl.DateTimeFormat().resolvedOptions().localeâ verwendet werden, wĂ€hrend die Methode âtoLocaleString()â zur Ăberschreibung der Locale eingesetzt werden kann.
- Die Möglichkeiten zur Verwaltung von JavaScript-Bibliotheken wurden erweitert: Um die Liste der importierten Bibliotheken zu Ă€ndern, können nun die AusdrĂŒcke âALTER PROCEDUREâ und âALTER FUNCTIONâ verwendet werden. AuĂerdem wurde die Möglichkeit zur Nutzung des Ausdrucks âALTER LIBRARYâ hinzugefĂŒgt, um SQL-Kommentare zur Bibliothek hinzuzufĂŒgen, zu entfernen oder zu Ă€ndern. Das Ausdruck âSHOW LIBRARY STATUSâ liefert Informationen ĂŒber die Bibliothek.
- Die UnterstĂŒtzung fĂŒr das dynamische Laden von JavaScript-Bibliotheken wurde hinzugefĂŒgt. Um eine Bibliothek dynamisch zu importieren, sollte das SchlĂŒsselwort âawaitâ verwendet werden, beispielsweise âlet module = await import(â/db1/lib_${object_type}â)â.
- Die Optimierungen von Abfragen, die quantifizierte Vergleichsoperatoren verwenden, wurden erweitert. Neben der UnterstĂŒtzung der Operatoren â=ANYâ und â<>ALLâ wurden in der neuen Version auch die Operatoren â>ANYâ, â>=ANYâ, â<ANYâ, â<=ANYâ, â>ALLâ, â>=ALLâ, â<ALLâ und â<=ALLâ bei der Optimierung von Unterabfragen hinzugefĂŒgt.
- Das Plugin âversion_tokensâ, das zuvor als veraltet markiert wurde, wurde entfernt.
- Die Zuweisung des Wertes 0 an die Systemvariable replica_parallel_workers ist nicht zulÀssig.
- Es wurden 28 Schwachstellen behoben, von denen 26 aus der Ferne ausgenutzt werden können, sofern Zugriff zum Senden von Anfragen an die Datenbank vorhanden ist. Sechs der schwerwiegendsten Probleme haben einen Schweregrad von 6,5 und sind mit Schwachstellen im InnoDB-Engine, Parser und Optimierer verbunden. Weniger schwerwiegende Schwachstellen betreffen mysqldump, InnoDB, den Optimierer, DDL, UDF, Parser und das Replikationssystem.
Quelle: opennet.ru
