Notes de version de Snowflake Connector for Python pour 2022

Cet article contient les notes de version Snowflake Connector for Python, y compris les éléments suivants, le cas échéant :

  • Changements de comportement

  • Nouvelles fonctionnalités

  • Corrections de bogues pour les clients

Snowflake utilise la version sémantique pour les mises à jour Snowflake Connector for Python.

Version 2.9.0 (14 décembre 2022)

Nouvelles fonctions et mises à jour

  • Remaniement du système d’authentification interne pour permettre aux utilisateurs d’ajouter des authentificateurs personnalisés à base de paires de clés.

  • L’exécution de requêtes à plusieurs instructions est désormais prise en charge par cursor.execute et cursor.executemany.

    • Le paramètres MULTI_STATEMENT_COUNT de Snowflake peut être modifiés au niveau du compte, de la session ou de l’instruction. Un argument supplémentaire, num_statements, peut être fourni à l’exécution pour utiliser ce paramètre au niveau de l’instruction. Il doit être fourni à executemany pour qu’une requête à plusieurs instructions puisse être soumise par le biais de la méthode. Notez que les optimisations d’insertion en masse disponibles via executemany ne sont pas disponibles lors de la soumission de requêtes à plusieurs instructions.

      • Par défaut, le paramètre est égal à 1, ce qui signifie qu’une seule requête peut être soumise à la fois.

      • La valeur 0 permet de soumettre un nombre quelconque d’instructions dans le cadre d’une requête à plusieurs instructions.

      • Définissez >1 pour soumettre le nombre exact d’instructions spécifié dans une requête à plusieurs instructions.

      • Les liaisons sont acceptées de la même manière pour les requêtes à plusieurs instructions que pour les requêtes à une seule instruction.

  • L’exécution asynchrone de requêtes à plusieurs instructions est prise en charge. Les utilisateurs doivent toujours utiliser get_results_from_sfqid pour récupérer les résultats.

  • Pour accéder aux résultats de chaque requête, les utilisateurs peuvent se rendre sur call SnowflakeCursor.nextset() comme indiqué dans l’API DB 2.0 (PEP-249), afin de parcourir les résultats de chaque instruction.

    • Les résultats de la première instruction sont accessibles immédiatement après l’appel à exécution (ou get_results_from_sfqid s’il s’agit d’un appel asynchrone) par l’intermédiaire des méthodes fetch*() existantes.

Corrections de bogues

  • Correction d’un bogue entraînant la modification de l’autorisation du fichier téléchargé via la commande GET.

Version 2.8.3 (28 novembre 2022)

Nouvelles fonctions et mises à jour

  • La dépendance de la cryptographie est passée de <39.0.0 à <41.0.0.

Corrections de bogues

  • Correction d’un bogue où un cache de réponse OCSP expiré provoquait une récursion infinie lors du chargement du cache.

Version 2.8.2 (18 novembre 2022)

Nouvelles fonctions et mises à jour

  • Amélioration des performances de la mise en cache des réponses OCSP.

  • Ne résout plus l’emplacement de la cible sur la machine locale lors de l’exécution des commandes GET.

  • Amélioration des performances des expressions régulières utilisées pour la détection d’instructions SQL PUT/GET.

Version 2.8.1 (28 octobre 2022)

Nouvelles fonctions et mises à jour

  • La dépendance de la cryptographie est passée de <37.0.0 à <39.0.0.

  • Lors de la fermeture d’une connexion, la vérification asynchrone du statut de la requête est désormais parallélisée.

Corrections de bogues

  • Correction d’un problème où write_pandas n’écrivait pas un DataFrame vide vers Snowflake.

Version 2.8.0 (27 septembre 2022)

