Versão 33
Novidades
Correção automática de problemas no código fonte usando VS Code
A extensão do VS Code passa a contar com correção automática de problemas no código fonte para arquivos da VFS.
Mais detalhes em https://nginstack.com/pt/docs/vscode/diagnostics/.
Melhorias
Engine
- Os métodos “stringFromFile” e “fileFromString” da classe
File
passam a aceitar um parâmetro opcional “encoding” que indica o tipo de codificação do arquivo que será aberto para leitura ou escrita. Os valores aceitos são “utf-8”, “windows-1252”, “iso-8859-1” ou “binary”. Se não for informado, será considerado o valor padrão “binary”, e o conteúdo do arquivo será tratado como uma string binária, mantendo o comportamento anterior. - A documentação https://nginstack.com/pt/docs/engine/databases/ passa a incluir orientações
de como configurar o Engine servidor para se conectar aos bancos de dados suportados pelo sistema.
Também passa a ser documentado o suporte às seguintes funcionalidades nos SGBDs compatíveis
com o Engine:
- Common Table Expressions (CTE)
- Concatenação de textos
- Claúsula
FETCH FIRST
- Claúsula
SELECT
semFROM
- Os tipos “BIGINT”, “CLOB”, “TIMESTAMP” e “TIMESTAMP WITH TIME ZONE” passam a ser suportados em todos os SGBDs que atendam os requisitos mínimos do Engine. Importante: esta melhoria diz respeito apenas à capacidade de ler tabelas ou expressões que retornem esses tipos em uma consulta SQL. Eles ainda não são suportados na definição de campos de uma classe de dados ou pela interface Web do sistema.
- O driver de conexão Microsoft ODBC Driver 17 passa a ser suportado pelo Engine.
Defeitos corrigidos
Desenvolvimento
- Atualizações de sistema agendadas nos processos “Desenvolvimento > Build do sistema > Agendamentos” ou “Admin > Agendador de Scripts” poderiam não reiniciar o Engine logo após a modificação do esquema da base de dados.
- O processo “Desenvolvimento > Base de dados > Atualizar estrutura” poderia sugerir a remoção de tabelas caso uma consulta à tabela “iVfs” falhasse durante a execução do processo.
- O processo “Desenvolvimento > Atualização > Atualizar sistema” exigia indevidamente que o usuário na base de origem tivesse o escopo de autorização “system.update”.
Engine
- As sessões de usuários poderiam ser expiradas logo após um licenciamento caso o Engine não fosse reiniciado.
- O Engine poderia carregar uma versão incorreta da biblioteca OpenSSL, caso ela existisse na pasta Windows\System32, ocasionando falhas em conexões https.
- O Engine poderia não iniciar em máquinas com CPU Celeron.
- Poderiam ocorrer falhas aleatórias de conexão ao usar o protocolo https numa conexão entre dois Engines.
REST Framework
- Erros gerados no evento
beforeAction
da classeController
não eram emitidos no eventoerror
dessa classe.
Outras alterações
Engine
- Nas consultas ao banco de dados Microsoft SQL Server:
- o tipo “DATE” passa a ser mapeado para o nativo correspondente em vez do tipo “DATETIME2”.
- o tipo “DOUBLE PRECISION” passa a ser mapeado para “FLOAT(53)” em vez de “NUMERIC(38, 10)”.
- os tipos “CLOB”, “MEMO” e “BLOB” passam a ser mapeados para “VARCHAR(max)” em vez de “TEXT”.
- Nas consultas aos bancos de dados Oracle:
- o tipo “DOUBLE PRECISION” passa a ser mapeado para “BINARY_DOUBLE” em vez de “NUMBER(38, 10)”.
- o tipo “VARCHAR” passa a ser mapeado para “VARCHAR2”.
- A quantidade máxima de colunas retornadas em uma consulta ao banco de dados foi reduzida de 1024
para 1000 (limite do Oracle). Foi criada a constante
Limits.MAX_COLUMNS_PER_TABLE
com esse novo valor. - A biblioteca “libpq” utilizada no acesso ao PostgreSQL foi atualizada para a versão 12.2.
- O método
LicenseManager.prototype.populateLicenseUseTable
não era mais utilizado no sistema e foi removido. - O Engine deixa de configurar a variável de sessão
OPTIMIZER MODE
com o valorCHOOSE
na abertura de uma conexão com o Oracle. Essa opção deixou de ser suportada a partir do Oracle 10g Release 2 e agora passa a ser utilizado o valor padrão configurado a nível deSYSTEM
, por padrãoALL_ROWS
.