Notes de version de Go Snowflake Driver pour 2026

Cet article contient les notes de version Go Snowflake Driver, 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 Go Snowflake Driver.

Voir Pilote Go Snowflake pour la documentation.

Version 2.0.2 (28 avril 2026)

Nouvelles fonctions et mises à jour

  • Ajout de l’interface QueryResultFormatProvider, qui expose le format de résultat de la requête signalé par le serveur (Arrow ou JSON) de :codenowrap :QueryArrowStream. Cette interface permet aux appelants de faire la distinction entre Arrow IPC des réponses JSON avant d’interpréter les flux de lots.

Corrections de bogues

  • Correction d’un problème où le champ Compte était vide lors de la connexion programmatique à Configuration et :codenowrap:` database/sql.Connector`. Le pilote dérive maintenant Compte de la première étiquette DNS de Hôte lorsqu’il correspond au modèle de nom d’hôte Snowflake.

  • Correction de l’authentificateur PAT (jeton d’accès programmatique) pour exiger correctement le champ Jeton ou TokenFilePath. Auparavant, l’authentificateur acceptait silencieusement le champ Mot de passe mais ne le transmettait jamais au service d’authentification.

  • Correction du journaliseur signalant des emplacements sources incorrects lorsqu’il était appelé sans WithContext.

  • Correction de l’attestation de fédération d’identité de charge de travail (WIF) GCP relative à l’utilisation du nom d’hôte metadata.google.internal au lieu de l’adresse locale avec lien IPv4, permettant la prise en charge de VMs GCP avec IPv6 uniquement.

  • Correction des échecs de requête lors de résultats volumineux en ligne (comme les LOBs 64 MB ) causé par des corps de réponse HTTP tronqués. Le pilote relance désormais la requête lorsque json.Decoder renvoie io.ErrUnexpectedEOF, réutilisant le même ID de requête pour récupérer le résultat mis en cache depuis Snowflake.

Version 2.0.1 (08 avril 2026)

Corrections de bogues

  • Réduction du paramètre :codenowrap: CrlDownloadMaxSize par défaut de 200 MB à 20 MB pour éviter les erreurs potentielles de mémoire.

  • Correction d’un problème où les valeurs des paramètres pouvaient changer selon les connexions du même pool de connexions.

  • Correction des chargements de fichiers en plusieurs parties Azure pour renseigner correctement la propriété Content-MD5 du blob.

  • Correction des erreurs 403 des requêtes PUT vers Google Cloud Storage sur des zones de préparation versionnées.

  • Correction du cache du contexte de requête qui n’était pas mis à jour pour les requêtes ayant échoué, ce qui pouvait entraîner des données de session obsolètes.

  • Amélioration des performances de la gestion des connexions en optimisant la synchronisation des paramètres.

Changements internes

  • Déplacement de la configuration vers un paquet interne dédié.

  • Modernisation des idiomes de syntaxe Go dans l’ensemble de la base de code.

  • Ajout de la famille de la libc, de sa version et du marqueur de liaison dynamique à la télémétrie de l’environnement client.

  • Dépendances mises à jour pour répondre aux vulnérabilités de sécurité :

    • golang.org/x/crypto de v0.41.0 à v0.46.0

    • golang.org/x/net de v0.43.0 à v0.48.0

    • golang.org/x/oauth2 de v0.30.0 à v0.34.0

    • golang.org/x/sys de v0.35.0 à v0.40.0

    • golang.org/x/mod de v0.27.0 à v0.30.0

    • golang.org/x/sync de v0.16.0 à v0.19.0

    • golang.org/x/term de v0.34.0 à v0.38.0

    • golang.org/x/text de v0.28.0 à v0.32.0

    • golang.org/x/tools de v0.36.0 à v0.39.0

    • :codenowrap :google.golang.org/grpc de v1.73.0 à v1.79.3

    • :codenowrap :google.golang.org/protobuf de v1.36.6 à v1.36.10

    • Paquets OpenTelemetry de v1.37.0 à v1.40.0

  • Suppression de l’indirection de pointeur du cache de contexte de requête dans :codenowrap:` SnowflakeConn` .

Version 1.9.1 (08 avril 2026)

Nouvelles fonctions et mises à jour

  • Suppression de la prise en charge de Go 1.26 et ajout de la prise en charge de Go 1.23.

Corrections de bogues

  • Correction des crashs de minicores (SIGFPE) sur les binaires Linux entièrement liés statiquement, grâce à la détection de la liaison statique par inspection ELF PT_INTERP et au contournement en douceur de dlopen.

Changements internes

  • Ajout de la famille de la libc, de sa version et du marqueur de liaison dynamique à la télémétrie de l’environnement client.

Version 2.0.0 (03 mars 2026)

