No nevím, mám z toho trochu strach. Vždycky mě děsi, když nováček oznámí: "jo jsem nový v teamu, a totálně jsem vám překopal produkt". A i když všechno zřejmě funguje jak má, časem se narazí na problémy, o kterých nováček nevěděl, že mohou nastat, protože odstranil kód, o kterým si myslel, že už nikdo nepoužívá.
... zvlášť když tvrdí, že MySQL není jeho šálek kávy.
Ale jo, asi jinak to je přínosné, jen bych MySQL 8 považoval interně za úplně nový produkt, od kterého lze čekat problémy s kompatibilitou se starými verzemi. Takže nasazovat opatrně. Možná počkat dvě tři minor verze.
Jazyk SQL je jasne definovana věc, pokud někdo v projektu používá konstrukce vyšpekované pro konkrétní verzi sql servru jedná se o špatně napsaný kód.
Ano v minulosti spoustu projektů rozbil přechod mezi verzemi mysql protože spoléhali na nějaký sort při joinu který když konečně mysql začal používat více jader na jeden dotaz přestal fungovat. Ale to nebyla chyba myslq ale těch kdo mu pokládaly špatné dotazy.
Kazda jedna databaze ma svoje extenze a konstrukty a pokud je tvurce nevyuziva, prijde o 50 a vic % vykonu. A to se jiste vyplati. Nehlede na to, ze i kdyby se tvurce striktne drzel SQL standardu, tak si nabije hubu stejne, protoze se to na kazdy jedny databazi stejne bude chovat jinak.
> Zlepšena byla také bezpečnost výchozí autentizace
To sú ale srandisti, celú schému nechali tak ako je, iba v nej zmenili hashovaciu funkciu z SHA1 na SHA256. Schéma je teda naďalej nachýlná na replay attack. Už sa teším ak sa nájde ďalší problém v tom ako MySQL používa TLS a bude sa táto schéma dať opäť zneužiť :)
Problémy to spôsobuje už teraz, nedajú sa skompilovať aplikácie, čo používajú mysql.h/libmysqlclient.so keďže v starom API boli typy my_bool a v novom už je bool (my_bool neexistuje). MariaDB naďalej používa my_bool, takže niečo takéto pre existujúce aplikácie pomohlo:
#if !defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 80001
#define my_bool bool
#endif