Ce qui se passe
Le 21 octobre 2026, DuckDB sort la version 2.0.0 LTS, nom de code « Cinnamon Teal », à l'issue de près de 20 000 commits depuis la 1.5. L'équipe la présente comme sa plus grosse livraison de fonctionnalités, là où la 1.0 misait sur la stabilité. La branche 2.0 est soutenue jusqu'en octobre 2027 au moins ; la 1.4 (LTS) l'est jusqu'à fin novembre 2026, et la 1.5 est prolongée jusqu'en mars 2027.
Ce qui change dans l'usage
- DuckDB en serveur. Le protocole Quack, introduit en 1.5.3, est consolidé,
avec une instruction
CONNECTqui attache et bascule vers une base distante (aussi PostgreSQL et MySQL, avec poussée des requêtes vers le serveur distant). Par défaut le serveur n'écoute que surlocalhost: pour l'ouvrir, le placer derrière un proxy inverse qui termine le TLS. - E/S asynchrones pour Parquet, CSV et le stockage natif : plus de lectures en
parallèle, donc des requêtes nettement plus rapides sur
s3://. VARIANT: du JSON sans schéma stocké en colonnes, « déchiqueté » selon la structure commune des lignes pour bien se compresser ; lecture et écriture Parquet incluses, avec une famille de fonctionsvariant_*.- Triggers :
CREATE TRIGGER,BEFORE/AFTER, par ligne ou par instruction, tables de transitionREFERENCING OLD/NEW TABLE. Cas typique : une table d'audit. Certaines combinaisons ne sont pas encore prises en charge. - Parseur PEG par défaut, au lieu de celui hérité de PostgreSQL ; retour
possible avec
SET enable_legacy_parser = true;. - Mode agent du CLI : il détecte un agent de code, sort des tableaux Markdown compacts et des erreurs en JSON ; 59 % de sortie en moins à lire sur TPC-H.
- Côté SQL :
$variable, CTE qui modifient des données, jointuresNEARESTpour la recherche de voisins (utile aux embeddings), schémas imbriqués,json_set,json_insert,json_replace,json_remove.
CALL quack_serve(token = 'mon_jeton');
-- sur le client
ATTACH 'quack:localhost' AS qk (TOKEN 'mon_jeton');
CONNECT qk;Ce qui casse
- Format de fichier : une base créée par DuckDB 2.0 n'est pas lisible par les versions antérieures. Une base existante ouverte en 2.0 reste lisible par les anciennes.
- Lambdas :
x -> x + 1est désactivé par défaut. Écrirelist_transform([1, 2, 3], lambda x: x + 1). Dépannage :SET lambda_syntax = 'enable_single_arrow';, retiré en v2.1. - Compilation : C++17 requis, Clang par défaut ; le build « amalgamation » est
déprécié ;
osx_amd64: plus d'extensions communautaires, abandon en 2.1. - La bibliothèque ICU disparaît, remplacée par une implémentation native des fuseaux (environ 45 kB).
Comment s'y prendre
- Installer 2.0.0 (CLI et Python sont prêts ; les clients Go, R, Java et certaines extensions peuvent suivre de quelques jours) et la tester sur un système fantôme.
- Ne pas ouvrir avec 1.x une base créée en 2.0 ; garder une copie de l'ancienne.
- Remplacer les lambdas à flèche simple par
lambda x: .... - Charge critique : attendre le premier correctif, annoncé pour novembre.
Source : DuckDB, 21 octobre 2026. Source en anglais. Guide de migration : duckdb.org/docs/2.0/operations_manual/migration.html.