SQLの変更 --- 一般:VARCHAR文字列の列のbyteLengthを正しく設定する(保留中)¶
この動作変更により、VARCHAR列のバイト長計算が修正され、UTF-8エンコード(1文字あたり4バイト)が一貫して考慮されるようになります。この修正以前は、文字長が4,194,304を超え、16,777,216までのVARCHAR列は、バイト長が誤って計算される可能性がありました。
- 変更前:
文字長が> 4,194,304 and <= 16,777,216, the ``のVARCHAR列の場合、byteLength``が16,777,216バイトに誤って制限されていました。これにより、1文字あたり最大4バイトを必要とするUTF-8エンコードが適切に考慮されていませんでした。
例:
結果:
``byteLength``は40,000,000(4 x 10,000,000)である必要がありますが、16,777,216に誤って制限されていました。
- 変更後:
文字長が> 4,194,304 and <= 16,777,216, the ``のVARCHAR列の場合、byteLength``は4 x character_lengthとして正しく計算され、各文字が最大4バイトになるUTF-8エンコードが適切に考慮されます。
同じ例を使用:
この変更は新しい文字列の列にのみ影響します。文字長が> 16,777,216 are not affected because の文字列の列の場合、byteLength is already correctly set for those cases. The ``byteLength``は引き続き134,217,728に制限されます。
参照:2286