Notas de lançamento de Snowflake Connector for Python para 2022

Este artigo contém as notas de versão do Snowflake Connector for Python, 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 Snowflake Connector for Python.

Versão 2.9.0 (14 de dezembro de 2022)

Novos recursos e atualizações

  • Internos de autenticação reformulados para permitir que os usuários conectem autenticadores de pares de chaves personalizados.

  • A execução de consultas com múltiplas instruções agora é suportada por meio de cursor.execute e cursor.executemany.

    • O parâmetro Snowflake MULTI_STATEMENT_COUNT pode ser alterado no nível da conta, sessão ou instrução. Um argumento adicional, num_statements, pode ser fornecido para execução para usar esse parâmetro no nível da instrução. Ele deve ser fornecido a executemany para enviar uma consulta com múltiplas instruções por meio do método. Observe que as otimizações de inserção em massa disponíveis por meio de executemany não estão disponíveis ao enviar consultas com várias instruções.

      • Por padrão, o parâmetro é 1, o que significa que apenas uma consulta pode ser enviada por vez.

      • Defina como 0 para enviar qualquer número de instruções em uma consulta com várias instruções.

      • Defina como >1 para enviar o número exato especificado de instruções em uma consulta com várias instruções.

      • As vinculações são aceitas da mesma maneira para consultas com várias instruções e para consultas com instruções únicas.

  • A execução assíncrona de consultas com várias instruções é suportada. Os usuários ainda devem usar get_results_from_sfqid para recuperar resultados.

  • Para acessar os resultados de cada consulta, os usuários podem call SnowflakeCursor.nextset() conforme especificado na API DB 2.0 (PEP-249), para iterar nos resultados de cada instrução.

    • Os resultados da primeira instrução ficam acessíveis imediatamente após chamar executar (ou get_results_from_sfqid se for assíncrono) por meio dos métodos fetch*() existentes.

Correções de bugs

  • Corrigido um bug onde a permissão do arquivo baixado via comando GET era alterada.

Versão 2.8.3 (28 de novembro de 2022)

Novos recursos e atualizações

  • Dependência de criptografia aumentada de <39.0.0 para <41.0.0.

Correções de bugs

  • Corrigido um bug em que um cache de resposta OCSP expirado causava recursão infinita durante o carregamento do cache.

Versão 2.8.2 (18 de novembro de 2022)

Novos recursos e atualizações

  • Desempenho aprimorado do cache de resposta OCSP.

  • Não é mais possível resolver o local de destino na máquina local durante a execução dos comandos GET.

  • Desempenho aprimorado de expressões regulares usadas para detecção de instruções PUT/GET SQL.

Versão 2.8.1 (28 de outubro de 2022)

Novos recursos e atualizações

  • Dependência de criptografia aumentada de <37.0.0 para <39.0.0.

  • Ao fechar uma conexão, a verificação do status da consulta assíncrona agora é paralelizada.

Correções de bugs

  • Corrigido um problema em que write_pandas não escrevia um DataFrame vazio no Snowflake.

Versão 2.8.0 (27 de setembro de 2022)

Correções de bugs

  • Corrigido dtypes ausente ao chamar fetch_pandas() e fetch_arrow() em resultados vazios.

  • Corrigido um bug onde rowcount era excluído quando o cursor era fechado.

  • Corrigido um bug onde extTypeName era usado mesmo quando estava vazio.

  • Atualizado o modo como as entradas de telemetria são construídas.

  • Adicionada telemetria para pacotes raiz importados durante o tempo de execução.

  • Adicionada telemetria para usar write_pandas.

  • A função write_pandas agora oferece suporte ao fornecimento de argumentos adicionais para serem usados por DataFrame.to_parquet.

  • Todos os parâmetros opcionais de write_pandas agora podem ser fornecidos para pd_writer e make_pd_writer para serem usados com DataFrame.to_sql.

Versão 2.7.12 (24 de agosto de 2022)

Novos recursos e atualizações

  • Adicionado cache no arquivo para cache de resposta OCSP.

  • Adicionado suporte para OKTA Identity Engine.

  • A função write_pandas agora oferece suporte a tabelas transitórias por meio do novo argumento table_type que substitui o argumento create_temp_table.

Correções de bugs

  • Corrigido um bug onde os carimbos de data/hora buscados como pandas.DataFrame ou pyarrow.Table transbordavam por uma questão de precisão desnecessária. No caso em que um transbordamento não pode ser evitado, um erro claro é gerado.

  • Corrigido um bug em que a chamada de fetch_pandas_batches gerava NotSupportedError incorretamente após a execução de uma consulta assíncrona.

Versão 2.7.11 (28 de julho de 2022)

Correções de bugs

  • Adicionado um pin de versão mínima a typing_extensions.

Versão 2.7.10 (25 de julho de 2022)

Novos recursos e atualizações

  • Adicionado um cache na memória a solicitações do OCSP.

  • Adicionada uma opção de substituição a write_pandas.

  • Adicionado o atributo lastrowid a SnowflakeCursor em conformidade com PEP-249.

  • Adicionados novos recursos de diagnóstico de conexão.

  • Atualizadas as seguintes bibliotecas e recursos:

    • Versões pyarrow compatíveis com 8.0.X.

    • Solicitações de versões de biblioteca própria de terceiros para 2.28.1 e urllib3 para 1.26.10.

    • Versões de dependência numby suportadas de 1.23.0 a 1.24.0.

Correções de bugs

  • Corrigido um problema em que solicitações de HTTP compactadas com gzip podiam ser distorcidas por um buffer não liberado.

Versão 2.7.5 (18 de março de 2022)

Mudança de comportamento

  • Suporte obsoleto para Python 3.6.

Novo recurso

  • Adicionada uma opção para os parceiros injetarem seus nomes por meio de uma variável ambiental (SF_PARTNER).

Correções de bugs

  • Corrigido um bug em que não esperaríamos pela entrada se uma janela do navegador não pudesse ser aberta para login de SSO.

  • Exportado uma definição de tipo para SnowflakeConnection.

  • Corrigido um bug onde a tabela Arrow final continha números de índice duplicados ao usar fetch_pandas_all.

Versão 2.7.3 (18 de janeiro de 2022)

Correções de bugs

  • Metadados do pacote movidos de setup.py para setup.cfg.

  • Timezone a Timestamp_TZ adicionado.

  • Corrigido um erro relacionado às credenciais de armazenamento.

  • Corrigido um problema em que py.typed não estava sendo incluído nas rodas.

  • Correção de um problema em que números negativos não eram convertidos corretamente usando arrow_number_to_decimal.

  • Adicionada manipulação de arquivos vazios ao usar GET.

  • Corrigida a renderização da descrição longa para PyPi.

  • Adicionado tratamento de erros para DUO quando SMS não está presente.

  • Adicionada a capacidade de criar automaticamente uma tabela ao gravar um pandas DataFrame em uma tabela Snowflake.

  • Requisito numpy atualizado de <1.22.0 para <1.23.0.

  • Atualizado o arquivo CODEOWNERS.