Changements SQL — Général : byteLength correctement définie pour les colonnes de chaînes VARCHAR (En attente)¶
Attention
Ce changement de comportement est présent dans le bundle 2026_03.
Pour connaître le statut actuel du bundle, reportez-vous à Historique du bundle.
Ce changement de comportement corrige le calcul de la longueur d’octets pour les colonnes VARCHAR pour toujours prendre en compte l’encodage UTF-8 (4 octets par caractère). Avant cette correction, les colonnes VARCHAR dont la longueur de caractères était supérieure à 4 194 304 et allant jusqu’à 16 777 216 pouvaient avoir des longueurs d’octets calculées de manière incorrecte.
- Avant la modification:
Pour les colonnes VARCHAR avec une longueur de caractères > 4,194,304 and <= 16,777,216, the
byteLengthétait incorrectement plafonnée à 16 777 216 octets. Celle-ci ne tenait pas correctement compte de l’encodage UTF-8, qui nécessite jusqu’à 4 octets par caractère.Par exemple :
Résultat :
La
byteLengthdevrait être 40 000 000 (4 x 10 000 000), mais a été incorrectement plafonnée à 16 777 216.- Après la modification:
Pour les colonnes VARCHAR avec une longueur de caractères> 4,194,304 and <= 16,777,216, the
byteLengthest correctement calculée en tant que 4 x character_length, en tenant correctement compte de l’encodage UTF-8 où chaque caractère peut comporter jusqu’à 4 octets.En utilisant le même exemple :
Cette modification n’affecte que les nouvelles colonnes de chaînes. Les colonnes de chaînes avec une longueur de caractères > 16,777,216 are not affected because byteLength is already correctly set for those cases. The byteLength est toujours plafonnée à 134 217 728.
Réf : 2286