Notas de lançamento de JDBC Driver para 2023

Este artigo contém as notas de versão do JDBC Driver, incluindo o seguinte, quando aplicável:

  • Mudanças de comportamento

  • Novos recursos

  • Correções de bugs voltados para o cliente

Snowflake usa controle de versão semântico para atualizações de JDBC Driver.

Versão 3.14.4 (07 de dezembro de 2023)

Novos recursos e atualizações

  • Nenhum.

Correções de bugs

  • Foi corrigido um NullPointerException que ocorria quando a chave da propriedade gzipDisabled não tinha valor.

  • Foi corrigido um problema de segurança com a geração de registros relacionada ao diretório temp:

    • O registro não acessa mais o diretório temporário.

    • O valor padrão logpath mudou do diretório temp para o diretório home.

  • Corrigido um problema em que o driver falhava em JDK v21 com Arrow.

Versão 3.14.3 (07 de novembro de 2023)

Novos recursos e atualizações

  • Atualizadas as seguintes bibliotecas:

    • org.codehaus.plexus:plexus-archiver de 2.4.4 para 4.8.0

    • org.codehaus.plexus:plexus-archiver de 2.6 para 4.8.0

    • org.bouncycastle:bc-fips de 1.0.2.1 para 1.0.2.4

    • aws-java-sdk para 1.12.501

    • jackson para 2.15.3

    • netty para 4.1.100.Final

    • grpc para 1.59.0

  • Adicionada a propriedade de conexão enablePutGet para determinar se deve permitir o acesso dos comandos PUT e GET aos sistemas de arquivos locais.

  • Adicionado suporte para gerenciar a frequência de novas tentativas para solicitações de conexão malsucedidas:

    • Adicionado o parâmetro retryTimeout com um valor padrão de 300 segundos.

    • Atualizada a forma como o driver usa os parâmetros de conexão loginTimeout e maxHttpRetries e alterado o valor padrão de loginTimeout para 300 segundos.

Correções de bugs

  • Corrigido um problema relacionado a NoSuchMethodError ao usar snowflake-ingest-sdk 2.0.3.

  • Correção de um problema ao lidar com conversões de tipo de dados NULL em DATE.

  • Corrigido um problema de token de downscope GCP.

Versão 3.13.34 (25 de outubro de 2023)

Novos recursos e atualizações

  • Nenhum.

Correções de bugs

  • Corrigido um problema relacionado à falha de comandos PUT com um token GCP Downscope em snowflake-jdbc-fips.

Versão 3.14.2 (02 de outubro de 2023)

Novos recursos e atualizações

  • Nenhum.

Correções de bugs

  • Corrigido um problema em que o driver não respeitava o useS3RegionUrl de JsonNode em getStageInfo.

Versão 3.14.1 (24 de agosto de 2023)

Novos recursos e atualizações

  • Adicionada a capacidade de enviar cabeçalhos opcionais dos métodos util.

  • Função getQueryStatus movida para SfBaseSession para oferecer suporte a chamadas assíncronas em procedimentos armazenados.

Correções de bugs

  • Corrigido um problema em que o driver não enviava o URL OSCP inteiro para links privados.

Versão 3.14.0 (27 de julho de 2023)

Mudança do BCR (versão da mudança de comportamento)

  • Corrigido um problema em que, sob certas condições, o driver JDBC poderia tentar novamente solicitações de HTTP indefinidamente.

    Anteriormente, durante uma interrupção, o driver JDBC tentaria novamente a chamada de HTTP com falha continuamente até que a solicitação fosse bem-sucedida ou até que alguém forçasse a interrupção da operação.

    Com essa alteração, é feita a desativação de infinitas tentativas HTTP originadas de chamadas execute e executeQuery. Agora, o driver JDBC limita as tentativas HTTP a sete, por padrão. Os clientes podem definir o parâmetro de sessão maxHttpRetries para personalizar o número máximo de novas tentativas. Os clientes podem definir maxHttpRetries=0 para remover o limite de novas tentativas, mas com isso há o risco de o driver JDBC repetir infinitamente chamadas de HTTP com falha.

