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.

Fix all ESLint problems

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 sem FROM
  • 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 classe Controller não eram emitidos no evento error 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 valor CHOOSE 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 de SYSTEM, por padrão ALL_ROWS.