Changements BCR (Version de changement de comportement)

  • Suppression de RaisePutGetError de SnowflakeFileTransferOptions pour garantir que les erreurs sont détectées pour les opérations PUT/GET.

  • Suppression de GetFileToStream de SnowflakeFileTransferOptions. Utilisez WithFileGetStream pour activer automatiquement le flux de fichiers pour les opérations GET.

  • Suppression de WithOriginalTimestamp. Utilisez WithArrowBatchesTimestampOption (UseOriginalTimestamp) à la place.

  • Suppression du champ ClientIP de la structure Config. Ce champ n’a jamais été utilisé et n’est nécessaire pour aucune fonctionnalité.

  • Suppression du champ InsecureMode de la structure Config. Utilisez DisableOCSPChecks à la place.

  • Suppression du champ DisableTelemetry de la structure Config. Utilisez le paramètre de session CLIENT_TELEMETRY_ENABLED à la place.

  • Suppression du téléchargeur de morceaux de flux. À la place, utilisez le téléchargeur par défaut.

  • Suppression de SnowflakeTransport. Utilisez Config.Transporter, ou enregistrez simplement votre propre configuration TLS avec RegisterTLSConfig si vous avez simplement besoin d’un ensemble de certificats racine personnalisé.

  • Renommage de WithFileStream en WithFilePutStream par souci de cohérence.

  • Renommage du champ KeepSessionAlive dans la structure Config en ServerSessionKeepAlive par souci de cohérence avec les autres pilotes.

  • La fonction Array renvoie désormais une erreur pour les types non pris en charge.

  • WithMultiStatement ne renvoie plus d’erreur.

  • Combinaison de WithMapValuesNullable et WithArrayValuesNullable dans une seule option WithEmbeddedValuesNullable.

  • Masquage du téléchargeur de morceaux de flux. Il sera complètement supprimé dans une prochaine version.

  • Le nombre maximum de goroutines de téléchargement de morceaux est maintenant configuré avec le paramètre de session CLIENT_PREFETCH_THREADS.

  • Correction d’une faute de frappe dans la variable d’environnement GOSNOWFLAKE_SKIP_REGISTRATION.

  • Non exportation de MfaToken et IdToken.

  • Modification des lots Arrow :

    • Les lots Arrow ont été extraits vers un paquet séparé, ce qui devrait réduire considérablement la taille de la compilation pour ceux qui ne nécessitent pas de lots Arrow (~34MB -> ~18MB).

    • Suppression de GetArrowBatches de SnowflakeRows et SnowflakeResult. Utilisez arrowbatches.GetArrowBatches(rows.(SnowflakeRows)) à la place.

    • Migration des fonctions suivantes :

      • sf.WithArrowBatchesTimestampOption en arrowbatches.WithTimestampOption

      • sf.WithArrowBatchesUtf8Validation en arrowbatches.WithUtf8Validation

      • sf.ArrowSnowflakeTimestampToTime en arrowbatches.ArrowSnowflakeTimestampToTime

  • Modifications de la journalisation :

    • Suppression du journaliseur Logrus et migration vers slog.

    • Simplification de l’interface SFLogger.

    • Ajout de l’interface SFSlogLogger pour définir un gestionnaire de slog personnalisé.

Nouvelles fonctions et mises à jour

  • Ajout de la prise en charge de Go 1.26 et suppression de la prise en charge de Go 1.23.

  • Ajout de la prise en charge du mode FIPS uniquement.

Corrections de bogues

  • Ajout d’un bloc de récupération de panique pour les opérations de chargement et de téléchargement de fichiers de zone de préparation.

  • Correction d’une requête de métadonnées WIF d’un conteneur Azure qui se manifestait sous la forme d’une erreur HTTP 400.

  • Correction d’un contournement de la validation du port d’authentification SAML dans isPrefixEqual, où le port de la deuxième URL n’était jamais vérifié.

  • Correction d’une condition de concurrence dans le nettoyage du cache OCSP.

  • La requête context.Context est désormais propagée aux opérations de stockage Cloud pour les requêtes PUT et GET, ce qui permet une meilleure gestion des annulations.

  • Correction des crashs de minicores (SIGFPE) sur les binaires Linux entièrement liés statiquement, grâce à la détection de la liaison statique par inspection ELF PT_INTERP et au contournement en douceur de dlopen.

Version 1.19.0 (03 février 2026)

Nouvelles fonctions et mises à jour

  • Exposition de tokenFilePath dans la structure Config, en plus de l’option DSN existante.

  • tokenFilePath est maintenant lu pour chaque nouvelle connexion, et pas seulement une fois au démarrage du pilote.

  • Ajout de la prise en charge de l’emprunt d’identité lors de l’utilisation de la fédération d’identité de charge de travail.

  • Ajout de la possibilité de désactiver le chargement de minicore lors de la compilation à l’aide du paramètre -tags minicore_disabled.

Corrections de bogues

  • Correction d’un problème lié à l’obtention de fichiers à partir d’une zone de préparation non chiffrée.

  • Correction de la collecte de noms de fichiers minicore dans l’environnement client.

  • Correction de l’échappement de chemin pour les URLs GCS qui se manifestait dans 403 réponses de GCS lorsqu’un fichier ou un répertoire contenait des espaces.

  • Correction des fuites des descripteurs de fichiers lors du chargement de fichiers vers des zones de préparation (surtout dans GCS).