SQL 변경 사항 — 일반: VARCHAR 문자열 열의 byteLength를 올바르게 설정(보류 중)

주의

이 동작 변경 사항은 2026_03 번들에 포함되어 있습니다.

번들의 현재 상태는 번들 기록 섹션을 참조하십시오.

이 동작 변경으로 UTF-8 인코딩(문자당 4바이트)이 일관되게 반영되도록 VARCHAR 열의 바이트 길이 계산이 수정되었습니다. 이 수정 사항 이전에는 문자 길이가 4,194,304보다 크고 최대 16,777,216인 VARCHAR 열의 바이트 길이가 잘못 계산되었을 수 있습니다.

변경 전:

문자 길이가 > 4,194,304 and <= 16,777,216, the ``byteLength``인 VARCHAR 열의 경우 16,777,216바이트로 잘못 제한되었습니다. 이는 문자당 최대 4바이트가 필요한 UTF-8 인코딩이 올바르게 반영되지 않았습니다.

예:

CREATE TABLE example_table (
  col1 VARCHAR(10000000) -- 10M characters
);
SHOW COLUMNS IN TABLE example_table;

결과:

{
  "length": 10000000,
  "byteLength": 16777216
}

``byteLength``는 40,000,000(4 x 10,000,000)이어야 하지만 16,777,216로 잘못 제한되었습니다.

변경 후:

문자 길이가 > 4,194,304 and <= 16,777,216, the ``byteLength``인 VARCHAR 열의 경우 4 x character_length로 올바르게 계산되어 각 문자가 최대 4바이트일 수 있는 UTF-8 인코딩이 올바르게 반영되었습니다.

동일한 예제를 사용하여 다음을 수행합니다.

{
  "length": 10000000,
  "byteLength": 40000000
}

이 변경 사항은 새 문자열 열에만 영향을 줍니다. 문자 길이가 > 16,777,216 are not affected because byteLength is already correctly set for those cases. The ``byteLength``는 여전히 134,217,728로 제한됩니다.

Ref: 2286