Novidades no go-mssqldb

Este artigo lista alterações significativas em cada versão do go-mssqldb driver. O microsoft/go-mssqldb repositório é um fork de denisenkom/go-mssqldb. Este artigo lista apenas as versões publicadas sob o fork da Microsoft, começando pela v0.16.0. Para um registo completo de alterações, consulte a página de lançamentos do GitHub.

Observação

Alguns números de versão não são sequenciais. Por exemplo, as versões v1.2.0 a v1.4.0 nunca foram publicadas. Os saltos de versão refletem o histórico real de lançamentos do fork da Microsoft.

v1.11.0 (agosto de 2026)

  • Adicionei sinónimos para cadeias de ligação do ADO.NET. As cadeias de ligação do formato ADO agora aceitam grafias alternativas de palavras-chave como Data Source, Initial Catalog, Connect Timeout, e UID. Para mais informações, consulte cadeias de ligação go-mssqldb.
  • Foram corrigidas falhas provocadas por respostas do servidor malformadas durante a análise de um desafio NTLM, de um deslocamento ou comprimento da opção PRELOGIN e de uma resposta da ligação de administrador dedicada (DAC) do SQL Server Browser.
  • Limitou a alocação inicial do buffer para valores parcialmente prefixados por comprimento (PLP).
  • Citei o nome da tabela e ORDER as colunas em operações de cópia em massa.
  • Fechei a ligação TCP em todos os connect() caminhos de erro.
  • Devolveu float64 para colunas reais.
  • Reconhecido REVERT como um comando incorporado ao detetar chamadas de procedimentos armazenados.
  • Codificação clarificada de URL NTLM para nomes de fontes de dados URL.
  • Removi a porta dos URLs do Azure Key Vault usados para o endpoint e AllowedLocations.
  • Substituiu o obsoleto reflect.SliceHeader por unsafe.Slice.
  • Desempenho melhorado na decodificação de conjuntos de caracteres com um caminho rápido para dados apenas ASCII.

v1.10.0 (abril de 2026)

  • Adicionei FailoverPartnerSPN um parâmetro de cadeia de ligação para o failover de espelhamento de base de dados.
  • Adicionada a função NewConnectorWithProcessQueryText para compatibilidade com o nome do controlador mssql.
  • Adicionaram tipos anuláveis civil (NullDate, NullTime, NullDateTime) para parâmetros de data e hora.
  • Implementada a interface driver.DriverContext para compatibilidade com database/sql.
  • Detetadas transações abortadas pelo servidor para evitar a confirmação automática silenciosa quando XACT_ABORT está ativado.
  • Foram apresentados erros de servidor de Rows.Close() durante o esgotamento de tokens.
  • Processados os tokens TDS COLINFO e TABNAME devolvidos por tabelas com triggers.
  • Devolveu interface{} o tipo de varrimento para sql_variant colunas em vez de nil.
  • Fiz com que readCancelConfirmation respeitasse o cancelamento de contexto.
  • Exposto TrustServerCertificate em msdsn.Config e URL ida e volta.
  • Credenciais limpas de erros de análise de cadeia de ligação.
  • Permitiu-se o suporte ao protocolo de pipes com nome no Windows ARM64.

v1.9.8 (março de 2026)

  • Dependências atualizadas para resolver os problemas identificados em govulncheck.

v1.9.7 (fevereiro de 2026)

  • Adicionado suporte para Proteção Alargada para Autenticação (EPA).
  • Desempenho melhorado ao usar recetores apontadores para columnStruct, reduzindo cópias de memória.
  • Corrigi a fuga da coluna de cópias em massa.
  • Corrigido o tratamento de stateSep no pacote em lote.

v1.9.6 (janeiro de 2026)

  • Adicionado o parâmetro de ligação serverCertificate para validação de certificados TLS por comparação byte a byte.
  • Dependência golang.org/x/crypto atualizada.

v1.9.4 (novembro de 2025)

  • Atenção corrigida ao tratamento de pacotes durante o rollback da transação.
  • Restringiu os protocolos de pipe com nome e de memória partilhada às plataformas suportadas.

v1.9.3 (setembro de 2025)

  • Corrigido o reset da cópia FMTONLY em massa em caso de falha.
  • Corrigiu o flush do pacote de handshake TLS durante a configuração da ligação.
  • Foi adicionado suporte para valores com aspas duplas em cadeias de ligação ao estilo ADO.

v1.8.2 (maio de 2025)

  • Reconhecido Pwd como um alias de campo de palavra-passe nas strings de ligação.
  • Foram adicionados COMMIT e ROLLBACK como comandos incorporados reconhecidos.

v1.8.0 (dezembro de 2024)

  • Adicionou suporte ao tipo definido pelo utilizador (UDT) para hierarchyid, geometry, e geography.
  • Adicionei dados de rastreio aos pacotes de pré-login e login7.
  • Corrigido o problema de a conexão não ser fechada quando o nome da base de dados está incorreto.
  • Mudei azidentity para a v1.6.0.

v1.7.2 (maio de 2024)

  • Corrigido o suporte a tipos que admitem valor nulo para Always Encrypted na cópia em massa.
  • Corrigido o tratamento do âmbito de autenticação do Entra.

v1.7.1 (abril de 2024)

  • Foi implementada a funcionalidade Always Encrypted com o parâmetro de ligação columnencryption.
  • Adicionei o Azure Key Vault (akv) fornecedor de chaves de encriptação na coluna.
  • Adicionados os tipos fedauth ActiveDirectoryDeviceCode e ActiveDirectoryAzCli.
  • Valores adicionais aceites para o parâmetro encrypt no modo TDS 8.0.
  • Adicionei suporte para certificados DER.
  • Adicionei multisubnetfailover um parâmetro de ligação.
  • Permitiu a configuração do Kerberos (krb5) através de variáveis de ambiente.
  • Implementei a alteração de palavra-passe durante o login.
  • Corrigi o mapeamento do LCID para a página de código.
  • Truncamento fixo do parâmetro de saída da cadeia.
  • Tratamento de valor NULL fixo UniqueIdentifier em Scan().
  • Corrigiu o tratamento do caminho dos canos com nome.

v1.7.0 (fevereiro de 2024)

  • Adicionado o tipo NullUniqueIdentifier com suporte para JSON e serialização de texto.

v1.6.0 (agosto de 2023)

  • Adicionei suporte para TDS 8.0 com encrypt=strict.

v1.5.0 (agosto de 2023)

  • Integrámos o pacote npipe para ligações por pipes nomeados.
  • Adicionado suporte para navegadores de portas DAC (Dedicated Administrator Connection).
  • Foram adicionados os métodos UniqueIdentifierMarshalText e UnmarshalJSON.
  • Ativada a resolução DNS local através de dialers personalizados.
  • Corrigidas as compilações mips e mipsel.

v1.1.0 (junho de 2023)

  • Adicionei o serviço de navegador de portas DAC.

v0.16.0 (agosto de 2022) - Primeira versão do fork da Microsoft

  • Migração para a v1.0 de azidentity para autenticação do Microsoft Entra.
  • Adicionei tlsmin um parâmetro de ligação para impor uma versão mínima de TLS.