Corrections de bogues

  • Correction de l’absence de dtypes lors de l’appel de fetch_pandas() et fetch_arrow() sur des résultats vides.

  • Correction d’un bogue où rowcount était supprimé lorsque le curseur était fermé.

  • Correction d’un bogue où extTypeName était utilisé même s’il était vide.

  • Mise à jour de la façon dont les entrées télémétriques sont construites.

  • Ajout de la télémétrie pour les paquets racine importés pendant l’exécution.

  • Ajout de la télémétrie pour l’utilisation de la fonction write_pandas.

  • La fonction write_pandas prend désormais en charge la fourniture d’arguments supplémentaires à utiliser par DataFrame.to_parquet.

  • Tous les paramètres optionnels de write_pandas peuvent maintenant être fournis à pd_writer et make_pd_writer pour être utilisés avec DataFrame.to_sql.

Version 2.7.12 (24 août 2022)

Nouvelles fonctions et mises à jour

  • Ajout de la mise en cache dans le fichier pour la mise en cache des réponses OCSP.

  • Ajout de la prise en charge de OKTA Identity Engine.

  • La fonction write_pandas prend désormais en charge les tables transitoires grâce au nouvel argument table_type qui remplace l’argument create_temp_table.

Corrections de bogues

  • Correction d’un bogue où les horodatages récupérés sous la forme pandas.DataFrame ou pyarrow.Table débordaient pour des raisons de précision inutile. Dans le cas où un débordement ne peut être évité, une erreur claire est maintenant levée.

  • Correction d’un bogue où l’appel de fetch_pandas_batches levait incorrectement NotSupportedError après l’exécution d’une requête asynchrone.

Version 2.7.11 (28 juillet 2022)

Corrections de bogues

  • Ajout d’un épinglage de version minimale à typing_extensions.

Version 2.7.10 (25 juillet 2022)

Nouvelles fonctions et mises à jour

  • Ajout d’un cache en mémoire pour les requêtes OCSP.

  • Ajout d’une option d’écrasement à write_pandas.

  • Ajout de l’attribut lastrowid à SnowflakeCursor en conformité avec PEP-249.

  • Ajout de nouvelles capacités de diagnostic des connexions.

  • Mise à jour des bibliothèques et ressources suivantes :

    • Versions de pyarrow prises en charge jusqu’à 8.0.X.

    • Requêtes de versions de la bibliothèque liée à la copie de paquets tiers vers 2.28.1 et urllib3 vers 1.26.10.

    • Versions des dépendances numby prises en charge de 1.23.0 vers 1.24.0.

Corrections de bogues

  • Correction d’un problème où les requêtes HTTP compressées en gzip pouvaient être altérées par un tampon non vidé.

Version 2.7.5 (18 mars 2022)

Modification de comportement

  • Suppression de la prise en charge de Python 3.6.

Nouvelle fonctionnalité

  • Ajout d’une option permettant aux partenaires d’injecter leur nom par le biais d’une variable d’environnement (SF_PARTNER).

Corrections de bogues

  • Correction d’un bogue qui faisait que nous n’attendions pas d’entrée si une fenêtre de navigateur ne pouvait pas être ouverte pour la connexion SSO.

  • Définition de type exportée pour SnowflakeConnection.

  • Correction d’un bogue où la table Arrow finale contenait des numéros d’index en double lors de l’utilisation de fetch_pandas_all.

Version 2.7.3 (18 janvier 2022)

Corrections de bogues

  • Métadonnées de paquets déplacées de setup.py vers setup.cfg.

  • Ajout de Timezone à Timestamp_TZ.

  • Correction d’une erreur liée à des identifiants de connexion de stockage.

  • Correction d’un problème où py.typed n’était pas inclus dans les wheels.

  • Correction d’un problème où les nombres négatifs n’étaient pas correctement convertis en utilisant arrow_number_to_decimal.

  • Ajout de la gestion des fichiers vides lors de l’utilisation de GET.

  • Correction du rendu de la description longue pour PyPi.

  • Ajout de la gestion des erreurs pour DUO lorsque SMS n’est pas présent.

  • Ajout de la possibilité de créer automatiquement une table lors de l’écriture d’un DataFrame pandas dans une table Snowflake.

  • Mise à jour de la configuration requise pour numpy de <1.22.0 vers <1.23.0.

  • Fichier CODEOWNERS mis à jour.