Novos recursos e atualizações

  • Adicionada a propriedade de sessão CLIENT_OUT_OF_BAND_TELEMETRY_ENABLED para permitir que você desative a telemetria OOB.

  • Tratamento aprimorado para chamadas de função locatorsUpdateCopy(). Agora, o driver retorna FALSE em vez de lançar uma exceção.

  • Atualizado o tratamento de erros 400 Bad Request para clientes S3 e adicionada a propriedade de conexão putGetMaxRetries para configurar o número máximo de novas tentativas para exceções PUT/GET para clientes de armazenamento (padrão: 7).

  • Adicionado suporte para httpMaxRetries em DefaultResultStreamProvider.getResultChunk() para melhorar o desempenho do download de partes.

Correções de bugs

  • Corrigido um problema em que o driver lançava incorretamente exceções de ponteiro nulo (NPEs) ao chamar driver.getPropertyInfo().

  • Corrigido um problema em que reader.LoadNextBatch() ocasionalmente lançava um ClosedByInterruptException ao ler o fluxo arrow.

  • Foi corrigido um problema em que o driver JDBC usava configurações de proxy incorretas para clientes S3.

  • Corrigido um problema em que a função downloadStream() não permitia nomes de arquivos contendo caracteres japoneses.

  • Corrigido um problema em que «~» não era permitido em caminhos de arquivo PUT/GET.

  • Corrigido um problema em que o driver lançaria um InvalidPathException quando um caminho de arquivo do Windows incluía o prefixo file:// para registrar em log os arquivos de configuração.

Versão 3.13.33 (14 de junho de 2023)

Novos recursos e atualizações

  • Nenhum.

Correções de bugs

  • Trate MessageFormat.format exceções normalmente.

Versão 3.13.32 (26 de maio de 2023)

Novos recursos e atualizações

  • Nenhum.

Correções de bugs

  • Corrigido um bug introduzido em 3.13.31 que afeta o Java Runtime 8.

Versão 3.13.31 (25 de maio de 2023)

Nota

Atualize para versões mais recentes, especialmente se você encontrar um bug afetando o Java Runtime 8.

Novos recursos e atualizações

  • Processamento transacional/analítico híbrido aprimorado (HTAP).

  • Atualização da biblioteca org.apache.httpcomponents:httpclient para a versão 4.5.13 para obter uma atualização de segurança.

Correções de bugs

  • Corrigido um problema em que as tentativas de autenticação expiravam para solicitações de download de partes.

  • Corrigido um problema relacionado à análise do arquivo de configuração no Windows.

  • Corrigido um problema de estouro de int64 com valores datetime grandes ou pequenos.

  • Melhorada a mensagem de erro mostrada quando uma conexão é interrompida devido a erros SSL/TLS.

  • Corrigido um problema em que a função getTime() retornava um horário baseado no fuso horário errado quando useSessionTimezone estava ativado.

  • Corrigido um problema em que caracteres ASCII nulos e caracteres de controle eram descartados aleatoriamente de um resultset com jdbc_query_result_format=JSON.

Versão 3.13.30 (18 de abril de 2023)

Novos recursos e atualizações

  • Atualizadas as seguintes bibliotecas de software:

    • slf4j-api da versão 1.7.25 para versão 2.0.6.

    • logback-classic da versão 1.2.3 para versão 1.3.6.

  • A mensagem não crítica «SEVERE: solicitação de HTTP demorou mais de 5 min» foi alterada de uma mensagem de erro para uma mensagem de aviso.

  • Adicionada a propriedade http.proxyProtocol para configurações de proxy JVM.

