Alterações no SQL – Geral: Definição correta de byteLength para colunas de cadeia de caracteres VARCHAR (pendente)¶
Atenção
Essa alteração de comportamento faz parte do pacote 2026_03.
Para saber o status atual do pacote, consulte Histórico do pacote.
Essa alteração de comportamento corrige o cálculo do comprimento em bytes para colunas VARCHAR para levar em conta consistentemente a codificação UTF-8 (4 bytes por caractere). Antes dessa correção, colunas VARCHAR com comprimentos de caracteres maiores que 4.194.304 e até 16.777.216 podiam ter comprimentos em bytes calculados incorretamente.
- Antes da mudança:
Para colunas VARCHAR com comprimento de caractere > 4,194,304 and <= 16,777,216, the
byteLength, o valor era limitado incorretamente a 16.777.216 bytes. Isso não levava em conta corretamente a codificação UTF-8, que requer até 4 bytes por caractere.Por exemplo:
Resultado:
O valor de
byteLengthdeveria ser 40.000.000 (4 x 10.000.000), mas era limitado incorretamente a 16.777.216.- Após a mudança:
Para colunas VARCHAR com comprimento de caractere > 4,194,304 and <= 16,777,216, the
byteLengthé 4 vezes character_length, levando em consideração a codificação UTF-8, em que cada caractere pode ter até 4 bytes.Usando o mesmo exemplo:
Essa alteração afeta apenas novas colunas de cadeia de caracteres. Colunas de cadeia de caracteres com comprimento de caractere > 16,777,216 are not affected because byteLength is already correctly set for those cases. The byteLength ainda está limitado a 134.217.728.
Ref: 2286