DuckDB 2.0 LTS ajoute un mode serveur, les déclencheurs et VARIANT
DuckDB 2.0.0, une version à support long terme sortie le 21 octobre, ajoute un mode serveur, les déclencheurs et VARIANT. Les versions antérieures à la 2.0 ne peuvent pas lire ses fichiers.
4 min de lecture

En chiffres
- commits since DuckDB 1.5, per the DuckDB team
- ~20,000
- earliest end of support for DuckDB 2.0
- Oct 2027
- extended end of support for DuckDB 1.5
- March 2027
DuckDB a publié la version 2.0.0 le 21 octobre 2026. C'est une version à support long terme (LTS), que le projet maintiendra au moins jusqu'en octobre 2027. Elle ajoute un mode serveur intégré, des déclencheurs (triggers) SQL et un nouveau parseur. Elle apporte aussi un changement sans retour : les fichiers de base de données écrits par la 2.0 ne peuvent être ouverts par aucune version antérieure. Les mises à niveau demandent donc un plan.
DuckDB est une base de données SQL open source pour l'analytique. Comme SQLite, elle tourne à l'intérieur de votre programme plutôt que comme un serveur séparé. Contrairement à SQLite, elle est conçue pour de grosses requêtes analytiques sur de grandes tables et des fichiers comme Parquet et CSV.
Ce qu'apporte DuckDB 2.0
L'annonce de DuckDB présente la 2.0 comme la plus grosse version fonctionnelle de l'équipe à ce jour, construite à partir de près de 20 000 commits depuis la version 1.5. « DuckDB 2.0 est avant tout une version de fonctionnalités », écrit l'équipe DuckDB. La version porte le nom de code « Cinnamon Teal », d'après l'espèce de canard Spatula cyanoptera. La version publiée sur GitHub utilise le nom « Cyanoptera ».
| Fonctionnalité | Ce qu'elle fait |
|---|---|
| Mode serveur Quack | Fait tourner DuckDB comme un serveur auquel d'autres clients se connectent |
| Déclencheurs | CREATE TRIGGER exécute du SQL automatiquement, avant ou après une modification d'une table |
| Type VARIANT | Stocke des données semi-structurées, comme du JSON, et en extrait la structure commune pour une meilleure compression et plus de vitesse |
| E/S asynchrones | Lit les fichiers Parquet et CSV pendant l'exécution des requêtes, avec plusieurs demandes en cours à la fois, surtout pour accélérer le stockage cloud comme Amazon S3 |
| Nouveau parseur SQL | Un parseur basé sur PEG est désormais utilisé par défaut ; les extensions peuvent ajouter leur propre syntaxe SQL, et les erreurs indiquent où se trouve le problème |
| Fuseaux horaires natifs | Les fuseaux horaires, les calendriers et les collations n'ont plus besoin de la bibliothèque ICU |
Un déclencheur est une règle stockée dans la base : quand une ligne change, exécuter aussi ce SQL. DuckDB 2.0 prend en charge les déclencheurs BEFORE et AFTER, au niveau de la ligne ou de l'instruction. Certaines combinaisons ne sont pas encore prises en charge, comme un déclencheur BEFORE ... FOR EACH ROW sur UPDATE.
Quack transforme DuckDB en serveur
Jusqu'ici, DuckDB ne servait qu'un programme à la fois. Avec Quack, CALL quack_serve(...) lance un serveur, et un client s'y connecte avec ATTACH 'quack:...'. Une nouvelle instruction CONNECT bascule toute une session vers une base distante. L'outil en ligne de commande gagne les options correspondantes -serve et -connect.
Par défaut, le serveur n'écoute que sur la machine locale. Pour un accès distant, l'équipe DuckDB recommande de le placer derrière un proxy inverse qui gère le chiffrement TLS. InfoWorld rapportait en août que Quack facilite aussi l'interrogation à distance de bases PostgreSQL et MySQL.
Changements incompatibles à vérifier avant la mise à niveau
Selon l'annonce de la version et les notes de version sur GitHub, ces changements peuvent casser du code ou des builds existants :
- Les fichiers sont à sens unique. DuckDB 2.0 lit et écrit les fichiers de base de données existants. « Les versions de DuckDB antérieures à 2.0 ne peuvent pas lire les fichiers de base de données créés par DuckDB 2.0 », prévient l'équipe.
- Nouveau parseur par défaut.
SET enable_legacy_parser = true;rétablit l'ancien. - Les lambdas à flèche simple sont désactivées. Une syntaxe comme
x -> x + 1est désactivée.SET lambda_syntax = 'enable_single_arrow';la réactive jusqu'à ce que la version 2.1 la supprime. - La division entière par zéro lève désormais une erreur au lieu de renvoyer NULL.
- Les builds exigent C++17, contre C++11 auparavant, et les builds de release utilisent désormais le compilateur Clang. Les builds par amalgamation sont dépréciés.
- Les Mac Intel sont progressivement abandonnés. Les extensions communautaires ne sont plus compilées pour macOS sur x86_64, et DuckDB 2.1 en abandonne la prise en charge.
Les sources divergent sur un détail. L'avant-première d'InfoWorld décrivait une API C stable pour les extensions. L'annonce de la version indique que la C API v2 remaniée n'est « pas encore marquée comme stable », car l'équipe veut d'abord la tester en conditions réelles.
Périodes de support
| Version | Prise en charge jusqu'à |
|---|---|
| DuckDB 2.0 (LTS) | Au moins octobre 2027 |
| DuckDB 1.5 | Mars 2027 (prolongée) |
| DuckDB 1.4 | Fin novembre 2026 |
Ce que cela change pour les développeurs
Traitez cette version comme une migration planifiée, pas comme une mise à jour de routine.
- Copiez vos fichiers de base de données avant la première ouverture. Dès que DuckDB 2.0 écrit dans un fichier, un outil plus ancien ou un collègue resté en 1.5 ne peut plus le lire. Mettez à niveau ensemble tout ce qui lit un fichier partagé.
- Testez sur une copie de la production. L'équipe DuckDB recommande d'abord un système miroir. Pour les usages critiques, elle suggère d'attendre la première version corrective, prévue en novembre.
- Vérifiez votre client. L'outil en ligne de commande et le client Python sont prêts dès maintenant. Les clients Go, R et Java, ainsi que certaines extensions, « peuvent prendre quelques jours », précise l'équipe.
- Cherchez deux motifs dans votre SQL. Repérez les lambdas à flèche simple et toute division entière susceptible de diviser par zéro. Les deux se comportent désormais différemment.
- N'exposez pas directement un serveur Quack. Gardez-le sur localhost, ou placez devant lui un proxy inverse TLS, comme le conseille l'équipe.
- Les équipes en 1.4 doivent migrer en premier. Son support se termine fin novembre 2026. Passez donc à la 2.0, ou à la 1.5 pour une étape plus petite.
Sources
- Announcing DuckDB 2.0.0 - DuckDB
- DuckDB v2.0.0 release notes - GitHub
- DuckDB 2.0 coming this fall with client-server mode - InfoWorld
Articles liés

TorchTPU : Google publie en open source un PyTorch natif pour les TPU
TorchTPU exécute PyTorch nativement sur les TPU de Google et a validé 98 % des 4 917 modèles Hugging Face testés. PyTorch/XLA est déprécié et sera archivé le 15 novembre.
PyTorch 2.15 accélère jusqu'à 6,5 fois le décodage MoE sur Mac
PyTorch 2.15 ajoute les tenseurs FP8 sur les GPU d'Apple et de nouveaux kernels Metal. Le décodage de Qwen3.6-35B-A3B sur un M3 Ultra bondit de 9,4 à 61,3 tokens par seconde.

Tools This Week : 10 octobre 2026 - Python 3.15, Mold 3.0
Sept outils pour développeurs cette semaine, menés par Python 3.15.0 et la réécriture en Rust de l'éditeur de liens Mold, avec ce que chacun change et ce qu'il coûte.