Correções de bugs

  • Corrigido um problema em que as tentativas de autenticação expiravam para solicitações de download de partes.

  • Corrigido um problema em que as credenciais de login ficavam visíveis nas exceções quando um URL de conexão falhava ao se separar.

  • Corrigida uma causa de vazamento de memória verificando isClosed() antes de adicionar resultset a openResultSets.

  • Corrigido um problema em que uma mensagem de erro de asserção SAML2 enganosa era enviada quando hostnames não correspondia.

  • Corrigido um problema com solicitações de OSCP codificadas em URL.

  • Corrigido um problema em que a função SnowflakeFileTransferAgent.uploadStream() manipulava incorretamente a opção overwrite=false.

  • Corrigido um problema em que o método metadata.etTableTypes() retornava tipos de tabela incorretos.

  • Atualizado o driver para expor a mensagem de erro de SQL em uma mensagem de exceção acionada quando chamadas de consulta assíncronas resultavam em uma consulta e exceção com falha.

  • Adicionada uma verificação para casos raros quando chamadas de coluna get procedure retornam um conjunto de resultados vazio.

  • O nível de aviso foi alterado para depuração/informação para mensagens de registro relacionadas a erros de análise SnowflakeConnectionString.

  • Corrigido um problema em que o driver JDBC repetia solicitações que falhavam com SSLHandshakeException.

  • Adicionado suporte para a propriedade do sistema snowflake.jdbc.enable.illegalAccessWarning para permitir que os usuários desabilitem avisos de acesso ilegal.

  • Corrigido um problema se as mensagens de erro do arquivo de upload do gsc exibissem informações erradas.

  • O valor padrão TTL foi alterado para fechar uma conexão inativa após 60 segundos.

  • Corrigido um problema de ID de instrução preparada removendo chamadas describe extras.

Versão 3.13.29 (17 de março de 2023)

Novos recursos e atualizações

  • Nenhum.

Correções de bugs

  • Foi corrigido um problema em que nomes de tipos de colunas incorretos eram retornados para metadados de colunas de procedimentos armazenados quando USE_STATEMENT_TYPE_CALL_FOR_STORED_PROC_CALLS=true.

  • Corrigido um problema em que JDBC tentava novamente uma solicitação GET quando um arquivo não podia ser baixado devido à falta de espaço no sistema de arquivos de destino. Agora, o driver lança uma exceção nesta situação.

  • Corrigido um problema em que JDBC repetia solicitações em clientes do Azure quando ocorria um erro de recurso 404. Agora, o driver lança uma exceção nesta situação.

  • Para se proteger contra ataques de injeção SQL, o driver JDBC agora escapa das aspas nos argumentos de pesquisa de padrão da API DatabaseMetadata.

  • Corrigido um problema em que chamadas getClob() geravam um NullPointerException quando uma coluna continha um valor NULL. Agora, o driver retorna NULL quando a coluna contém um valor SQL NULL.

  • Corrigido um problema em que o driver JDBC falhava ao validar uma URL SSO antes de executá-lo. Agora, o driver usa os utilitários URLValidator e URLEncoder para validar e codificar o URL.

Versão 3.13.28 (22 de fevereiro de 2023)

Novos recursos e atualizações

  • Nenhum.

Correções de bugs

  • Adicionado suporte para o tipo de dados GEOMETRY na enumeração SnowflakeType para corrigir um problema que ocorria ao chamar a função metaData.getColumns() para retornar metadados que incluíam dados GEOMETRY.

  • Corrigido um problema de nova tentativa em GCP uploadStream que causava uploads parciais de arquivos quando JDBC tentava incorretamente fazer novamente o upload de um fluxo de entrada.

  • Corrigido um problema com funções e procedimentos armazenados que retornavam resultset para chamadas de função getProcedureColumns() e getFunctionColumns().

  • Corrigido um problema que fazia com que StreamLoader gerasse mensagens de registro excessivas.

Versão 3.13.27 (30 de janeiro de 2023)

Novos recursos e atualizações

  • Nenhum

Correções de bugs

  • Corrigida uma condição de corrida que ocorria ocasionalmente durante as operações GET e PUT.

  • Corrigido um problema em que o uso da autenticação Okta falhava ao receber um erro HTTP 429.