A Oracle formou uma nova ramificação do SGBD MySQL 9.2.0. As compilações do MySQL Community Server 9.2.0 estão preparadas para todas as principais distribuições Linux, FreeBSD, macOS e Windows. Dentro do novo modelo de lançamento implementado em 2023, o MySQL 9.2 é classificado como parte das ramificações 'Inovação', assim como o próximo lançamento significativo do MySQL 9.3. As ramificações de Inovação são recomendadas para quem deseja acesso antecipado a novas funcionalidades, publicadas a cada 3 meses, e são suportadas apenas até a publicação do próximo lançamento significativo (por exemplo, após a chegada da ramificação 9.2, o suporte à ramificação 9.1 é encerrado). No verão, planejam criar um lançamento LTS, recomendado para implementações que necessitam de previsibilidade e comportamento estável a longo prazo. Logo após a ramificação LTS, será formada uma nova ramificação de Inovação — MySQL 10.0.
Principais alterações no MySQL 9.2:
- O mecanismo MLE (Componente de Motor Multilíngue), que permite o uso de códigos em linguagens diferentes de SQL em procedimentos e funções armazenadas, agora suporta bibliotecas reutilizáveis em JavaScript. As funções dessas bibliotecas podem ser chamadas de procedimentos armazenados em JavaScript, mas devem ser explicitamente marcadas como importadas utilizando a palavra-chave 'export'. Novas expressões SQL 'CREATE LIBRARY' e 'DROP LIBRARY' foram adicionadas para gerenciar a conexão com bibliotecas JavaScript. Para visualizar a lista de bibliotecas JavaScript disponíveis, foi adicionada a expressão 'SHOW CREATE LIBRARY'. As informações sobre bibliotecas JavaScript são refletidas na tabela de sistema 'LIBRARIES', enquanto os procedimentos armazenados que utilizam tais bibliotecas estão na tabela 'ROUTINE_LIBRARIES'. A conexão da biblioteca em um procedimento armazenado é feita através da especificação da lista de bibliotecas na expressão 'USING'.
- Foi adicionado um API para acessar procedimentos armazenados, funções e variáveis de sessão a partir de código JavaScript. Para chamar funções do MySQL, foi adicionado o método getFunction(), e para procedimentos armazenados — o método getProcedure(), que retornam um objeto Function em JavaScript, que pode ser executado com argumentos. O acesso às variáveis é feito diretamente como propriedades do objeto JavaScript Session. Além disso, foi adicionada a possibilidade de acesso direto às funções integradas rand(), sleep(), uuid() e isUUID(), que são análogas às respectivas funções SQL.
- Foi adicionada uma API para trabalhar com transações em JavaScript, permitindo executar a maioria das expressões SQL para manipulação de transações, como "START TRANSACTION", "COMMIT", "ROLLBACK" e "SET AUTOCOMMIT".
- Adicionada a possibilidade de usar os tipos MySQL ENUM e SET como argumentos em procedimentos armazenados escritos em JavaScript
- Foi introduzido o privilégio CREATE_SPATIAL_REFERENCE_SYSTEM, que permite gerenciar a capacidade de criação e exclusão de definições de referência espacial em sistemas de informação geográfica. A posse desse privilégio ou do privilégio SUPER agora é obrigatória para executar as expressões "CREATE SPATIAL REFERENCE SYSTEM", "CREATE OR REPLACE SPATIAL REFERENCE SYSTEM" e "DROP SPATIAL REFERENCE SYSTEM".
- A saída "EXPLAIN FORMAT=JSON" agora inclui informações sobre a versão do formato JSON. Para definir a versão do formato JSON, deve-se utilizar a variável explain_json_format_version ("SET explain_json_format_version=1|2").
- Declarados obsoletos: a expressão "FLUSH PRIVILEGES", os comandos "mysqladmin flush-privileges" e "mysqladmin reload", e o plugin "version_tokens".
- O suporte à palavra-chave BINLOG foi descontinuado.
- Foram corrigidas 32 vulnerabilidades, das quais 3 podem ser exploradas remotamente. Os dois problemas mais graves têm um nível de severidade de 9.1 e estão relacionados a vulnerabilidades nos componentes Kerberos e Curl. Vulnerabilidades menos críticas afetam InnoDB, Thread Pooling, DDL, otimizador, analisador e sistema de autenticação.
Fonte: opennet.ru
